A ver un problemilla que tengo. El caso es que creo un foco de luz (de color azul) e ilumina perfectamente un cubo que he creado. Tambien he configurado la luz ambiente para hacer unas pruebas. El color de la luz ambiente es de 255, 255, 255. Para la luz ambiente solo uso la instruccion SetRenderState(D3DRS_AMBIENT, D3DCOLOR_XRGB(255, 255, 255).
Lo que pasa es que si desactivo el foco de luz azul que cree, se ve todo negro, como si no hubiera luz ambiente. Alguien me puede decir que pasa aqui??
Gracias de antemano
un saludo!!
Seguramente eso te pasa pq el material de tu cubo tiene la luz ambiente a 0.
ein?? Jeje
Como se cambia eso??
Si te refieres a la definicion de los vertices (el array), tengo el color de los vertices a 0xFFFFFF (vamos, blanco xDDD).
Se me olvida algo?
quizas asi:
p_d3d_Device->SetRenderState(D3DRS_AMBIENTMATERIALSOURCE,D3DMCS_COLOR1);
Por defecto la fuente de luz ambiente esta a D3DMCS_COLOR2, y si tu formato de vertice solo tiene un color especificado, pues no puede coger el segundo como es logico:
D3DMCS_COLOR1 - Especifica como fuente el primer valor de color del vertice
D3DMCS_COLOR2 - Especifica como fuente el segundo valor de color del vertice
D3DMCS_MATERIAL - Especifica como fuente el material actual
y
D3DRS_DIFFUSEMATERIALSOURCE - para fuente luz difusa
D3DRS_SPECULARMATERIALSOURCE - para fuente luz especular
D3DRS_AMBIENTMATERIALSOURCE - para fuente luz ambiente
D3DRS_EMISSIVEMATERIALSOURCE - para fuente luz emisiva
Muchas gracias _Grey. He probado antes de leer tu post lo de los materiales (investigando por ahi un poco :sonriendo: ) y tambien lo he conseguido, y asi ademas entiendo mas o menos para que sirven, ahora probare lo que me has dicho.
Gracias a todos!
Un saludo!!!