我目前正在研究在WebGL中生成非逼真渲染的方法。到目前为止,我发现最好的边缘检测算法是使用OpenGL的几何着色器实现的,链接在这里,具体来说是GL_TRIANGLES_ADJACENCY。
我想知道在WebGL中是否有相当的功能,或者如何将该代码移植到Javascript中。
我目前正在研究在WebGL中生成非逼真渲染的方法。到目前为止,我发现最好的边缘检测算法是使用OpenGL的几何着色器实现的,链接在这里,具体来说是GL_TRIANGLES_ADJACENCY。
我想知道在WebGL中是否有相当的功能,或者如何将该代码移植到Javascript中。
在WebGL中无法使用几何着色器。
然而,有很多方法可以进行边缘检测。例如,您可以使用基于图像空间的算法,比如
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.93.9731&rep=rep1&type=pdf
或者看一下《实时渲染-第三版》(书)。这本书中有很多非真实感渲染的例子,其中大部分在WebGL上运行良好。http://www.realtimerendering.com/
更新于2023年11月4日:https://webgl2fundamentals.org/webgl/lessons/webgl-drawing-without-data.html
这个网站致力于展示这方面的例子:WebGL目前仅支持像素着色器和顶点着色器,不支持几何着色器。
尽管如此,有一篇有趣的文章和演示,展示了如何在WebGL中模拟几何着色器,网址为:https://acko.net/blog/yak-shading/。