使用webgl / opengl进行轮廓渲染

时间:2017-05-05 01:51:46

标签: opengl-es glsl webgl cad

我一直在尝试使用webgl在CAD模型上渲染轮廓。我得到所需结果的最接近的是fwidth和正常和眼睛向量之间的点。我发现很难控制宽度。

我看到了另一个基于Web的查看器,它能够做到这样的事情:

sillhouettes

我开始挖掘着色器,我能想到的最多就是分析 - 绘制一个实际的线条实体,并通过渲染四边形而不是默认的webgl线来实现宽度。着色器中有一堆逻辑,我最好的猜测是每个渲染都会更新顶点位置。 这是一个程序模型,所以我想对于锥体和圆柱体,总是可以分配两条线,计算轮廓点,并更新线条。

如果是这样的话,在着色器中尝试做这样的事情是不是一个好主意(也许它已经发生了,我不理解它)。我可以看到正在写入属性或制服的圆柱体以及计算出的点数。

有没有这样的方法已经记录在某处?

编辑8/15/17

我没有找到任何关于此的论文或记录技术。但它得到了几张选票。

鉴于我确实有关于圆柱体和圆锥体的信息,我的想法是从顶点采样参数曲面的法线,将表面推出一些能够覆盖屏幕空间中某些像素的因子,模板,并绘制一条粗线,从而用表面的实际形状剪切它。

2 个答案:

答案 0 :(得分:1)

传统的基于着色器的方法是Gooch着色。原始文件在这里:

http://artis.imag.fr/~Cyril.Soler/DEA/NonPhotoRealisticRendering/Papers/p447-gooch.pdf

答案 1 :(得分:0)

Jeff Lander的老套时尚OpenGL技术