CreateMesh und Faces
Verfasst: 15.08.2013 20:15
Hallo zusammen,
ich habe in einer Procedure versucht ein Mesh selber zu erstellen (ein Quad), folgenden Beispielcode poste ich mal:
Wenn ich das erstellte Entity mit WorldDebug(#PB_World_DebugEntity) anzeigen lasse, dann wird das auch richtig angezeigt. Die Oberfläche (Faces) sieht aber sehr merkwürdig aus. Egal in welcher Reihenfolge ich die Eckpunkte (Vertices) zu einer Dreieck-Oberfläche (Face) zusammenfasse, es kommt keine vernünftige Oberfläche heraus. Ich habe das Mesh mal abgespeichert und in ein XML umgewandelt, dabei kam dann raus das die Vertices so aussahen:
Ich hatte als Parameter an die Procedure als X- und Y-Größe den Wert 20 übergeben. Die Vertices 1, 2 und 3 sehen soweit auch ok aus, aber der Vertex 0 sieht sehr komisch aus. Hat jemand eine Idee was hier schiefläuft ?
Wäre für jeden Tip dankbar.
ich habe in einer Procedure versucht ein Mesh selber zu erstellen (ein Quad), folgenden Beispielcode poste ich mal:
Code: Alles auswählen
Procedure.i CreateButton3D(hEntity.i, hMaterial.i, xSize.i, ySize.i)
Protected.i mesh, entity
mesh = CreateMesh(#PB_Any, #PB_Mesh_TriangleList, #PB_Mesh_Static)
MeshVertexPosition(-xSize/2, ySize/2, 0)
MeshVertexTextureCoordinate(0, 1)
MeshVertexPosition(xSize/2, ySize/2, 0)
MeshVertexTextureCoordinate(1, 1)
MeshVertexPosition(xSize/2, -ySize/2, 0)
MeshVertexTextureCoordinate(1, 0)
MeshVertexPosition(-xSize/2, -ySize/2, 0)
MeshVertexTextureCoordinate(0, 0)
MeshFace(0, 1, 2)
MeshFace(0, 3, 2)
FinishMesh(#True)
NormalizeMesh(mesh)
entity = CreateEntity(hEntity, MeshID(mesh), MaterialID(hMaterial))
If hEntity = #PB_Any
ProcedureReturn entity
Else
ProcedureReturn EntityID(entity)
EndIf
EndProcedure
Code: Alles auswählen
<vertex>
<position x="2.75506e-040" y="1.83674e-040" z="1.4013e-045" />
<texcoord u="-1.46934e-039" v="1" />
</vertex>
<vertex>
<position x="-10" y="-10" z="0" />
<texcoord u="0" v="0" />
</vertex>
<vertex>
<position x="10" y="-10" z="0" />
<texcoord u="1" v="0" />
</vertex>
<vertex>
<position x="10" y="10" z="0" />
<texcoord u="1" v="1" />
</vertex>
Wäre für jeden Tip dankbar.