Hot answers tagged

7

Using physically based BRDFs only makes sense if your entire pipeline is built for physical units - the extreme range of values can't be displayed properly without some form of tone mapping. You didn't include that part of the code but from the looks of it I'd say you're doing a simple clamp() followed by linear->sRGB conversion, which causes the bad ...


3

After coming back to the problem now with a fresh pair of eyes, I have managed to find my mistake. Ad Question 1 Yes, the formula is correct. The problem is hidden in the tangent and bi-tangent . When performing normal mapping, the tangent frame has to be perpendicular to the mapped normal, otherwise the term will not carry any information about the ...


2

If this was correct, $\frac{D(H)G(L,V,H)}{4|N⋅V|}$ should be a dirac delta function. But I don't think so. Actually, you're close to your answer - you just are trying to find out, what the assumption was in the very beginning - if you're talking about a specular BRDF. The term $F\frac{DG}{4|N⋅V||N⋅L|}$ only works, if you start with the precondition, that ...


2

In microfacet BRDFs, the half-vector is the same as the microfacet normal. The half-vector is exactly the required normal for a microfacet to reflect light from the incident ray to the outgoing ray, by the law of reflection. So, for given incident and outgoing directions, only those microfacets whose normals are aligned with the half-vector are "active". ...


2

How are you randomizing the samples you take? It looks to me like maybe the random values are the same across all pixels in the image, which would explain why you see 10 coherent bright spots when you have 10 samples. The samples should be re-randomized for each pixel. This should produce a noisy result, with a single blurred-out bright spot instead of 10 (...


2

Disclaimer: I am assuming that you are implementing a classical Monte Carlo estimator. The Problem Discarding samples will change PDF of your sampling technique. You are cutting off part of the sampled domain where PDF is non-zero, which effectively leads to a trimmed version of the original PDF but implicitly re-normalized so the remaining part integrates ...


1

http://graphicrants.blogspot.com/2013/08/specular-brdf-reference.htm - here is reference with different geometry shading equations http://jcgt.org/published/0003/02/03/paper.pdf - paper explaining how G term works and on what assumptions it is build. Looking again at your code, I'm not sure (based on first link to Karis blog) if your G term is calculated ...


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