总是在Java/Opengl中使用lwjgl的Rubik's cube应用程序的上下文中,我想改进我的绘图(http://manuelselva.files.wordpress.com/2010/09/cube.gif)以便为每个27小立方体?我想在最后达到的是维基百科立方体图片相同:http://fr.wikipedia.org/wiki/Fichier:Rubik%27s_cube.svg什么是最简单的方法来获取圆角opengl多维数据集
什么是最简单的解决方案呢?
总是在Java/Opengl中使用lwjgl的Rubik's cube应用程序的上下文中,我想改进我的绘图(http://manuelselva.files.wordpress.com/2010/09/cube.gif)以便为每个27小立方体?我想在最后达到的是维基百科立方体图片相同:http://fr.wikipedia.org/wiki/Fichier:Rubik%27s_cube.svg什么是最简单的方法来获取圆角opengl多维数据集
什么是最简单的解决方案呢?
最简单的方法是在周围的许多3D建模程序之一(例如,Maya,Blender)中绘制一个圆角立方体模型,并在代码中加载27个模型实例。学习像使用其中一种程序并不是微不足道的,尽管这是大多数游戏中使用的一般方法,但对于这样简单的事情来说,这可能有点矫枉过正 - 可能需要更长时间才能弄清楚在程序中完成任何事情,比它不得不以不同的方式做事。
明显的选择是在代码中生成模型。基本的想法很简单,尽管把它们放在一起可能有点不重要。你首先选择你想用于角落的半径。当你产生你的面孔时,你需要在它们之间留出足够的空间,以适应具有该半径的圆的象限(即,每个面在两个相交的位置之后结束一个半径)。你可以用一个圆的象限连接一组顶点坐标/法线 - 基本上,写一个小的循环,以均匀间隔的角度产生几十个点(左右)。每个点的角度将是法线,正弦/余弦将给出坐标。在角落(与边缘相对),您需要在球体上生成点,并且每个角落都有一个球体的象限。
一些巧妙的纹理和正确制作的法线贴图将大部分仿冒它的外观而不编辑模型。最终的渲染将被遮蔽,就好像各个边都是圆形的。
不幸的是,使用这种方法时,在边缘观看时,错觉会分崩离析。
除非有位移贴图,我想呢? – Kos 2010-11-21 13:24:44
您还可以使用基本立方体并实施细分算法,每次迭代使用的顶点数量加倍。然后创建一个从立方体中心到每个顶点的矢量。如果你规范化顶点,你会得到一个球体(在这之间:这是最简单的球体生成算法之一)。但是,如果你只改变角的矢量长度,你会得到一个圆形的立方体。
@Manuel Selva:有一天你必须学习[maya blender 3ds],所以我会以这种方式推荐你。用7种不同的材料制作一个圆形的立方体(每面1个塑料),并在运行时用所需的颜色进行修改。 – Calvin1602 2010-09-12 18:04:12
谢谢,我会研究这个方向。马努 – 2010-09-13 07:25:39