Thema: Delphi DirectX + Licht

Einzelnen Beitrag anzeigen

OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#4
  Alt 13. Jun 2003, 11:02
Na, uns fehlen doch nicht etwa ein paar Grundlagen?

Delphi-Quellcode:
    const
      D3D8T_CustomVertex = D3DFVF_XYZ or D3DFVF_Diffuse or D3DFVF_TEX1; // Vertextyp

   NormCube : TCube = (
    (x :-1.0; y :-1.0; z :-1.0; color : $0000FF00; tu : 0; tv : 1), // Vorn
    (x :-1.0; y : 1.0; z :-1.0; color : $000000FF; tu : 0; tv : 0),
    (x : 1.0; y : 1.0; z :-1.0; color : $000000FF; tu : 1; tv : 0),
D3D8T_CustomVertex ist die Vertexdeklaration, und die besagt, dass jeder Vertex eine Diffuse-Farbe enthält. In diesem Fall heißt sie color. Folglich sind diese Farben die, die du auf $ffffffff setzen solltest.

Delphi-Quellcode:
  SetPointLight(1.0, 0.0, 1.0,
                0.0, 1.0, 0.0,
                1.0, 0.0, 0.0,
                1 , 1 , 1 ,
                100, myVec, 1);
RGB(1.0, 0.0, 1.0) = Pink, abgedunkelt also lila. Vielleicht hier einfach mal weiß oder so einsetzen? Jedenfalls solltest du vielleicht besser mit etwas einfacherem Code anfangen. Zum Beispiel brauchst du kein Material, denn das Standardmaterial hat Diffuse weiß und alle anderen schwarz. Ich würde dir empfehlen, mal die Beispiele des DirectX SDK bzw. die dort enthaltenen Tutorials auszuprobieren. Sind zwar nicht in Delphi, aber vielleicht trotzdem etwas einfacher.

Da du allerdings ohnehin mit SelfDXD arbeitest, könntest du dir auch das dortige Beispielprogramm zum Thema Licht und Material näher anschauen. Da kannst du nämlich mit den einzelnen Werten experimentieren und folglich evtl. deinen Fehler finden.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat