Questions tagged «mesh»

4
为什么网格中的T型结会导致裂缝?
我从许多消息来源获悉,在3D网格中包含T型结是一个坏主意,因为它可能在渲染过程中导致裂缝。有人可以解释为什么会发生这种情况吗?如何避免这种情况发生?
19 mesh 

3
计算网格三角形主曲率的最简单方法是什么?
我有一个网格,在每个三角形周围的区域中,我想计算主曲率方向的估计值。我以前从未做过这种事情,而Wikipedia并没有太大帮助。您能描述或指出一个简单的算法来帮助我计算此估算吗? 假设我知道所有顶点的位置和法线。
19 mesh 

3
为什么在电影制作中使用四边形,在游戏中使用四边形?
在电影学院的3D建模课程中,有人告诉我,当我们为电影建模时,我们会保持4个有边多边形的拓扑。具有多于或少于4个边/顶点的任何多边形都被认为是不好的,应避免使用。如果在游戏中使用了相同的模型,则将其划分为三角形。 尽管我没有主修3D建模,但是我仍然想知道这个问题。为什么在游戏中使用3边多边形?渲染速度更快吗?那为什么不将它用于电影效果图呢?
14 3d  mesh  triangulation 

2
如何为生成的几何计算表面法线
我有一个基于调用代码的输入生成3D形状的类。输入的内容包括长度,深度,弧度等。我的代码完美地生成了几何图形,但是在计算表面法线时遇到了麻烦。点亮时,由于计算出的不正确的表面法线,我的形状具有非常奇怪的着色/纹理。从我所有的研究中,我相信我的数学是正确的,似乎我的技术或方法有问题。 在高层次上,如何以编程方式计算所生成形状的表面法线?我在我的代码上使用iOS上的Swift / SceneKit,但是通用答案很好。 我有两个数组代表我的形状。一个是一组3D点,这些点代表组成形状的顶点。另一个数组是第一个数组的索引列表,这些索引将顶点映射为三角形。我需要获取该数据并生成一个第三数组,该数组是一组有助于形状发光的表面法线。(请参见SCNGeometrySourceSemanticNormalSceneKit`) 顶点和索引的列表始终根据类的输入而有所不同,因此我无法预先计算或对表面法线进行硬编码。

1
为什么3D Studio中的平滑网格最终得到相同数量的顶点/三角形?那么如何用相同的几何形状对它们进行平滑处理?
我试图理解为什么在3D Studio中平滑的网格(修改器/平滑器)在该过程之前或之后最终具有相同数量的顶点/面,以及完全相同的几何形状。 在以下示例中,两个网格都具有32个顶点和60个面。 尽管我有使用编程(c ++和c#)的经验,但我还是计算机图形学的初学者。因此,我的期望是,平滑网格的平滑外观将需要其他顶点,即三角形的细分,以便最终获得更详细的最终网格。但是,事实并非如此。 因此,我问: 1)如何在不增加网格几何细节的情况下进行平滑处理? 2)与原始网格相比,平滑处理是否至少增加了分配/用于存储新网格的内存? 超级欢迎您进行说明,但也欢迎您参考(学术界与否)。
11 3d  geometry  mesh  memory  model 

1
以编程方式生成顶点法线
我正在使用Kinect面部api,它为三角形提供了一组顶点和索引,这些三角形将被渲染以生成面部图像。 顶点的数目及其在数组中的顺序以及kinect给定的索引始终是恒定的。 但是,该API没有提供有关UV数据和顶点法线的信息。 该应用程序要求我保持kinect给出的顶点顺序,因为它们在3d空间中的位置会根据面部运动而变化,因此在3d编辑软件中生成uv和法线是毫无疑问的。 我设法通过将顶点位置投影到2D平面上来生成UV,因为同一平面上的顶点很少。 但是,我不知道如何为网格生成顶点法线,如果没有顶点法线,则脸部网格的绘制就不会产生任何深度的特征,尽管随着顶点位置的正确,轮廓是可见的。 我了解到,由于缺少顶点法线,因此照明无法在其上正常工作,因此,现在看起来很苍白的无特征网格。 那么当我只有顶点位置和顶点索引以生成三角形时,如何生成顶点法线呢?

3
如何在多边形网格中进行三角形内部测试?
我(V1, V2, V3)在规则三角形网格上随机选择了3个顶点。对于这3个顶点,我已经计算出它们之间的测地线距离和路径(通过使用Dijkstra),并形成了一个如上图所示的三角形表面。 现在,我有了每个路径中的顶点,并且可以计算到给定顶点的测地距离。 我要做的是获取位于三角形区域的顶点或三角形。我怎样才能做到这一点?

1
创建Voronoi网格的管道
我想实现一个Maya插件(此问题独立于Maya)以创建3D Voronoi模式,例如 我只知道我必须从点采样开始(我实现了本文描述的自适应泊松采样算法)。 我认为,从这些观点出发,我应该使用Voronoi创建网格的3D线(我尝试使用(Python)scipy.spatial.Voronoi,但结果与我的预期有所不同)。 我想念什么吗?谁能建议我创建此类模式所必须实施的适当管道和算法? [编辑]以下是是我所得到的处理结果我从scipy.spatial.Voronoi得到这样(的建议了几个例子在这里): vor = Voronoi(points) for vpair in vor.ridge_vertices: for i in range(len(vpair) - 1): if all(x >= 0 for x in vpair): v0 = vor.vertices[vpair[i]] v1 = vor.vertices[vpair[i+1]] create_line(v0.tolist(), v1.tolist()) 灰色顶点是采样点(原始形状是一个简单的球体): 这是更复杂的形状(手臂)
10 3d  geometry  mesh  polygon 

1
在GPU上创建共享的顶点法线
我已经成功地将Marching Cubes的实现从CPU移植到了OpenGL计算着色器中,但是我还没有解决法线问题,并且想知道最好的解决方法。 我的实现专门处理二进制值字段(我正在尝试为尚没有距离估计器的3D分形函数建模),因此渐变和前向差分方法将不起作用。我有共享的顶点在工作,并且我的CPU实现使用此处描述的Quilez方法将面法线累积到每个相邻顶点上。 我可以将该实现移植到另一个着色器上,但是我看到的问题是需要大量的原子。由于我们只能在标量整数类型上使用原子,并且我无法想到一种以可加方式将3个有符号的int打包为1的方法,这意味着每个着色器调用3个轴* 3个顶点= 9个原子加法。它们当然会散布在整个内存中,所以这不像是击中单个原子计数器9次,但它看起来仍然像是个地狱。 另一种选择是针对每个多边形运行一个着色器调用,并构建人脸法线列表(我可能会以此方式打包到x10y10z10),然后每个顶点的着色器来累积所有相邻人脸的法线。但是,这将是一个巨大的内存消耗,面部索引的存储空间每个顶点需要12 int才能处理最坏的情况。还有一个问题,如何在不再次使用原子的情况下写入该存储,以计算出已将多少张面写入特定顶点。 任何人对此有更好的主意吗?

3
沿曲线排序一组无序点
我有一组3D点(我从执行实体细分的库中恢复),这些点属于曲线(即,实体的边缘)。这意味着曲线肯定会经过这些点中的每一个。 但是,点集是无序的,因此我需要对其进行排序,以便能够正确绘制此曲线。 有没有针对此类问题的已知方法? 一些其他信息: 曲线通常是参数化的(样条曲线/贝塞尔曲线,圆切片..)。 这些点作为浮点坐标给出。 这些点非常密集地打包(但是它们可以像我想要的那样密集)。为了让您有个想法,对于一条曲线,它在x中占19个单位,在x中占10个单位,在z中占5个单位,我引用了曲线段中的一系列点:(20.7622,25.8676,0)(20.6573,25.856, 0)(20.5529,25.8444,0)(20.4489,25.8329,0)(20.3454,25.8213,0)
9 geometry  mesh  curve 

1
在GPU上使用查找表时的最佳内存访问?
我正在为单身汉的项目探索GPU上的等值面算法(特别是仅关注二进制输入/输出体素数据,而不是实值字段)。因此,我有一个良好的旧行军多维数据集的CPU实现,并在OpenFrameworks中运行,现在处于尝试将其移植到GLSL计算着色器的阶段,并在下潜之前考虑了陷阱。我只写了vert和frag着色器在此之前,这对我来说都是全新的。 我的第一个问题是如何有效地在工作组中的数十个或数百个线程中使用查找表?我了解GPU可以为不同的任务提供不同类型的内存,但不能完全确定每个GPU的工作方式或使用哪种类型。 Paul Bourke的经典copypasta表是256 * 16的数组,因此,如果使用标量字节类型,则可以将其打包为4kb纹理或SSBO。 问题是,如何阻止不同的线程相互跳闸?每个工作组中的许多多维数据集都可能具有相同的配置,因此尝试同时访问缓冲区中的相同位置。有解决方法或优化来解决吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.