ich teste gerade die CreateMesh Funktion, ich erstelle händisch ein flache 3D Form, quasi so:
Code: Alles auswählen
TEX_Terrain = LoadTexture(#PB_Any, "terrain_dummy.png")
MAT_Terrain = CreateMaterial(#PB_Any, TextureID(TEX_Terrain))
MSH_Terrain = CreateMesh(#PB_Any, #PB_Mesh_TriangleList , #PB_Mesh_Static)
AddSubMesh(#PB_Mesh_TriangleList)
For x = 0 To width Step 2
For z = 0 To height Step 2
; vertex 0,0
MeshVertexPosition(field(x, z)\X, field(x, z)\Y, field(x, z)\Z)
MeshVertexNormal(0, 1, 0)
MeshVertexTextureCoordinate(1, 1)
field_vertexidx(x, z) = counter : counter + 1
; vertex 1,0
MeshVertexPosition(field(x+1, z)\X, field(x+1, z)\Y, field(x+1, z)\Z)
MeshVertexNormal(0, 1, 0)
MeshVertexTextureCoordinate(0, 1)
field_vertexidx(x+1, z) = counter : counter + 1
; vertex 0,1
MeshVertexPosition(field(x, z+1)\X, field(x, z+1)\Y, field(x, z+1)\Z)
MeshVertexNormal(0, 1, 0)
MeshVertexTextureCoordinate(1, 0)
field_vertexidx(x, z+1) = counter : counter + 1
; vertex 1,1
MeshVertexPosition(field(x+1, z+1)\X, field(x+1, z+1)\Y, field(x+1, z+1)\Z)
MeshVertexNormal(0, 1, 0)
MeshVertexTextureCoordinate(0, 0)
field_vertexidx(x+1, z+1) = counter : counter + 1
Next
Next
For x = 0 To width-1
For z = 0 To height-1
MeshFace(field_vertexidx(x, z), field_vertexidx(x+1, z+1), field_vertexidx(x+1, z))
MeshFace(field_vertexidx(x, z), field_vertexidx(x, z+1), field_vertexidx(x+1, z+1))
Next
Next
FinishMesh(#True)
UpdateMeshBoundingBox(MSH_Terrain)
BuildMeshShadowVolume(MSH_Terrain)
ENT_Terrain = CreateEntity(#PB_Any, MeshID(MSH_Terrain), MaterialID(MAT_Terrain))
Code: Alles auswählen
Can't assign material none to SubEntity of E72223448 because this Material does not exist. Have you forgotten to define it in a .material script?
Zudem erstelle ich zB dieses Gebilde mit 128x128 Vertices (=16384), demnach müssten 32768 Faces da sein, die Engine Funktion CountRenderedTriangles() gibt aber insgesamt 97802 aus ... irgendwie bin ich momentan mit der 3D Engine echt gefrustet, zig Sachen funktionierren nicht oder nicht so wie man meint bzw. es beschrieben ist.
Weiss einer hierzu Rat ?
[EDIT]
Ich habe das Problem gelöst, die Variable COUNTER hatte ich vorher schonmal genutzt und nicht wieder auf NULL gesetzt, nachdem ich das getan hatte, kam die Fehlermeldung nicht mehr.