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

1

29.06.2014, 15:43

DirectX Licht für ein Objekt mit Diffuse ohne Lichtquelle

Hallo Leute :)

Ist es möglich die Lichtstärke von einen Objekt ohne eine Lichtquelle zu benutzen ? Ich möchte kein Licht in meiner Scene verwenden, aber halt einigen Objekten eine Konstante Lichtstärke geben. Ich dachte eigentlich das geht mit Diffuse und eventuell ein Material .. Wie funktioniert das ?

2

29.06.2014, 15:56

Was benutzt du denn? Direct3D9? Direct3D11?
In D3D9 kannst du den Emissive-Faktor benutzen oder eben Ambientlight benutzen und für die Objekte, die nicht vom Licht beeinflusst werden sollen, den Ambient-Faktor auf Schwarz setzen. Mehr Info dazu hier. In D3D11 musst du das, wie alles andere auch, über Shader lösen. Zum Beispiel kann man einfach den Emissive-Faktor als finalen Farbwert benutzen.

3

29.06.2014, 16:09

Ich nutze DirectX 9 sein Direct3D.
Über die Render States kann ich mit Ambient eine allgemeine Farbe / Helligkeit für alle Objekte festlegen. Das ist schon super aber wenn es Nacht wird ist diese Farbe / Helligkeit dunkel und Objekte die z.B. durch eine Lampe leuchten sollen ihre eigene Licht Helligkeit haben.

4

29.06.2014, 16:11

Lies meine Antwort nochmal genauer durch. Bzw. in dem Link steht die Lösung auch nochmal: "Materials can be used to make a rendered object appear to be self-luminous. The Emissive member..."

5

29.06.2014, 16:15

Klasse Antwort Latenzen und super Forum Danke! Werde es mal versuchen ! Ich will aber das jedes Vertice sein eigenes Diffuse, geht das auch ?

6

29.06.2014, 16:21

Ich frage mal anders. Wozu ist FVF_DIFFUSE für den Vertex Buffer

7

29.06.2014, 16:27

Das gibt an, dass deine Vertices alle eine Farbe haben. Sonst nehmen, die einfach die Farbe der Lichter an, sprich die sind sonst einfach Weiß.
Die Formel für die Farbe wird von §{FinalColor}={LightColor}§ zu §{FinalColor}={LightColor}*{VertexColor}§, wobei §LightColor§ hier einfach das Ergebnis der Lichtberechnung ist.

8

29.06.2014, 16:31

Ist es möglich jeden Objekt über seine Vertices eine Helligkeit zuzuweisen ?

9

29.06.2014, 16:32

Ich meine ohne Shader ist das nicht möglich, allerdings habe ich mich nie so viel mit D3D9 beschäftigt.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

10

29.06.2014, 16:34

Ich denke genau dafür gibt es unteranderem dieses Vertexattribut.
Allerdings, da du ja aus mir nicht verständlichen Gründen kein Licht verwenden möchtest, würde das Änderung der diffusen Beleuchtung des Materials für dich rein gar nichts ändern.

Ich würde an deiner Stelle einfach die Farbe verändern und Licht auslassen. Heller und dunkler geht so ja auch.

Werbeanzeige