我正在尝试编写一组着色器来绘制曲面的边缘(不是多边形!),就像在游戏Echochrome中一样。
根据我对图形编程的记忆,这样做的技术是进行多通道渲染。第一遍应该将面部法线向量和深度编码为 RGBA 颜色并将它们绘制到纹理上。如果当前片段的法线或深度信息与周围纹素的法线或深度有显着差异,则第二遍应查找纹理中的值并绘制边缘。
(注意:如果有更简单的方法,请告诉我,特别是如果在 Flash 中很容易做到。但是,我的具体问题如下。)
我在编写第一遍时遇到了障碍。根据我在使用 DirectX 9.0c 进行 3D 游戏编程的介绍:Frank D. Luna 的着色器方法中读到的内容,“插入”法线向量的正确方法是对三角形顶点的法线向量求平均,然后使用它表面上每个片段的值。但是,我的片段着色器改为对法线向量进行插值,这导致为表面绘制渐变而不是纯色。
如何让 AGAL 进行必要的平均而不是插值?