GLSL Shader - Wo ist der Fehler

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Makke
Beiträge: 156
Registriert: 24.08.2011 18:00
Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
Wohnort: Ruhrpott
Kontaktdaten:

GLSL Shader - Wo ist der Fehler

Beitrag von Makke »

Hallo zusammen,

ich habe folgendes Problem, ich will zwei Shader für ein kleines Spielchen nutzen, bei sind Normalmapping Shader, der eine ist für nur eine Lichtquelle gedacht (Planeten usw.) der andere für mehrere (Raumstationen usw.).

In meinem kleiner Shader Tester funktionieren die auch soweit gut, siehe hier:
SingleLight:
Bild

MultiLight:
Bild

In meinem Spielchen sehen die aber scheußlich oder gar nicht aus.

SIngleLight ist völlig schwarz:
Bild

und Multilight hat einen Lila-Stich wahrscheinlich von den Normalen-Grafikdateien:
Bild


Ich verzweifele gerade, da ich absolut nicht mehr weiß was ich damit machen soll. Evtl. hat jemand von Euch einen Tip. Wäre echt dankbar.

Wenn Ihr weitere Infos braucht oder die Shader oder so, bitte einfach melden.

Danke schonmal !

[Edit] Tippfehler ...
---
Windows 11 (64 bit)
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: GLSL Shader - Wo ist der Fehler

Beitrag von Chimorin »

Sowas hatte ich auch mal. Nur weiß ich die Lösung nicht mehr ^^
Ich forste mal danach; Ich glaube es war etwas mit dem Materialskript.
Bild

- formerly known as Bananenfreak -
Benutzeravatar
Makke
Beiträge: 156
Registriert: 24.08.2011 18:00
Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
Wohnort: Ruhrpott
Kontaktdaten:

Re: GLSL Shader - Wo ist der Fehler

Beitrag von Makke »

Hallo Chimorin,

ich habe es herausbekommen, die Planeten bleiben schwarz, weil die Entities in der Größe verändert wurden. Ich dachte mir eine Sphere zu kreieren und die dann nur noch auf die gewünschte Größe zu skalieren.

Wenn man das macht, sind die mit dem Mesh gespeicherten Normalen aber falsch und dann kann das Material/der Shader diese nicht mehr anzeigen und es bleibt schwarz. Sollte man nach dem skalieren des Entities "NormalizeMesh" erneut anwenden, werden die Entities gar nicht mehr angezeigt.

Es soll in der Ogre Engine jedoch einen Befehl geben, der diese Normalen wieder richtig berechnet bei einem Entity, aber den gibt es in PB nicht.

Naja, der zweite Fehler mit dem Lila-Stich war ein Schreibfehler im Shader. :oops:
---
Windows 11 (64 bit)
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: GLSL Shader - Wo ist der Fehler

Beitrag von Chimorin »

Skaliere die Planeten doch einfach in einem 3D-Editor... (Eigentlich dürfte es da doch gar keine Probleme geben; Beim Skalieren ändern sich die Normalenvektoren ja nicht.)
Bild

- formerly known as Bananenfreak -
Antworten