Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要以某种方式渲染纹理,例如场景的屏幕截图,除了存储法线而不是每个片段后面的点的颜色数据。它会生成一个看起来有点像法线贴图的纹理(例如this)。我做了很多研究(收效甚微),但我的直觉告诉我,最简单的方法是使用 GLSL 着色器。
那么是否有任何可能的方法来实现这一点,GLSL 或其他方式?
将法线向量渲染到单独的渲染目标是延迟光照的常用技术。您可以在此处找到一个很好的介绍(它使用 DirectX 和 HLSL,但概念非常清晰,可以轻松移植到 OpenGL/GLSL)。
写出法线信息的实际 GLSL 着色器非常简单(比处理光照信息简单得多)
我使用 KickJS 着色器编辑器在 GLSL 中创建了一个“普通着色器”:
http://www.kickjs.org/example/shader_editor/shader_editor.html#ahFzfmtpY2tzdGFydGVuZ2luZXJjCxIWb3JnLmtpY2tqcy5zaGFyZWQuVXNlciIbbW9ydGVuQG5vYmVsLWpvZXJnZW5zZW4uY29tDAsSGG9yZy5raWNranMuc2hhcmVkLlNoYWRlciIORGVmYXVsdCBzaGFkZXIM
移植到您想要使用的任何版本的 GLSL 应该很简单。