Most Popular

1500 questions
12
votes
1 answer

What is the performance tradeoff between forward and deferred rendering?

Forward rendering is the process of computing a radiance value for a surface fragment directly from input geometry and lighting information. Deferred rendering splits that process into two steps: first producing a screen-space buffer containing…
John Calsbeek
  • 3,972
  • 21
  • 31
12
votes
1 answer

Volumetric rendering fundamental concepts and terminology

Literature on rendering volumetric materials and effects tends to use a lot of mathematical physics terminology. Let's say that I have a decent handle on the concepts involved in surface rendering. What concepts do I need to understand for…
John Calsbeek
  • 3,972
  • 21
  • 31
12
votes
2 answers

How does temporal reprojection work?

Temporal anti aliasing (and other temporal algorithms) work by matching pixels this frame with pixels from the last frame and then using that information. I get that you can use the last and current frame matrices along with motion vector…
Alan Wolfe
  • 7,801
  • 3
  • 30
  • 76
11
votes
1 answer

Performance of Compute Shaders vs. Fragment Shaders for Deferred Rendering

I have written a deferred renderer that can use either a fragment shader or a compute shader to execute the shading pass. Unfortunately, the compute shader implementation runs slower. I'm trying to understand why. I believe I understand the…
geometrian
  • 1,980
  • 13
  • 26
11
votes
1 answer

Algorithms for down sampling an image?

Bicubic sampling is pretty good for up sampling an image and making it larger, but is it a good choice for down sampling as well? Are there better choices?
Alan Wolfe
  • 7,801
  • 3
  • 30
  • 76
11
votes
1 answer

What are Metal and Vulkan?

I keep coming across the terms 'Metal' and 'Vulkan' on this site. Guessing this to be some CG software, I'm interested to know what these are exactly and what the intended and most common usage is. A quick search shows me a video about why metal in…
MisterGeeky
  • 211
  • 2
  • 5
11
votes
2 answers

Are textures automatically Morton-coded when loaded to VRAM?

I know that texture caching on GPU works to optimize locality in 2D (or 3D if using 3D textures). I believe this is done using space-filling curves like Morton or Hilbert curves. When passing an array of texture data to the GPU, though, for example…
russ
  • 2,392
  • 9
  • 18
11
votes
2 answers

Vulkan: Uniform Buffers versus Push Constants for static data

I'm sort of struggling to understand the conceptual difference between uniform buffers and push constants. From what I can gather by reading the spec, the main differences are: Uniform buffers can be much larger than push constants. UBOs use…
haasn
  • 175
  • 1
  • 1
  • 7
11
votes
3 answers

How can I perform a triangle inside test in polygon meshes?

I have 3 vertices (V1, V2, V3) randomly selected on a regular triangle mesh. For these 3 vertices, I have computed the geodesic distance and the path (by using Dijkstra) among them and formed a triangle-like surface as in the above figure. Now, I…
mkocabas
  • 233
  • 1
  • 6
11
votes
1 answer

What prevents older GPUs from supporting Vulkan?

More out of curiosity than for any practical purpose, I'm wondering what is lacking from older GPUs that causes them to be unable to support Vulkan. I know that some argue that some hardware, such as nVidia's Fermi series of GPUs, could support…
Dolda2000
  • 221
  • 2
  • 5
11
votes
1 answer

Path tracer - multi layered materials and importance sampling

I'm currently trying to implement a Monte Carlo path tracer. I've done some research and it seems that a common approach to materials is to use a layered model. Something like this: When light hits the surface, Fresnel tells us how much of that…
castan
  • 113
  • 7
11
votes
4 answers

Multiple viewports with modern OpenGL?

I use SDL2. Currently my only shader has a MVP matrix, and transforms the points with it. I calculate my View and Projection matrix for a camera with GLM: glm::lookAt(pos, pos + forward, up); glm::perspective(fov, aspectRatio, zNear, zFar); I…
Tudvari
  • 313
  • 1
  • 3
  • 13
11
votes
1 answer

Ocean Wave Rendering

How could I generate the waves for a water body with whitecaps & foam and variable intensity of the waves? Is the surface a mesh with a normal map? Is there a formula for generating that? Is there something similar to determine where and how the…
Arjan Singh
  • 2,511
  • 3
  • 22
  • 38
11
votes
1 answer

Area Lights in Path Tracing

I have been following the scratchapixel ray tracing tutorials online which have been great at explaining the theory behind everything & how to implement it. However, I reached the point where I want to implement Area Lights but I am clueless on how…
Arjan Singh
  • 2,511
  • 3
  • 22
  • 38
11
votes
2 answers

Why normalise Lambertian BRDF by 1/pi?

Why is a Lambertian BRDF normalised by dividing by $\pi$? Since the area of a unit sphere is $4 \pi$, and the area of the half sphere above the surface is $2 \pi$, shouldn't it rather be $1/(2\pi)$?
Supernormal
  • 500
  • 2
  • 9