cycovery
Erfahrenes Mitglied
schon wieder n Matheproblem
Herausforderung fuer alle Peiler in dem Gebiet . . . ich such naemlich schon die ganze Zeit nach dem Fehler . . .
Ich programmier grad nen Shader der spherical reflectionamapping koennen soll . . . Jedenfalls muss ich da karthesische koordinaten in Polare umwandeln - oder besser gesagt ich brauche eigentlich lediglich den Winkel der polarkoordinaten.
Meine Formel sieht so aus:
(atan((-ray.z)/(ray.x))+PI*(1-step(ray.x,0))*sign(-ray.z))/(2*PI)
Die formel hab ich von hier:
http://de.wikipedia.org/wiki/Polarkoordinaten#Umrechnung_zwischen_den_Koordinatensystemen
die funktion step(a,x) gibt (x>=a)? 1:0 zurueck
die funktion sign(x) gibt -1 fuer x<0 , 1 fuer x>0 und 0 fuer x=0 zurueck
in meiner formel benutze ich -ray.z weil mein koordinatensystem aus xz besteht und die z Achse, verglichen mit dem koordinatensystem bei wikipedia, gegengesetzt zur (wiki-) y Achse steht. Die X achsen sind gleich . . .
Ich hab echt langsam kopfschmerzen . . . bin echt fuer jede Hilfe dankbar!!
//edit: das /2*PI am schluss ist einfach um das ergebnis durch 360 grad zu teilen um einen Wert zwischen 0 und 1 zu bekommen

Ich programmier grad nen Shader der spherical reflectionamapping koennen soll . . . Jedenfalls muss ich da karthesische koordinaten in Polare umwandeln - oder besser gesagt ich brauche eigentlich lediglich den Winkel der polarkoordinaten.
Meine Formel sieht so aus:
(atan((-ray.z)/(ray.x))+PI*(1-step(ray.x,0))*sign(-ray.z))/(2*PI)
Die formel hab ich von hier:
http://de.wikipedia.org/wiki/Polarkoordinaten#Umrechnung_zwischen_den_Koordinatensystemen
die funktion step(a,x) gibt (x>=a)? 1:0 zurueck
die funktion sign(x) gibt -1 fuer x<0 , 1 fuer x>0 und 0 fuer x=0 zurueck
in meiner formel benutze ich -ray.z weil mein koordinatensystem aus xz besteht und die z Achse, verglichen mit dem koordinatensystem bei wikipedia, gegengesetzt zur (wiki-) y Achse steht. Die X achsen sind gleich . . .
Ich hab echt langsam kopfschmerzen . . . bin echt fuer jede Hilfe dankbar!!
//edit: das /2*PI am schluss ist einfach um das ergebnis durch 360 grad zu teilen um einen Wert zwischen 0 und 1 zu bekommen
Zuletzt bearbeitet: