Recovered ancient post, implemented with DirectX or RenderMonkey (Offline Shadertoys)
Transmittance of Light
Fig 1 is a very simple implementation in Rendermonkey, using Fresnel item to control the light transmittance. There are many dirty works for packing the float to a rgba texture(I don’t know how to manipulate the depth texture in Rendermonkey!). What’s more, you have to be very careful about the texture coordinates, even there was only 1/2 pixel’s offset.
BTF
As in Fig 2, it is a very interest way to simulate the SVBRDF, especially useful to simulate the wool or sweater –such kinda rough surface, and the data for rendering is accessible here. You can get these data yourself with your DC. I think it’s sort of image based rendering, a quick implementation stuff can be found here by Jan Kautz. I use the Matlab to process the image got here. And I interpolate these pictures based on average intensity of pictures.
Classical Lighting
Most of the lighting is computed in an environment with single point light. I read a lot of papers on BRDF, and I just picked up certain light mode to implement. Anisotropic light is even more complex in environment lighting.
References
- DC Banks. Illumination in diverse codimensions. pages 327–334. ACM New York, NY, USA, 1994.
- R Bastos, K Hoff, W Wynn, and A Lastra. Increased photorealism for interactive architectural walkthroughs. pages 183–190. ACM New York, NY, USA, 1999.
- RL Cook and KE Torrance. A reflectance model for computer graphics. pages 307–316. ACM New York, NY, USA, 1981.
- GJ Ward. Measuring and modeling anisotropic reflection. pages 265–272. ACM New York, NY, USA, 1992.