Skip to main content
47 votes
Accepted

Physically based shading - ambient/indirect lighting

Real-time graphics deploys a variety of approximations to deal with the computational expense of simulating indirect lighting, trading off between runtime performance and lighting fidelity. This is an ...
Nathan Reed's user avatar
  • 25.1k
8 votes
Accepted

How does vsync affect fps exactly when not at full vsync fps?

The short answer is It's Complicated™. :) A lot of factors can affect frame timing (and the associated problem of animation juddering, due to the game's animation delta-times not matching actual frame ...
Nathan Reed's user avatar
  • 25.1k
8 votes
Accepted

Subsurface Scattering Without Rays?

There are lots of ways to fake SSS with greater or lesser fidelity. A few recent-ish methods: Screen-space blurring of object lighting (described in detail here) Using “interior” ambient-occlusion ...
Noah Witherspoon's user avatar
7 votes
Accepted

Confused about prefiltering environment maps (Manson 16)

Your first quote is referring to "Split-sum approximation" presented in "Real Shading in Unreal Engine 4" by Brian Karis, and also referred in the paper [Kar13]: $$\frac{1}{N}\sum_{k=1}^N \frac{L_i(...
JarkkoL's user avatar
  • 3,636
6 votes

Physically based shading - ambient/indirect lighting

This is the main 'hard' problem remaining in real-time CG, and there is a lot of research ongoing into solving it. The biggest hurdle is that in raster graphics, each component of the scene is ...
russ's user avatar
  • 2,402
5 votes
Accepted

Phong: Real-time rendering of Metal and Plastic Materials

Diffuse colours on materials typically come from within the material, while the specular colour is from the very surface. Coloured plastic materials are made by embedding particles of dye inside a ...
Dan Hulme's user avatar
  • 6,840
5 votes

How can I make a graphics demo without a frame buffer?

This is a case where looking at the workings of more retro hardware would be reasonable. Older hardware had strong limitations in both memory and processing power. Your 100+Mhz chip is far faster than ...
Nicol Bolas's user avatar
  • 9,842
3 votes
Accepted

Benefits of Clustered Shading vs Tiled Shading?

Both Unity's "Deferred shading rendering path" and "Legacy Deferred Lighting Rendering Path" work only for opaque surfaces. They both rely on a very similar set of passes: Render the opaque objects' ...
bernie's user avatar
  • 830
3 votes
Accepted

Importance Sampling in Unreal Engine Formula Derivation (Irradiance term)

I just read notes on moving frostbite to pbr and I found the derivation of the method above. So I will just show the derivation here and quote some of the explanation. One can notice an extra〈n·l〉...
kevinyu's user avatar
  • 493
3 votes
Accepted

What is better to use for real-time computing Mesh - Plane intersection points, GPU or CPU?

doing the calculation to decide whether a point is on one side of a plane or the other is very simple (a single dot product). Doing that 3 times and having a special case when they don't match to ...
ratchet freak's user avatar
3 votes
Accepted

Advantages of spherical harmonics over baked vertex lighting?

Spherical harmonics are generally used for dynamic objects in your scene, while fully-baked lighting is used for static objects. A typical game engine will use both. During the GI pass, all surfaces ...
russ's user avatar
  • 2,402
3 votes
Accepted

Real time image based lighting for arbitrary BRDFs coordinate alignment

The surface reflectance of a BRDF function doesn't depend on orientation or position of the surface in the world space (except for the view vector) but is defined relatively to the surface normal (or ...
JarkkoL's user avatar
  • 3,636
3 votes

Correct post-displacement normal calculation (Y-component and epsilon)

The Epsilon is chosen to hit the appropriated Nyquist-Frequency avoiding aliasing. It refers to the highest frequency in your heightfield function. You'll need well knowledge of the definition of your ...
TheXappy's user avatar
3 votes

Selection of GI techniques working in real time

In this vein a bit, Killzone renders one bounce reflections, but uses temporal anti aliasing to combine the last frame with the current frame. In practice, this means you get MANY bounce reflections, ...
Alan Wolfe's user avatar
  • 7,801
2 votes

Projected grid water horizon detail

The technic what Benedikt mentioned is explained in Section 2.4.1 of this thesis. http://fileadmin.cs.lth.se/graphics/theses/projects/projgrid/projgrid-lq.pdf Implementing this should solve your ...
TheXappy's user avatar
2 votes

How can I create a bounding volume hierarchy for constantly moving objects?

I'd like to add some practical perspective to this. Let me preface that I'm operating on limited information here: I don't know how many objects you are dealing with. I don't know what exactly your ...
Tara's user avatar
  • 121
2 votes

What framework shoud I use to implement the RAISR upscaling algorithm on the GPU?

Are there algorithms that cannot be implemented this way and have to be implemented in OpenCL, and if so, how do I know if my algorithm is one of them? Yes. Generally scatter-gather algorithms work ...
user1118321's user avatar
  • 3,421
2 votes

Which technique is fast to generate real-time reflections?

Usually modern game engines use Screen Space Reflections which is some kind of screen space raymarching. Basically, a simple way to achieve this is to shoot rays from the G-buffer. This means you use ...
CpCd0y's user avatar
  • 176
2 votes

light probe (for global illumination) placement techniques?

Looking for answer for similar question, I found that work: http://www.cse.chalmers.se/~uffe/xjobb/bowald_final_master_thesis_v2.pdf It is based on automatic grid placement which depends on scene ...
mdkdy's user avatar
  • 2,169
2 votes
Accepted

What can be reduce in peripheral circle and increase in foveated cirle?

Actually it's not that new of an idea -- it goes back to at least 1996. I strongly suggest reading Microsoft Research's Foveated 3D Graphics. (click 'View publication' and read the full pdf) In a ...
Wyck's user avatar
  • 410
2 votes

What exactly is it about reality that is so difficult to recreate in a 3D simulation?

As @AnnoyinC already mentioned in his comment, we are simply lacking computational power and storage requirements (RAM). For the visual effects, you need to calculate every ray of light that somehow ...
wychmaster's user avatar
  • 1,251
1 vote
Accepted

Fastest Simulation Of Mass Spring Systems

Time integration with implicit Euler is unconditionally stable. This means you can choose arbitrary large time steps without worrying that your solution "explodes". In contrast to explicit ...
wychmaster's user avatar
  • 1,251
1 vote
Accepted

Downscaling texture via mipmap [DirectX 11]

I found the problem. By zeroing the sampler description I implicitly set LOD bounds to 0. After adding ...
ivokabel's user avatar
  • 1,464
1 vote

How to draw depth-based volume in real-time

The issue is that an extra depth pass won't cut it. You may need an arbitrary number of extra depth passes. Just imagine the volume between two sinusoidal surfaces, you would have infinitely many ...
lightxbulb's user avatar
  • 2,226
1 vote

Consistent animation speed across systems

It works exactly the way you describe. Most 3D games work on keyframe animations, where the human animator sets the important positions (for each joint or whatever is being animated) and the times ...
Dan Hulme's user avatar
  • 6,840
1 vote
Accepted

fix over exposure in importance sampling in screen space reflections

After some testing and some research I have found that both the $\sin(\theta)$ and the $\cos(\theta)$ should be removed from the denominator. the reasoning is that, since we want a probability ...
Sebastián Mestre's user avatar
1 vote

Phong: Real-time rendering of Metal and Plastic Materials

https://courses.cs.washington.edu/courses/cse458/99sp/projects/help/phong_params.html ...
andrewchan2022's user avatar
1 vote

Selection of GI techniques working in real time

Many of the real-time GI solutions have some precomputation involved, which enable real-time lighting changes but limit the geometry changes to be non-real time. E.g. in cone tracing you mentioned ...
JarkkoL's user avatar
  • 3,636
1 vote

Texture coordinates projection

A static occlusion map won't generally work accurately with a dynamic mesh, as you can see. In your case you can separate the occlusion map and instead put it on a static object that wraps around the ...
Ryan's user avatar
  • 201

Only top scored, non community-wiki answers of a minimum length are eligible