Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

26.08.2004, 11:30

Materialien

Hallo,

ich bin gerade bei Kapitel 7 (bei Beleuchtung) und ich habe eine Frage.

Ich habe eine einfach Szene geladen und die einzelnen Dreiecke haben jeweils ein anderes Material. Nun schalte ich Beleuchtung aus und fange an zu rendern, aber alle Dreiecke bleiben weiß, obwohl sie eigentlich grau und rot hätte sein müssen. Was ist falsch?

Cu...

"Steaky"

2

26.08.2004, 12:19

Wenn du die Beleuchtung wieder aktiviertst, dann haben deine Dreiecken auch wieder eine Farbe.

Dazu musst du aber auch eine oder mehrere Lichtquellen einbauen.

Das Material gibt ja an, welche Farbwerte ein Material aufnehmen kann. Wenn also dein Licht rot ist und dein Material rote Farbe aufnehemen kann, wird es rot dargestellt.

Ohne Beleuchtung wird alles in weiss gerendert.

Hoffe dir hilft das weiter!

Anonymous

unregistriert

3

26.08.2004, 12:27

Aha, aber was mach ich dann, wenn ich keine Lichter habe möchte (und ich auch auf das Ambient verzichten möchte). Muss ich dann noch extra D3DFVF_DIFFUSE in die Vertexstruktur aufnhemen??? Ich möchte ja, das die Dreiecke auch ohne Beleuchtung die Diffusefarbe haben...

4

26.08.2004, 13:30

Wenn du keine Beleuchtung haben willst, dann musst du in der Vertexstruktur drei float Werte oder einen Vektor anlegen, der die Farbwerte für den Vertex enthält.
Im FVF musst du dann D3DFVF_DIFFUSE hinzufügen.

Dann hast du natürlich auch eine Farbe für jeden Vertex, aber das hat nichts mit Materialien zu tun. Die brauchst du nur, wenn du mit Beleuchtung arbeitest.

Dann hast du keinen Diffuse Wert mehr, brauchst dafür aber für jeden Vertex einen Normale Vektor. Dann fügst du zum FVF, denn Wert D3DFVF_NORMAL hinzu.

Ich bin nicht ganz sicher was du machen willst.
Merk dir einfach:
Beleuchtung aus: D3DFVF_DIFFUSE für Farben
Beleuchtung an: D3DFVF_NORMAL für dei Berechnung des Lichts

Anonymous

unregistriert

5

26.08.2004, 13:44

Ich weiß, was ich mache. Ich setzte einfach das Ambient so, dass das Ambient des Materials bei D3DRS_AMBIENT 1,1,1,1 (rgba) die Diffusefarbe des Materials ist...

6

30.08.2004, 01:38

Zitat

Wenn du keine Beleuchtung haben willst, dann musst du in der Vertexstruktur drei float Werte oder einen Vektor anlegen, der die Farbwerte für den Vertex enthält.
Im FVF musst du dann D3DFVF_DIFFUSE hinzufügen.

Du sprichst hier von der Fixed Function Pipeline. D.h. das du die Farbe nicht mit 3 float-Werten angibst. Sondern mit einem Double Word (DWORD). Und mit 3 float-Werten sowieso nicht, wenn dann mit 4 floa-Werten.


D3DRS_AMBIENT wird nicht beachtet wenn du Licht ausschaltest.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige