飘动的丝缎(OGL+Cg)

有些物体的表面(像绸缎、压缩光盘、擦过的金属和头发等)呈现出各向异性(anisotropic)的光照属性。传统的光照模型认为3D表面是局部平的,表面上一点的法线垂直于该平面,认为表面切向量是均匀分布的(也就是各向同性分布);而机织丝布有其固有的线的走向,类似的还有擦过的金属表面、头发、CD光盘表面上的槽纹等。沿着表面擦痕或纤维的表面法线的分布与横穿它们的分布不同。相对远点的观察者会看到光照结果,但不是微观结构。

我用Vertex Shader来实现具有各向异性光照的丝缎的飘动。截图如下:

程序下载(需cg.dll和cgGL.dll支持):

cg_anisolight.rar

你可能感兴趣的:(shader)