2017-02-28 28 views
0

我正在將j3d GeometryArrays顯示爲JavaFX中的組合TriangularMeshes。我知道我收到的GeometryArray是TriangleStripArrays,順序允許我構建正確的面並在場景中顯示網格。在JavaFX和Point3D中確定頂點卷繞(用於背面剔除)

但是,如何根據TriangleStripArray單獨確定頂點的繞線順序,我很困惑。面部目前沒有正確的背面剔除的概念,給我一個完整的TriangleMesh,從任何給定的角度看起來都是扭曲的。通過將CullFaceMode從BACK更改爲NONE,並通過繪製場景中的頂點,我可以看出所有面都被正確映射,只是剔除不一致。

我有兩種方法可以從任何給定的三角形面構成一個三角網,它包含3個頂點,一個用於CW繞組,另一個用於CCW。

本質:

float[] points = {v1.x, v1.y, v1.z, v2.x, v2.y, v2.z, v3.x, v3.y, v3.z}; 
float[] texCoords = {1, 1, 1, 0, 0, 1}; 
int[] faces = new int[]{0, 0, 1, 1, 2, 2}; 

VS

float[] points = {v2.x, v2.y, v2.z, v1.x, v1.y, v1.z, v3.x, v3.y, v3.z}; 
float[] texCoords = {1, 0, 1, 1, 0, 1}; 
int[] faces = new int[]{0, 0, 1, 1, 2, 2}; 

我的問題是,我怎麼能確定頂點纏繞順序,且該方法應每個面使用,僅基於對TriangleStripArray? (TexCoordinates正在供應,但未使用)

在此先感謝! - R. Melville

回答