Jump to content
  • Advertisement
Sign in to follow this  
Vincent_M

Combining Reflective Maps with Materials

This topic is 2641 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

When applying reflections to my materials, which component of lighting should it be under? I'm out like to say specular, but diffuse may be more accurate. Materials that aren't reflective should be blended by the material color of that component of lighting reflections are applied to, right? For example, a reflective surface that is 50% reflective should multiply the color from the reflection map by 0.5, and the material's, say, diffuse color by the reaming 0.5. Is this correct?

Share this post


Link to post
Share on other sites
Advertisement

When applying reflections to my materials, which component of lighting should it be under? I'm out like to say specular, but diffuse may be more accurate. Materials that aren't reflective should be blended by the material color of that component of lighting reflections are applied to, right? For example, a reflective surface that is 50% reflective should multiply the color from the reflection map by 0.5, and the material's, say, diffuse color by the reaming 0.5. Is this correct?

It is just a sharp relfection of the surrounding light, specular lights are just a simulation of the reflection of very bright light sources, which could be dimmed by the gloss factor. I would try out the following basic formula:

I = em + dot(L,N) * diff + (reflection + pow(dot(L,R),spec))*gloss*fresnel
em = emission
diff = diffuse
spec = specular exponent
gloss = gloss
fresnel = fresnel formula
reflection = value from your reflection texture
L = light vector
N = surface normal
R = reflected eye/camera vector
I = final intensity

Share this post


Link to post
Share on other sites
Ashaman73's equation is the typical Phong model plus added Fresnel. This is a common approach, but unfortunately it's physically highly incorrect. Specular and diffuse reflections aren't additive in reality.

Vincent, you are on the right track with your ideas. The key point is energy conservation. The optical model of how light reacts when hitting a surface is usually described by a bidirectional reflectance distribution function (BRDF). Depending on the material such a functions can be very, very complex (think of layered, partially translucent materials such as the human skin, for example), but they can also be quite simple. In fact, the Phong model is a very simple BRDF.

Just think about how simplified optics would work on a smooth surface, while keeping energy conservation. Photons come in, and some of them are directly bounced back when hitting the outer layers of the material. That's your specular reflection. Depending on the material type (metal, dielectric, etc), these reflections can be wavelength dependent or not. And depending on the roughness of the surface, they can be more or less blurred.

The remaining energy penetrates further into the material and will be gradually diffused, ie. partially absorbed and partially bounced back in random directions. That's your diffuse color term. If the material is transparent or translucent, some energy will neither be specularly nor diffusely reflected, but transmitted through the material, potentially being refracted and/or some wavelength absorbed (filter materials).

I like this PDF here. It's a description of how the Mental Ray architectural shaders work. Although for offline use, the same principles are universally applicable. It comes with nice rendering examples of how the individual components influence the appearance of a material. Chapters 1.3 and 1.4 are most important. A simple energy conserving shader can go a long way towards realistic materials, even without simulating the more difficult effects like refractions or translucency.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!