我想创建或找到一个开源元球皮肤系统,它使用元球,体素化来创建网格。我有3年的C \ C ++和OpenGL经验。但我对如何处理这个系统一无所知。我想要的是一种实现方式或构建这样的系统的方法。任何想法/想法?
以下是正在使用此系统的引擎工作人员的班轮笔记链接: http://chrishecker.com/My_liner_notes_for_spore
答案 0 :(得分:0)
我在C \ C ++和 OpenGL 方面有<3年以上经验。但我对如何处理这个系统一无所知。
我觉得很难相信。
你需要什么:
对于空间中的任何给定点,元球系统的“能量”可以是,例如,系统中所有元体的所有能量的总和(它们与距离一致,记住?)。
现在,考虑到这个“能量场”,您可以将metabody系统可视化,就像您可以看到iso表面(或任何其他程序表面)一样。
对于任何空间点,如果“能量”低于某个thresold,则此点位于由meta粒子形成的“网格”之外。 如果“能量”高于该阈值,则点位于由粒子形成的“网格”内。
两个点为您提供分段,并且知道线段,您可以计算分段穿过网格“表面”的点。
现在,只需使用“行进立方体”算法遍历某个空间区域,您就会得到一个网格。
法线是通过对位于网格表面上的点的小偏移(例如x / y / z + - 0.01)处的能量水平进行采样来计算的。
如果这个解释很难,那么我认为nvidia sdk有行进立方体算法的例子。阅读示例,将相同的想法应用于元粒子。
以下是您使用此算法可以获得的信息: