NormalMap & CubeMap

NormalMap & CubeMap

  有时候我们需要CubeMap的环境反射也需要有凹凸信息,此时需要装将NormalMap与CubeMap结合。

  因为要使用NormalMap,使用Property定义中必须有定义NormalMap:

  

  By using the INTERNAL_DATA statement, we can access the surface normal after it has been modified by the normal map.

  

  关于INTERNAL_DATA的详细说明。worldRefl、worldNormal基于顶点级的法线进行计算得到。加上INTERNAL_DATA,则在修改o.Normal后,Shader会自动重新计算这2个值。如果要获取pixel-level想关值,则需要使用 WorldReflectionVector()、WorldNormalVector()这2个函数。

  

  最后,surf函数实现如下:

  

  最终效果图如下:

  

  

  

原文地址:https://www.cnblogs.com/tekkaman/p/3981788.html