我想实现典型的CAD软件,因此需要边缘检测算法来绘制各种网格的轮廓。剪影包括各种物体的轮廓,脊和折痕。以下是在Blender中创建的立方体示例,其中轮廓由粗橙线组成:
我想使用几何方法,其中线框被绘制在对象的顶部,而内部线条(如对角线)被省略。线框渲染描述为here。在本文中,几何着色器用于绘制线框。 还解释了必须设置每顶点属性以决定是否应该省略一行。
我的问题是:我怎么能决定省略哪些行?顺便说一句,我使用OpenGL作为渲染API。
编辑:为了澄清,我真的想画出构成轮廓的边缘,而不是任何对角线。这是我想要实现的一个例子:
答案 0 :(得分:1)
从您的示例图片中我推断出您想要增强
前者是通过观察面部的方向来确定的:面部是"面对"当观察者在半空间之外时,它会划界,反之亦然。轮廓边缘是属于面对面和非面对面的轮廓边缘。请注意,这是一个依赖于查看器的属性。
凸出边缘使得它连接两个面,形成足够大的角度,使得连接被认为是不光滑的。 (角度阈值取决于您。)这是与查看者无关的属性。
答案 1 :(得分:0)
考虑自由泳 https://www.blender.org/manual/en/render/freestyle/index.html
Freestyle是一种基于边缘和线条的非真实感(NPR)渲染>引擎。它依赖于网格数据和z深度信息来在>选定的边缘类型上绘制线条。可以添加各种线条样式以生成艺术(“手绘”,“绘画”等)或技术(硬线)外观。
我还没有使用它,但我打算尝试从3d模型创建线条图。