我在OpenGL中實現了MC算法。行進中的多維數據集和紋理座標的問題
一切正常,直到我達到與紋理座標點。
我無法弄清楚如何實現它們!
我的進步:
編輯: 我想存檔是把一些紋理上產生我的MC三角形。 據我瞭解,我需要告訴OpenGL的uv座標,但不知道如何計算它們。
我在OpenGL中實現了MC算法。行進中的多維數據集和紋理座標的問題
一切正常,直到我達到與紋理座標點。
我無法弄清楚如何實現它們!
我的進步:
編輯: 我想存檔是把一些紋理上產生我的MC三角形。 據我瞭解,我需要告訴OpenGL的uv座標,但不知道如何計算它們。
典型的紋理座標生成算法行進立方體算法是使用環境映射。
總之你通過平均所有adjecting面的面法線計算頂點法線在每個頂點,然後丟棄正常的z座標,並使用(X/2 + 0.5,Y/2 + 0.5)作爲(u,v)紋理座標。
設置了一個漂亮的白點在中間,一些結構填充紋理的其餘部分的紋理,你會得到終結兩銀子機器人那種樣子。
聽起來很有希望! 「所有人臉」 - 你的意思是我應該找到附近的三角形,它們與我目前的三角形有相同的頂點? 「丟棄z座標」 - 從正常情況下刪除? 謝謝 – Jeffers 2012-01-02 21:39:30
是的,這是主意。 – 2012-01-03 00:22:26
我需要告訴OpenGL的uv座標,但不知道如何計算它們。
你正面臨着一些大問題:什麼來自MC的拓撲可以是任何東西。 OpenGL中紋理的拓撲結構是(超)環面(GL_TEXTURE_1D,GL_TEXTURE_2D,GL_TEXTURE_3D)或球體(GL_TEXTURE_CUBE_MAP)。
所以難免你有你的面切成所謂的地圖。這是一項艱鉅的任務,但qood戰略正在沿着高曲率的地區進行。見文章
「最小二乘共形映射自動紋理圖集一代」
布魯諾·萊維,維爾託德珀蒂讓,尼古拉斯·雷和Jerome Maillot的
的骯髒細節。
您還沒有解釋了基於多維數據集行進面你打算用質地做座標。你想如何參數化表面取決於你。 – 2012-01-02 21:10:51
我有一個類似的問題,我一直在試圖找出triplanar紋理,但我不能爲我的生活找出uv位,儘管已經找到了基本立方體上的着色器。 – War 2013-04-08 18:42:40
在這裏,triplanar貼圖: const float TextureScale = 0.02; vec2 coordZ = vec2(ObjectVertex.xy * TextureScale); vec2 coordY = vec2(ObjectVertex.xz * TextureScale); vec2 coordX = vec2(ObjectVertex.yz * TextureScale); vec3 colorZ = texture2DArray(texBlocks,vec3(coordZ,index * 4 + 2))。xyz; vec3 colorY = texture2DArray(texBlocks,vec3(coordY,index * 4 + 2))。xyz; vec3 colorX = texture2DArray(texBlocks,vec3(coordX,index * 4 + 2))。xyz; – Jeffers 2013-04-08 23:27:19