Echtzeitmanipulation von OGRE Meshes
Verfasst: 16.03.2009 22:05
Ich will mit SetMeshData() eine Dreieck basteln aber mein Schirm bleibt leider schwarz. Ich hab' bei AddTriangle() schon mit den Indizes rumgespielt und teilweise die auch untere Kante gesehen, mehr aber auch nicht. Außerdem ist die SetMeshData() Funktion immer noch grottenschlecht dokumentiert. Auch das lange Rumsuchen im Forum bringt mich nicht auf Spur.
Ich bin mir noch nicht mal sicher ob der Parameter 'DataLength' nun die Anzahl der Element oder die tatsächlich Größe in Bytes meint ...
Ich bin mir noch nicht mal sicher ob der Parameter 'DataLength' nun die Anzahl der Element oder die tatsächlich Größe in Bytes meint ...
Code: Alles auswählen
InitEngine3D() : InitSprite() : InitKeyboard()
OpenWindow(0,0,0,640,480,"untitled",#WS_CAPTION | #WS_SYSMENU | #WS_MINIMIZEBOX | 1)
OpenWindowedScreen(WindowID(0),0,0,640,480,0,0,0)
CreateCamera(0,0,0,100,100)
CameraRenderMode(0,#PB_Camera_Wireframe)
CreateMesh(0,100)
Structure Vertex
X.f
Y.f
Z.f
EndStructure
Structure Triangle
V1.w
V2.w
V3.w
EndStructure
Procedure AddVertex(Mesh,X.f,Y.f,Z.f)
If IsMesh(Mesh)
Protected vtx.Vertex
vtx\X = X : vtx\Y = Y : vtx\Z = Z
SetMeshData(Mesh,#PB_Mesh_Vertex,vtx,1)
ProcedureReturn #True
EndIf
EndProcedure
Procedure AddTriangle(Mesh,V1,V2,V3)
If IsMesh(Mesh)
Protected tig.Triangle
tig\V1 = V1 : tig\V2 = V2 : tig\V3 = V3
SetMeshData(Mesh,#PB_Mesh_Face,tig,1)
ProcedureReturn #True
EndIf
EndProcedure
AddVertex(0,-1,0,0)
AddVertex(0,0,2,0)
AddVertex(0,1,0,0)
AddTriangle(0,0,1,2)
CreateEntity(0,MeshID(0),0,0,0,-5)
Repeat
EventID = WindowEvent()
ExamineKeyboard()
ClearScreen(RGB(0,0,100))
RenderWorld()
FlipBuffers()
Until EventID = #WM_CLOSE Or KeyboardPushed(1)