I’ve modified the lighting equations to allow for transmitted (as well as reflected) specular for dynamic lightings. Transmitted specular means the light is on the opposite side of the object, but light is coming through the object towards the viewer.
This is important for thin materials (such as leaves)
No transmitted specular: With transmitted specular: Here the amount of transmission is maybe slightly too high – but it shows the effect well.
Here is a node diagram for the specular transmission function (BTDF) from Walter, et al, from “Microfacet Models for Refraction through Rough Surfaces." Also known as the “GGX” model (or Trowbridge-Reitz).
You can see how the node graph comes in handy for debugging a shader function like this. It’s useful to visualize each term and see it’s effects. For example, the “D” term of the BTDF is a node on the diagram.
The master branch has just been updated! It now includes a major new tool, called the MaterialTool. This is a dedicated app for building materials and applying them to objects, and includes some cool new features…
In XLE, most material information can be authored in standard graphics packages (like 3DS Max, Maya, Substance Painter, etc). In particular, the most critical material values (color, roughness, specular & metal) can come directly from standard packages.
Stitching shaders together at runtime to deal with shader configuration explosion
Just a quick note on rectangle light diffuse. In XLE, rectangle lights are slightly different from the default rectangle lights in 3DS Max.
XLE rectangle lights emit light mostly in the forward direction (and a reduced amount sideways). But in the 3DS Max Quicksilver renderer, rectangle lights emit light in all direction.
Edge cases This is partially because the method we’re using for diffuse doesn’t work well on extreme angles. In the above example, the light plane and the top/bottom/left/right walls are actually perpendicular.
Post updated on 2015-12-10
This is just some notes about some ideas I’ve been playing with lately. I’ve been thinking about some improvements to the specular highlights for rectangle lights!
The current implementation is based on the method by Michal Drobot in GPU Pro 5. I’m not going to repeat the description here (I’ll only give a few details) – but I recommend buying the book and having a look! It’s quite a good method, and interesting read.
So, you’ve just downloaded XLE, and you’re wondering what to do first? Here’s a suggestion for the first 10 minutes:
Startup the level editor Select the Level Editor as the startup project: You should use the Debug/x64 or Release/x64 configuration. Though XLE works in both 32 bit and 64 bits modes, normal usage for the level editor should be in 64 bits mode.
If you have trouble compiling, see the [Getting Started Compiling page] (https://github.