2

我需要以某种方式渲染纹理,例如场景的屏幕截图,除了存储法线而不是每个片段后面的点的颜色数据。它会生成一个看起来有点像法线贴图的纹理(例如this)。我做了很多研究(收效甚微),但我的直觉告诉我,最简单的方法是使用 GLSL 着色器。

那么是否有任何可能的方法来实现这一点,GLSL 或其他方式?

4

2 回答 2

1

将法线向量渲染到单独的渲染目标是延迟光照的常用技术。您可以在此处找到一个很好的介绍(它使用 DirectX 和 HLSL,但概念非常清晰,可以轻松移植到 OpenGL/GLSL)。

于 2011-11-29T09:07:36.457 回答
0

写出法线信息的实际 GLSL 着色器非常简单(比处理光照信息简单得多)

我使用 KickJS 着色器编辑器在 GLSL 中创建了一个“普通着色器”:

http://www.kickjs.org/example/shader_editor/shader_editor.html#ahFzfmtpY2tzdGFydGVuZ2luZXJjCxIWb3JnLmtpY2tqcy5zaGFyZWQuVXNlciIbbW9ydGVuQG5vYmVsLWpvZXJnZW5zZW4uY29tDAsSGG9yZy5raWNranMuc2hhcmVkLlNoYWRlciIORGVmYXVsdCBzaGFkZXIM

移植到您想要使用的任何版本的 GLSL 应该很简单。

于 2011-11-29T13:46:11.743 回答