我知道有几种技术可以实现此目的,但是似乎没有一种是足够的。
有任何想法吗?
编辑我什至看着自己用几何着色器找到边缘,如http://prideout.net/blog/?p=54中所述,但它与线框技术有同样的差距。
编辑通过在绘制轮廓时禁用
GL_DEPTH_TEST
,我能够使用线框技术摆脱了渲染假象。不幸的是,我也丢失了重叠物体的轮廓。我的目标是获得与Dragons Lair 3游戏中的角色相同的效果。有人知道他们是怎么做到的吗?
最佳答案
如果您要进行真正的边缘检测,Ive发现使用卷积LoG(高斯上的拉普拉斯算子)5x5内核,将其应用于深度缓冲区并在渲染的对象上混合(可能使用体面的FSAA)可以获得很好的效果。您需要在片段着色器中进行一些调整以夹住混合轮廓,但是效果很好。 (顺便说一句,这取决于您真正想要的是什么)
注意:
1)拉普拉斯过滤和对数过滤是不同的东西,并产生不同的结果
2)如果在深度缓冲区上应用卷积而不是渲染的图像,则最终会得到完全不同的结果,此外,如果需要轮廓宽度控制,则可以使用膨胀滤镜和选择性腐 eclipse 通过应用后,您将最终获得一个与标记绘制的手绘草图非常匹配的渲染,并且可以很好地控制 Nib 的大小,但要花2遍额外的时间
关于opengl - 使用OpenGL进行轮廓/轮廓渲染,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8835453/