我創建了一個OpenGL方形像這樣..創建邊框對象
final float array1[] = new float[] {
//Front face
lx, ly, hz,
lx, hy, hz,
hx, ly, hz,
hx, hy, hz
};
我也得到了一個雷。我現在想在每個繪製的方塊周圍放置邊界框,以便我可以檢查它們是否相交。我會如何去做這件事?
謝謝。
我創建了一個OpenGL方形像這樣..創建邊框對象
final float array1[] = new float[] {
//Front face
lx, ly, hz,
lx, hy, hz,
hx, ly, hz,
hx, hy, hz
};
我也得到了一個雷。我現在想在每個繪製的方塊周圍放置邊界框,以便我可以檢查它們是否相交。我會如何去做這件事?
謝謝。
你不需要把四周的邊界框。實際上,在一個正方形的情況下,邊界框是正方形的。
邊界框僅僅是一個概念:一個幾何外殼,其中一些其他(實際)幾何可以在概念上存在。這個想法是,檢查一個矩形的四個角(用於碰撞等)比檢查一個複雜的多邊形對象的每個頂點要容易得多(而且更快)。
至於你的碰撞檢測的特定問題,你應該簡單地把你的光線投射到你的每個方塊定義的平面上。如果飛機上的點位於你的所有角落之間,那麼光線就會撞擊到正方形。
OpenGL沒有包圍盒的概念,只是一個與碰撞檢測相關的數學概念。因此,基本上,只需創建一些箱體數據結構,並沿頂點存儲邊界框(理想情況下在同一座標空間中),並在必要時進行碰撞檢查。