Hot answers tagged

3

You probably want to set sigma to be a fraction of the radius, rather than a fixed value. Sigma controls the actual shape of the filter, while radius just controls how far out the filter gets cut off (as Gaussians truly have infinite radius, so we have to cut them off somewhere to use them in practice). With sigma set to 0.5, you're making a filter that's ...


2

What you're looking for is called tone mapping, which is the process of mapping from HDR color values generated by a physically based renderer, to LDR color values suitable for display on a screen. It also incorporates changes in saturation, such as desaturating the color when the values get very bright. You will likely also need exposure compensation prior ...


2

The units of the NDF are tricky. For whatever it's worth, Heitz's convention of defining it relative to a 1 m² reference geometric surface is unusual, and although I can see why he would want to define it that way for conceptual simplicity, it does not really match how NDFs are used in practice. I definitely had a head-tilt moment when I first read that ...


1

In truth, there is no mathematical maximum value for $\alpha$. As you noted, microfacet slope is unbounded, so in principle you could have arbitrarily large slope values and hence arbitrarily large $\alpha$. There's nothing wrong with that—the mathematics of the microfacet model keeps working fine. As a practical matter, beyond a certain point you don't ...


1

The book distinguishes a spectral power distribution from a spectral response curve because they are not the same, they are adjoint. The thing about adjoints that makes them a little tricky to wrap your head around is that they typically have the same representation in software, but keeping them distinct is extremely important in computer graphics. Another ...


1

Shadow rays that hit a glass surface or similar are stopped because there's no direct path from the light source to the shading point—there's a piece of glass in the way. for perfectly specular transmission/reflection, you can continue tracing the shadow ray because there's only one possible outgoing vector for a given incoming vector That won't work, ...


1

In your example of a BVH cell partitioned along the x axis, if the ray is going left to right (increasing x), then the cell with the lower x comes first; but if it's going right to left (decreasing x), then the cell with the higher x comes first. So, you can look at the sign of the x component of the direction vector to determine which cell to test first.


1

The summation doesn't include the BxDF that was picked for sampling. Look again at this line: if (bxdfs[i] != bxdf && bxdfs[i]->MatchesFlags(type)) Here bxdf is the one that was sampled earlier, so when it iterates to that one it skips it.


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