Eclairage - spotCutoff [Opengl] - Divers - Programmation
Marsh Posté le 11-08-2007 à 12:58:42
Salut,
Question bête; à voir les résultats google, c'est dérivé automatiquement de spotCutOff par glsl, non?
Marsh Posté le 11-08-2007 à 13:22:00
Heu..., spotCosCutoff est dérivée de spotCutoff. Par contre, je ne voit pas pourquoi tu parle de glsl pour ça !
Je veux juste reproduire un éclairage comme OpenGL mais sans être limité à 8 lampes maximum ! Donc j'aurais besoin de savoir comment calculer spotCosCutoff à partir de spotCutoff.
Marsh Posté le 11-08-2007 à 14:06:55
Euh, juste que spotCosCutoff fait ressortir des réponses glsl et pas opengl "pur", désolé du HS
Sinon, ta formule devrait plutôt être cos((angle*pi)/180) non?
Edit: inversé la formule
Marsh Posté le 11-08-2007 à 14:14:07
heu...spotCutoff est un angle en degré et donc je doit diviser par (180/pi) si je veux le remettre en radian, non ? Mais faut-il le remettre en radian ? Faut-il faire d'autre opération pour calculer spotCosCutoff ?
edit : ta formule est la même que la mienne
Y a t-il moyen de récuperer la valeur de spotCosCutoff de la lampe GL_LIGHT0 comme ça je pourrait voir si mon calcul est bon ?
Marsh Posté le 11-08-2007 à 14:27:27
C'est uniquement interne à opengl je crois (les seules infos récupérables sur les lumières sont faites par glGetLight). La seule sortie possible m'a tout l'air d'être un shader.
Mais vu les 2 aneries sorties en 2 post... je vais peut-être surtout suivre l'évolution du fil sans rien dire
Marsh Posté le 11-08-2007 à 14:37:12
lol
Oui en effet glGetLight ne permet pas de récupérer spotCosCutoff d'après Google et donc comme tu le dit, le seul moyen d'avoir cette valeur c'est grâce au shader (glsl).
Donc:
- Est-ce que quelqu'un connait la formule exacte de spotCosCutoff
ou
- Est-ce que quelqu'un sais comment afficher la valeur de gl_LightSource[0].spotCosCutoff en glsl ? Existe t-il un espèce de printf en glsl ? (je doute)
Marsh Posté le 11-08-2007 à 15:15:49
Bon, j'ai trouvé une manière barbare pour savoir si mon calcul était juste
J'ai donc mis le spotCutoff de GL_LIGHT0 à 45.0 degré
Et dans mon shader, j'ai fait ceci: (NB : cos(45.0/(180.0/pi)) = 0.707)
Code :
|
Et ma scène c'est affiché tout en rouge, donc j'en déduit que ma formule est juste
Marsh Posté le 11-08-2007 à 12:38:48
Bonjour,
Chaque lampe OpenGL contient les 2 varaibles suivantes : spotCutoff et spotCosCutoff et j'aimerais bien savoir comment calculer spotCosCutoff pour faire mon propre éclairage.
Est-ce que cette formule est bonne : spotCosCutoff = cos(spotCutoff/(180.0/M_PI)); ?
Merci.