[Bf-committers] Material Nodes: No normals in worldspace?

Tobias Oelgarte tobias.oelgarte at googlemail.com
Wed Jul 20 21:14:24 CEST 2011


In recent time I worked with node-materials quite often and anything 
seamed to be fine. But then I came across the very simple task that 
needs the actual normals of the object surface in worldspace (z-up, 
x-right, y-backside). But there is no input for such normals. All I have 
found are the normals in viewspace and the view-vector of the camera 
(also in viewspace). Since both are only relative to each other, there 
is no way to get the worldspace normal of an object just by using this 
pair. That means, that there is no way to influence the shading 
depending on the orientation (not location) of the faces itself.

For example you would like to give any upward looking face an own 
material and fade it out to a second material, as the angle gets bigger. 
This can be achieved within viewspace, but only if you never intend to 
rotate the camera. Tilt it 180° to left or right and the bottom of all 
objects will show the first material instead of the second.

So my questions are:
a) Is there a way to access the normals in worldspace/localspace within 
material nodes?
b) If not: Why was it never implemented? Seams to be very useful: Snow 
depending on surface angle; Trees covered with moss at the rain side, 
ice at the wings of a plane, etc.)
c) Is there any workaround that would also work on animated meshes?

Best wishes from
Tobias Oelgarte


More information about the Bf-committers mailing list