使用GLSL进行毛发着色

时间:2013-11-08 15:36:30

标签: opengl glsl shader fragment-shader

我使用GLSL开发3D引擎,我想添加毛发着色效果。

enter image description here

我做了一些研究,找到一个正确解释“毛发着色”技术的教程,我找到的最好的网站是以下一个:

http://www.xbdev.net/directx3dx/specialX/Fur/

但是它使用DirectX API和HSLS。但简而言之,它与OpenGL和GLSL非常接近。 我知道我必须使用相同的着色器在几次传递中渲染场景。为了给出尖峰的印象,我只是减少了每层的alpha值。所以最后一个几乎是透明的。

enter image description here

例如,如果我想在平面上渲染5层毛发,我必须渲染我的场景5次。使用DirectX,OpenGL似乎更容易,因为HLSL集成了关键字“pass”以通过多次传递渲染场景。但我想我必须使用帧缓冲对象(FBO)和OpenGL API使用渲染缓冲区或纹理。我想我必须多次渲染场景,并且每次我都在不同的纹理中注册颜色缓冲区(通过纹理附加在FBO或几个FBO上)。在最后的过程中,我将拥有一个独特的颜色缓冲区,这是私有纹理叠加的结果。我的想法是否正确?

0 个答案:

没有答案