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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

31

08.07.2011, 23:44

Ja, ähm, also deine Vertexposition liegt im Viewspace, deine Tangentspace-Matrix transformiert vermutlich in den Objectspace und deine Lichtquelle liegt im Worldspace. Das kann so natürlich nicht funktionieren. Transformier deine Tangente, Binormale und Normale im VertexShader in den Viewspace (mit gl_NormalMatrix) und übergib die Position der Lichtquelle im Viewspace und nicht im Worldspace.

botlin

Treue Seele

  • »botlin« ist der Autor dieses Themas

Beiträge: 139

Wohnort: Berlin

Beruf: Fachinformatiker für Anwendungsentwicklung, Student Internationale Medieninformatik

  • Private Nachricht senden

32

09.07.2011, 09:25

Hab deinen Ratschlag von gestern Abend noch mal umgesetzt aber hat nicht geklappt.
Auch das Transformieren der Tangenten, Binormalen, und Normalen hat nicht das gewünschte Ergebniss gebracht.
Hab jetz alles wieder auf Anfang gebracht.

Ich weiss ja das wenn ich gl_LightSource.position verwende die Position stimmt.Also müsste ja wenn ich meine Position mit der gl_ModelViewMatrix verrechne das selbe raus kommen.
Tut es aber nicht.

Oder muss ich das ganze bereits im Programm bei der Übergabe multiplizieren?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

33

09.07.2011, 09:57

Auch das Transformieren der Tangenten, Binormalen, und Normalen hat nicht das gewünschte Ergebniss gebracht.

Wie hast dus denn versucht?

Oder muss ich das ganze bereits im Programm bei der Übergabe multiplizieren?

Ja klar!? Ich mein du kannsts auch irgendwie im Shader multiplizieren aber das wär ineffizient.

botlin

Treue Seele

  • »botlin« ist der Autor dieses Themas

Beiträge: 139

Wohnort: Berlin

Beruf: Fachinformatiker für Anwendungsentwicklung, Student Internationale Medieninformatik

  • Private Nachricht senden

34

09.07.2011, 10:08

So habs gelöst bekommen...
Ich habe die Position jetz mit der Modelviewmatrix verrechnet und anschliessend habe ich noch den Übergabewert von Uniform3f auf Uniform4f verändert.

Mal eine Frage nebenbei: Weisst du mit welcher genauigkeit die Matrix in Opengl rechnet?
Ich habe nähmlich mal die OpenGL Matrix und meine eigene Matrix verglichen und habe Ungenauigkeiten festgestellt so ab der 4 Nachkommastelle.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

35

09.07.2011, 10:16

Mal eine Frage nebenbei: Weisst du mit welcher genauigkeit die Matrix in Opengl rechnet?

Normalerweise float-Genauigkeit. Deine kleinen Abweichungen sind wohl auf Rundungsfehler zurückzuführen...

botlin

Treue Seele

  • »botlin« ist der Autor dieses Themas

Beiträge: 139

Wohnort: Berlin

Beruf: Fachinformatiker für Anwendungsentwicklung, Student Internationale Medieninformatik

  • Private Nachricht senden

36

09.07.2011, 10:18

Ahh Okay, also bis zum nächsten Problemchen :)

botlin

Treue Seele

  • »botlin« ist der Autor dieses Themas

Beiträge: 139

Wohnort: Berlin

Beruf: Fachinformatiker für Anwendungsentwicklung, Student Internationale Medieninformatik

  • Private Nachricht senden

37

09.07.2011, 11:01

Hey eventuell hattest du mit deinen Änderungen an der TBN Matrix doch recht.
Ich bin jetz so weit das die Beleuchtung jetz Ambiente-,Diffuse- und Specularfarbe kann und die intensität mit der entfernung abnimmt.
Mir fällt nur gerade auf dass wenn ich mich drehe sich offenbar auch die Normalen anders ausrichten.


EDIT: Ich habe gerade nochmal geprüfft ob ich eventuell die Lichtposition verkehrt berechne aber die ist identisch mit der des gl_lightSource also kanns nur an der Normalen liegen

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »botlin« (09.07.2011, 11:13)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

38

09.07.2011, 16:14

Natürlich, jetzt ist ja alles im Viewspace bis auf deine Tangente, Bitangente und Normale. Die musst du natürlich auch in den Viewspace bringen. Und am einfachsten verwendest du dazu gl_NormalMatrix...

botlin

Treue Seele

  • »botlin« ist der Autor dieses Themas

Beiträge: 139

Wohnort: Berlin

Beruf: Fachinformatiker für Anwendungsentwicklung, Student Internationale Medieninformatik

  • Private Nachricht senden

39

09.07.2011, 19:09

Ich habs nun anders gelöst...

Ich hatte die Tangente mit der NormalMatrix multipliziert.
Nun verwende ich sie ohne und hab nun keinerlei probleme mehr.

botlin

Treue Seele

  • »botlin« ist der Autor dieses Themas

Beiträge: 139

Wohnort: Berlin

Beruf: Fachinformatiker für Anwendungsentwicklung, Student Internationale Medieninformatik

  • Private Nachricht senden

40

27.09.2011, 19:06

Hi Leute,
habe heute mal mit specularmaps und bumpmapping rumgespielt...
Hier seht ihr das eure Hilfe was bewirkt hat :D

Wenn ich sowas seh da freu ich mich wie Sau :thumbsup:
»botlin« hat folgendes Bild angehängt:
  • Unbenannt.jpg

Werbeanzeige