Schatten bei selbsterstelltem Mesh

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Schatten bei selbsterstelltem Mesh

Beitrag 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?
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: Schatten bei selbsterstelltem Mesh

Beitrag 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
Bild

- formerly known as Bananenfreak -
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Re: Schatten bei selbsterstelltem Mesh

Beitrag 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?
Antworten