|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Apr 2005
Messaggi: 296
|
[OpenGL] Illuminazione e Textures
Ho un problema con la gestione dell'illuminazione in OpenGL.
Ho copiato e incollato qua sotto il post che ho scritto su un altro forum,in inglese,non mi va di tradurlo ^_^ Grazie in anticipo per l'aiuto I tried drawing some triangles with some material properties,such as shininess and ambient/diffuse reflectance. Then,i enabled GL_LIGHT0 and tried to set GL_SPECULAR parameter with different colors,and the triangles reflected the light as expected... At this point,i mapped a texture on those triangles,leaving unchanged the material parameters,and they always look like they are fully enlightened with a light color of (1,1,1,1) (full white) , no matter how i modify the light and material parameters,and even with a total dark light (0,0,0,0) or (0,0,0,1). It seems that textured triangles are not affected by lighting operations,is it so?? Is it the same with Direct3D ? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Codice:
glTexEnv (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL); Dai un'occhiata alla terza domanda ![]()
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Devi impostare la modalita' di blend di OGL per fare questa operazione:
C = L * T Dove: C e' il colore finale che andra' all'alpha blending T e' il colore che arriva dalla texture L e' il colore che arriva dall'unita' di illuminazione L'operatore * in grafica viene spesso chiamato MODULATE. Al momento immagino che tu stia facendo semplicemente questo: C = T E quindi ti trovi l'oggetto sempre totalmente illuminato.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Lui credo voglia fare C = T * L.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
![]()
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Apr 2005
Messaggi: 296
|
ho risolto,tutto ok
comunque non va benissimo il GL_BLEND,va meglio invece questo Codice:
glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); il GL_BLEND combina il risultato di GL_MODULATE con un ulteriore colore costante,ma adesso non va bene , giusto? il GL_DECAL non va bene perchè non fa altro che rimpiazzare il colore del triangolo con la texture,senza tenere conto della luce,quindi la texture sarà sempre visibile al massimo,come l'immagine originale tutto ciò l'ho letto da MSDN dove parla di glTexEnv , e poi ho pensato bene di colorare di bianco il triangolo in modo che poi assuma il colore della luce,e tale colore sarà il colore che modula la texture...come se fosse illuminata da tale colore,spero sia tutto giusto,i risultati a video di quelche prova che ho fatto sembravano corretti Ultima modifica di GordonFreeman : 12-06-2006 alle 16:40. |
![]() |
![]() |
![]() |
#8 | ||
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
C = a * X + (a - 1) * Y Dove: X e Y possono essere un qualunque input (ad esempio texture e illuminazione) a e' il fattore di blend che puo' essere impostato costante o arrivare ad esempio dal canale alpha di una texture Blend si usa per rendere ad esempio oggetti trasparenti dove X e' il colore del pixel sullo schermo e Y e' il nuovo colore del pixel e vengono fusi assieme. Quote:
![]()
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:09.