我目前正在研究一种在 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
或者看看《实时渲染 - 第 3 版》(书籍)。本书中有很多 NPR 的示例,其中大多数都可以在 WebGL 上正常运行。
WebGL 目前仅支持像素着色器和顶点着色器,不支持几何着色器。
这已经是最接近的了:
https://webgl2fundamentals.org/webgl/lessons/webgl-drawing-without-data.html
这是一个专门提供此类示例的网站:
https://www.vertexshaderart.com
您必须预先指定要生成的顶点数量。