Most Popular

1500 questions
6
votes
1 answer

BSDF sampling versus light sampling

I wish to understand the specific application of Multiple Importance Sampling (MIS) to weighting BSDF sampling and light sampling together. Refer to the following diagram from these Stanford course notes: I understand the source of noise in the…
6
votes
1 answer

Ray tracing implicit surfaces using Sturm's theorem

I am trying to render implicit surfaces given by a polynomial equation $F(x,y,z) = 0$ using Sturm's theorem. Plugging the parametric ray equation $r(t) = o + td$, where $o\in\mathbb{R}^3$ is the ray origin and $d\in\mathbb{R}^3\backslash\{0\}$ is…
user9485
6
votes
2 answers

Difference in pixels between different monitors' sizes

If I have an image of x/y resolution and display it on a monitor, does this mean that between a 15-inch monitor and a 42-inch, the same amount of pixels (x/y) will be displayed, only that each pixel will be of different size? In relation to my…
FLUSHER
  • 161
  • 3
6
votes
2 answers

PBR missing rim darkening on non metallic rough surfaces

If you have a dielectric (non metallic) sphere with a large roughness value (say, 0.95), and put it in a lighting environment that has a constant onmidirectional lighting value (such as 0.5) Cook-Torrance ggx PBR renderers seem to be missing a…
Alan Wolfe
  • 7,801
  • 3
  • 30
  • 76
6
votes
1 answer

Same draw call causing extremely different GPU usage under different triangle orders

So I have a bit of a predicament I am trying to solve. I have 10,000 triangle strips I am trying to draw. Each one has a z-order for the entire strip and within each strip the most recent triangles need to have a higher z order than the older one.…
J.Doe
  • 1,445
  • 12
  • 23
6
votes
1 answer

How do I calculate average hue, since the numbers loop around?

If I calculate the average (mean) hue of a set of colours naively, I will get silly answers sometimes. For example, in HSB/HSL, the average of hue=10 (slightly orange red) and hue=350 (slightly blue red) would arithmetically be hue=(10+350)/2=180…
spraff
  • 289
  • 3
  • 6
6
votes
1 answer

Why are tessellation shaders disliked?

I often hear that tessellation shaders aren't great for performance reasons. Something along the lines that if you try to use a tessellation shader, you'll find that the data you get out isn't sufficient and you'll have to re-do calculations…
Alan Wolfe
  • 7,801
  • 3
  • 30
  • 76
6
votes
2 answers

Bokeh from depth map

How do I generate bokeh that simulates shallow depth of field given a perfect depth map? Here's what I tried: Generated a sample scene using blender and corresponding depth map Using Python, generated what sigma (standard deviation) to use at…
6
votes
1 answer

Radiative Transfer Equation for Photorealistic Rendering

I've recently become interested in photorealistic rendering, and I've been looking at the different rendering philosophies. I read this Disney Research bachelor's thesis, which states both the radiative transfer equation…
BJParks
  • 63
  • 4
6
votes
1 answer

Double precision in shader

for better accuracy, instead of GLfloat, I bound double data and tried to use the data in shader as follow: (I just tested to draw single triangle.) cpp. // xyzw three vertices double points[] = { 0.0, 0.0, 0.0, 1.0 , 1.0, 0.0, 0.0, 1.0, 0.0, 1.0,…
shashack
  • 523
  • 4
  • 13
6
votes
2 answers

When does it make sense to use drawRangeElements

I am trying to understand when it makes sense to use the glDrawRangeElements function. The OpenGL wiki says: for optimization purposes, it is useful for implementations to know the range of indexed rendering data So, as I interpret it, if I had…
Startec
  • 781
  • 6
  • 19
6
votes
1 answer

Microfacet shading for diffuse materials

I recently replaced the Lambertian BRDF in my path-tracer with Oren-Nayar, under the assumption that I could adjust it to use the GGX distribution model with appropriate masking/shadowing. PBR suggests this is't viable, though - Oren-Nayar is…
Paul Ferris
  • 447
  • 2
  • 11
6
votes
1 answer

How do you design the code of a graphics engine to target multiple frameworks

I am starting to think about how I can make my app (currently written in Metal) available on older device that dont have Metal as well as Android. This is a predicament because while I could write two separate rendering classes that use the…
J.Doe
  • 1,445
  • 12
  • 23
6
votes
0 answers

Avoiding Mach band effect when using multiple lights

I wrote a simple Phong shader with two directional lights for a project, and noticed an unpleasant artifact in the lighting. Where both lights are illuminating the same region, dark bands appear at the light terminators where N.L reaches zero. At…
russ
  • 2,392
  • 9
  • 18
6
votes
1 answer

Where does the cosine factor comes from in the GGX PDF?

The GGX NDF, as it appears on the paper where it is presented is: $$D(m)=\frac{\alpha_g^2\space\chi^+(m\cdot n)}{\pi\cos^4(\theta_m)(\alpha_g^2+\tan^2(\theta_m))^2}$$ It is equivalent, in the range $[0,\frac{\pi}{2}]$, to the following formulation…