【发布时间】:2013-03-05 19:39:31
【问题描述】:
假设我希望能够在 3D 程序中显示对象的 3D 模型,但是这个网格的形状由许多参数(a、b、c..)控制,因此实例可以有任何几千种可能的组合。
想象一个螺栓库,其中螺栓的基本形状可以很容易地在标准 CAD 程序中为 一个 特定的螺栓实例(一定的长度、直径、头部直径),但不必为所有排列创建数千个几乎相等的模型文件,我想将网格创建为“动态”或“参数”。请注意,整个模型甚至模型的一部分的简单比例是不够的。单个顶点基本上必须具有动态位置(x,y,z) = f(a, b, c)
这个问题的解决方案可能需要文件格式(将动态模板模型编码到文件中)和一些代码来应用参数并获得最终模型。我知道 AutoCad 有所谓的“动态块”,但我不知道它们是否可以在独立应用程序中被解析和使用。
到目前为止,我想出的唯一解决方案是以标准 CAD 格式在具有整数坐标的归一化坐标系中绘制模型,以便模型的各个平面与已知坐标对齐,然后我会编码一个映射,以便例如例如,任何坐标 (x,y,3) 都将映射到 (x,y,a)。这是相当有限的,因为它只允许平面部分的映射,并且模型本身将包含文件和该文件的外部硬编码映射集。
需要明确获取模型,即我不能仅在可视化步骤中使用“隐式”变换,例如使用骨架和顶点着色器,因为我需要能够保存最终变换的网格。
将使用 Direct3D9 进行可视化,代码为 C#/.NET 4.0
【问题讨论】:
标签: 3d file-format