總是在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