2012-02-25 123 views
0

這是關於如何創建OpenGL不規則球體。我搜索了網頁,但所有文檔都告訴如何創建一個規則的球體。變形OpenGL球體

我需要的效果是模擬一個氣泡,當用戶觸摸氣泡時,它應該作用於觸摸,並且球形氣泡應該在觸摸位置上改變它的形狀。說,凹的觸摸部分。

我找不出一種可行的方法來做這種模擬。我應該改變觸摸部分的頂點位置嗎?或者我可以使用着色器來實現這種效果嗎?

同時,我不知道怎麼能模擬凹現實,有沒有什麼數學過程來描述這樣一個過程?

謝謝!

回答

1

當我變形的對象,我只是使用動畫從開始頂點到結束頂點。動畫可以有大約200幀左右。我不知道如何能夠從開始頂點到終點頂點的步驟。也許有一些三角函數?在你的例子中,我將使用按鈕創建一個球體並將其用作目標框架。我不確定着色器在這裏如何幫助你。

+0

所以,你的意思是創建一個新的3D模型來呈現被觸摸的泡泡狀態。但是,還剩下兩個問題:1.觸點上的最終物體形狀如何?我需要一個數學程序來生成它。 2.用戶可以觸摸氣泡的任何位置,我如何使用一個模型來適應? – 2012-02-25 07:58:34

2

首先,您需要使用測地線樣式的球體,而不是通過緯度/長度頂點創建一個。這將會更可預測地變形。

從那裏,有幾種方法可以做到這一點。我能想到的一種方法是創建圖形,其中每個節點都索引到網格中的頂點,並且每個節點都包含指向其鄰居的鏈接。然後,當一個頂點被按下時,它可以「拉」它的鄰居。一種便宜的方法是簡單地重新定位按下的頂點,然後將鄰居拉向新的位置,保持原始距離(非常簡單的向量數學)。然後,重複這些鄰居,直到每個鄰居被拉的距離達到足夠小的閾值。

一旦完成,網格可能不得不重新加載到GPU。

+0

我可以知道什麼是測地線球體? – 2012-02-25 11:33:40

+0

那麼,一些球體基本上是一個包裹成一個球體的頂點網格。這會在極點產生許多頂點,在赤道產生更少的頂點。測地球在其表面周圍具有均勻的頂點分佈。 – 2012-02-25 21:18:21