Antwort |
Hallo,
nur kurz eine Frage. Wenn du mit DirectX anfängst, warum dann mit der Version 8? Mittlerweile gibts ja schon 11...
Zitat: | Public Const Lit_FVF = (D3DFVF_XYZ Or D3DFVF_DIFFUSE Or D3DFVF_SPECULAR Or D3DFVF_TEX1) |
Also sind keine Normalen drin...
Zitat: | Fixed Function Pipeline ------------------------------ Eine Anfängerfrage: Was ist das? (Ich hätte jetzt mal geraten, dass hier kein shader(z.B. Vertex shader) die Daten vor dem Rendern verändert) |
Die FFP ist die Folge von Verarbeitungsschritten, die DirectX macht, wenn kein Shader definiert ist. Letztendlich ist das auch eine Art Shader, nur eben ein festverdrahteter. Ab DX 10 gibt es keine FFP mehr. Da muss der Programmierer alles im Shader machen.
Zitat: | D3DDevice.SetRenderState D3DRS_LIGHTING, 0 ------------------------------ Das einzige, was passiert, wenn ich diese Zeile rauslösche oder einen anderen Wert angebe, ist, dass Objekte mit Textur nur noch schwarz erscheinen. |
Das ist genau das, was auch eigentlich passieren soll. Wenn du den Wert auf 1 setzt, wird Lighting aktiviert. Dabei sucht das Programm in der FFP die Normalen und berechnet daraus, wieviel der Beleuchtung an dem jeweiligen Vertex / Pixel ankommt. Wenn du keine Normalen hast, wird die Lichtintensität mit 0 multipliziert. Also wird alles schwarz. Verpasse deinen Vertexdaten noch ein paar Normalen, und das ganze sollte passen.
Nico
|