Seite 1 von 1

Schatten bei selbsterstelltem Mesh

Verfasst: 03.02.2013 17:43
von Sunny
Hi @all,
hier bin ich mal wieder mit einem kleinen Problem.
Ich habe hier mal einen kleinen Code gebastelt:

Code: Alles auswählen

InitEngine3D()
InitSprite()


OpenWindow(0, 0, 0, 800, 600, "3D", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 800, 600, 0, 0, 0)

CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0, -5, 5, -10)
CameraLookAt(0, 0, 0, 0)

CreateLight(0, #White, -1, 4, -2)


CreateTexture(0, 256, 256)

StartDrawing(TextureOutput(0))
Box(0, 0, 256, 256, #White)
StopDrawing()

CreateMaterial(0, TextureID(0))

CreateCube(0, 2)

CreateMesh(1)
AddMeshVertex(0, 1, 1.618034)
AddMeshVertex(0, -1, 1.618034)
AddMeshVertex(1.618034, 0, 1)
AddMeshVertex(1.618034, 0, -1)
AddMeshVertex(0, 1, -1.618034)
AddMeshVertex(0, -1, -1.618034)
AddMeshVertex(-1.618034, 0, -1)
AddMeshVertex(-1.618034, 0, 1)
AddMeshVertex(1, 1.618034, 0)
AddMeshVertex(-1, 1.618034, 0)
AddMeshVertex(-1, -1.618034, 0)
AddMeshVertex(1, -1.618034, 0)

AddMeshFace(0, 8, 9)
AddMeshFace(0, 2, 8)
AddMeshFace(2, 3, 8)
AddMeshFace(3, 4, 8)
AddMeshFace(4, 9, 8)
AddMeshFace(6, 9, 4)
AddMeshFace(7, 9, 6)
AddMeshFace(7, 0, 9)
AddMeshFace(1, 10, 11)
AddMeshFace(1, 11, 2)
AddMeshFace(11, 3, 2)
AddMeshFace(11, 5, 3)
AddMeshFace(11, 10, 5)
AddMeshFace(10, 6, 5)
AddMeshFace(10, 7, 6)
AddMeshFace(10, 1, 7)
AddMeshFace(0, 7, 1)
AddMeshFace(0, 1, 2)
AddMeshFace(3, 5, 4)
AddMeshFace(5, 6, 4)
FinishMesh()

CreateEntity(0, MeshID(0), MaterialID(0))


Repeat 
  event = WaitWindowEvent(20)
  
  ClearScreen(RGB(0,0,0))
  RenderWorld()
  FlipBuffers()
  
Until event = #PB_Event_CloseWindow

End
Wenn man diesen Code genau so ausführt, wie er da geschrieben steht, dann wird einfach ein ganz normaler wörfel dargestellt.
Wenn man in Zeile 61 ("CreateEntity(0, MeshID(0), MaterialID(0))") den Wert der MeshID auf 1 stellt, dann wird
das Objekt dargestellt, welches von Zeile 25 - 59 "Definiert" wurde.

Jetzt besteht allerdings mein Problem darin, dass zwar der Würfel einen richtigen Schatten hat (alle Seiten haben eine unterschiedliche Helligkeit), das selbst erstellte Objekt allerdings nicht.
Woran liegt das bzw. wie kann ich das ändern?

Re: Schatten bei selbsterstelltem Mesh

Verfasst: 03.02.2013 18:23
von Chimorin
Hi,

Code: Alles auswählen

BuildMeshShadowVolume(#mesh)
dürfte dein Problem lösen. Ich muss es auch benutzen, da auch beim einfachen Laden der Schatten bei Additiven Schatten verschwindet Oo

Gruß,

Banane

Re: Schatten bei selbsterstelltem Mesh

Verfasst: 03.02.2013 18:42
von Sunny
Der Befehl

Code: Alles auswählen

 BuildMeshShadowVolume(#mesh)
hat mir leider nicht weiter geholfen aber mit dem Befehl

Code: Alles auswählen

NormalizeMesh(#Mesh [, SubMesh])
habe ich es hinbekommen.
Ich bin mir jetzt zwar nicht 100%ig sicher aber ich glaube, dass damit alle Flächen des Mesh's richtig herum ausgerichtet werden, habe ich das richtig verstanden?