El otro día bajé las demos del OGRE y quedé sorprendido con una demo que muestra transparencias perfectas, ordenando los polígonos de forma que se pinten en el orden que corresponda.
Mi pregunta es..¿Cómo lo hacen? En la demo hay un plano que corta un toro. Si OGRE hace el corte antes de pintar lo entiendo, si no, ¿alguien conoce la técnica?
No pretendo ser indiscreto pero... ¿Por qué no descargas las fuentes de OGRE y examinas el código?
OGRE es de código libre. Download and read.
Saludos.
PD: ¿Alguien usa OGRE?
En la web de nvidia había hace mucho tiempo un método para hacer las transparencias perfectas que dices, busca por "order independant transparency".
Bueno, yo no veo el problema: pinto el toroide y luego el plano transparente usando el zbuffer para saber si tengo que sobreescribir o no. ¿Cual es el problema? A lo mejor lo he entendido mal, no he visto la demo ;)
Bajarme el código fuente y "leerlo" no creo que me sirva para entender cómo lo hacen, a no ser que esté bien documentado.
Respecto al post de nvidia, lo reeleré, pero creo recordar que no era muy práctico porque lo que hacá era segmentar los objetos.
¿Pero en esa demo está utilizando alpha blending o additive blending?...porque si es esto último entonces no tiene demasiado misterio ya que el orden de render no afecta al resultado final. Ahora, si es alpha blending entonces ya es otra cosa :D
Saludos
He bajado el código y como imaginaba, utiliza additive blending. Aquí esta el script del material que utiliza:
// Transparent knots
Examples/TransparentTest
{
ambient 0.2 0.2 0.2
scene_blend add
depth_write off
{
texture Water01.jpg
scroll_anim 0.25 0
}
{
texture Water01.jpg
wave_xform scroll_y sine 0 0.1 0 0.5
colour_op modulate
}
}
Saludos
¿puedes explicar un poco el concepto de additive blending? No lo conocía.
Con el additive blending lo que haces, como su propio nombre indica es sumar los colores. En este tipo de blending, la componente alpha no entra en juego. Para obtenerlo, lo único que tienes que hacer es algo como:
pD3v->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
pD3v->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
pD3v->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
También, cuando vayas a renderizar, desactiva la escritura en el depth buffer:
pD3v->SetRenderState(D3DRS_ZWRITEENABLE, FALSE);
y ya puedes renderizar sin problemas tus objetos con transparencia. Esta técnica es la que se suele utilizar para el render de partículas, o por ejemplo para el render de la malla que representa las superficies de agua en los quakes y similares (y otros muchos juegos)...
Saludos
Ya entiendo. Muchas gracias!
Mmmm interesante
ahora qe ta conestatada la duda.. xD
Citar
PD: ¿Alguien usa OGRE?
yop, x? si es para intercambiar info cojonudo, xqe no hay canales ni foros españoles del ogre U_U
Mmmm tengo una duda... yo estoy haciendo un engine en OpenGL y el ogre con openGL me pilla los fps q mi engine... iguales pero esq elijo DirectX y me pilla 90 80.... ESO CM ES?!!!! :(
no entiendo qe preguntas.. te pillas mas? eso es xqe d3d lo acelera por hard. ke te pilla penos? eso es xqe no tienes aceleracion x hard d3d y en soft va como el culo.
puede ser por eqiscientas razones, esto es como preguntar, xqe mi windows no funciona bien?
ten en cuenta qe ogl y d3d tienen opciones de configuracion distintas, soporte hard distinto, todo distinto xD
Quieres decir que con OGL te pilla los mismo FPS que con tu motor pero que con DX te pilla muchos más?
Saludos
Master, yo diria que en tu maquina el soporte openGL es por software, ya que por lo que cuentas tiene toda la pinta de que te acelera D3D pero no openGL. Miralo o pasate a D3D, como hacen los hombres XDDDD
Ta pronto ;)
Tu si que sabes AK47!!! :jaja:
Pero AK47, que dices hombre?!?! Que sabras tu de hombres? :X9:
¿En qué programan las mujeres?
mars te parece poco la lavadora, secadora, lavaplatos, frigorifico, plancha, etc?
saludos
Jurl, qué machista. No me esperaba esto de ti. Por cierto, si te fusionas con sync podrías llamarte ethernizer, que no queda mal tampoco.
Sí, y si me fusionará con Energy seremos Energizer y nos meterían en una linterna, no te joroba... aunque también nos podrían meter en un conejito, como Duracell... ese sí que sabe XDDD
De todas formas, esto de fusionarse me parece poco gay... ^_^'
sync
Gay Attacks
----
Éste debe de ser el post más tonto de la historia de mis posts, celebrémoslo, no todos los días se bate un récord :D
sad
Venga, que estamos echando a perder el topic este de las transparencias y el OGRE
sync
Bah....si se trataba de additive blending :jaja:
Saludoooooooooos
Bu :P XDD ;)
Lo siento :oops: borraría todas mis "aportaciones", pero no tengo habilitado el botón de borrar mis posts... :loco: si algún moderador quiere hacerlo le estaré gratamente agradecido. Gracias.
Cuantos iconos hay q poner por cada post para ser aceptado por la sociedad forera? hayq decir tb a no a la guerra ? xDD patetico *pa_te_ti_co*