【发布时间】:2020-04-11 06:38:04
【问题描述】:
我一直在尝试使用 webgl 在 CAD 模型上渲染轮廓。我得到的最接近预期结果的是fwidth 和法线和眼睛矢量之间的一个点。我发现很难控制宽度。
我看到另一个基于 Web 的查看器,它能够执行以下操作:
我开始深入研究着色器,我能想到的最多的是这是分析性的——绘制了一个实际的线实体,并且通过渲染四边形而不是默认的 webgl 线来实现宽度。着色器中有一堆逻辑,我最好的猜测是顶点位置在每次渲染时都会简单地更新。 这是一个程序模型,所以我猜对于圆锥和圆柱,总是可以分配两条线,计算轮廓点并更新线。
如果是这样的话,尝试在着色器中做这样的事情是个好主意吗(也许它已经发生了,但我不明白)。我可以看到一个圆柱体被写入属性或制服并计算了点。
是否有这样的方法已经记录在某处?
编辑 8/15/17
我还没有找到任何关于此的论文或记录技术。但它得到了几票。
鉴于我确实有关于圆柱体和圆锥体的信息,我的想法是从顶点对该参数曲面的法线进行采样,将曲面推出某个因子以覆盖屏幕空间中的一些像素,然后对其进行模板制作,并绘制一条粗线,从而将其与表面的实际形状相剪裁。
【问题讨论】: