假设我希望能够在3D程序中显示对象的3D模型,但是此网格的形状由多个参数(a,b,c ..)控制,以便实例可以具有任何参数几千种可能的组合。
想象一下例如一个螺栓库,其中螺栓的基本形状可以在标准CAD程序中轻松绘制,用于一个特定螺栓实例(一定长度,直径,头部直径) ),但不是必须为所有排列创建数千个几乎相同的模型文件,我想将网格创建为“动态”或“参数”。请注意,整个模型的简单比例甚至是模型的一部分都是不够的。单个顶点必须基本上具有动态位置(x,y,z) = f(a, b, c)
此问题的解决方案可能需要文件格式(将动态模板模型编码为文件)和一些代码来应用参数并获取最终模型。我知道AutoCad有所谓的“动态块”,但我不知道它们是否可以在独立应用程序中解析和使用。
到目前为止,我提出的唯一解决方案是在标准CAD格式中绘制模型,在具有整数坐标的标准化坐标系中,以便模型的各个平面与已知坐标对齐,然后我会编码映射,以便例如例如,任何坐标(x,y,3)都将映射到(x,y,a)
。这是相当有限的,因为它只允许平面部分的映射,并且模型本身将包含该文件的文件和的外部硬编码映射集。
模型需要明确获取,即我不能使用“隐式”变换,例如仅在visuzalization步骤中使用骨架和顶点着色器,因为我需要能够保存最终变换的网格。
可视化将使用Direct3D9完成,代码为C#/ .NET 4.0
答案 0 :(得分:0)
这就是现代参数化CAD软件的工作原理。最值得注意的是,您所追求的应用程序是Solidworks,Creo(Pro | engineer),Catia,NX。可能也是发明家。从这个意义上讲,Auto-CAD是非常基础的,仅落后于现有技术的30年。我见过Pro | engineer模型,通过所有相关的计算和模拟,构建了整个90%的石油钻井平台最终设计。所以这些都是你所要求的。就每天复杂性而言,螺栓示例非常简单。事实上,我的任何一个学生都可以在第一次练习后做到这一点,没有任何问题。
现在相关的格式被称为SETP ap 214.但是实际上没有任何东西可以完全支持这种格式(格式的标准是大约5000页长)。因为它需要一个非常强大的3D引擎才能解决上述软件之一。
修改强>
但是,如果您的模型是游戏的多边形模型,那么实际上相当简单,无法做到您想要的,只是用户不太友好。只需将参数化导出为关节数据,然后移动/缩放大多数DCC格式具有此功能的关节。但请注意游戏图形与CAD无关。或cad格式。他们有不同的软件,例如3dsMax或Maya。此类别中的大多数格式都支持关节。如果格式如collada,您可以为参数化的关节运动规则添加一些扩展。取决于你想要如何参数化这个。我必须自己测试一下,但由于它在Maya中工作,我认为没有理由为什么它不能用于格式。
问题是帽子游戏并不是一个平台。