Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





2 Nearplanes Al Mismo Tiempo En D3d 8.1

Iniciado por zukutrule, 13 de Diciembre de 2003, 12:27:42 PM

« anterior - próximo »

zukutrule

 oas, bueno.. la kosa es asi.. tengo una fukin aplikacion ke me tiene ke mostrar 2 planos lejanos.. uno todos los objetos sercanos.. ke son konsumidos por la niebla y pa subir fps  sera bueno ke el plano lejano termine donde la niebla lo ase desaparecer(la textura) y por otro lado.. tengo montañas de fondo.. a las kuales uno puede llegar.. por lo kual nesesito tener otro plano lejano.. ahora bien, lo inplemente pero el direct3d se va a la mierda.. enpiesa a mostrar triandgulos atras de otros triangulos, komo si el zbufer se fuera a la mierda.. y deforma mal los objetos.. kuando me muevo alado de un objeto.. ademas de moverse para un kostado , baja, no se.. me estoy volviendo loko  (nooo) .....pero encerio.. esta mierda kobro vida y esta asiendo o ke se le kanta el orto...si algien ya paso por esto .. agradecido estoy por su ayudas
Gracias!!!!!!!!!!!!!!1

Mars Attacks

 Bueno, en primer lugar, bienvenido. En segundo lugar, no creo que ésa sea la mejor manera de presentar un problema (no sólo por la forma sino por el contenido). Añade alguna captura de lo que te pasa y trata de mantener un tono un poco menos... vituperante  :P  

zukutrule

 bueno... primero gracias por la vienvenida, soy medianamente nuevo en esto de la programacion.. mas 3d.. pero bue, me estoy mediendo kon toda, segundo perdon por mi lexiko.. soy un poko bruto, pero sin animos de ofender a nadie, tercero, ya ke me lo pediste subi un par de imagenes.



dado ke tripod no me deja subir las imagenes ise una modesta paginilla pa ke puedan verlas.

http://zukutrule.tripod.com.ar/graficos3d/graficos.html   ://http://zukutrule.tripod.com.ar/graf...raficos.html  
ai explico un poko mejor el tema..  

AgeR

 Ante todo, bienvenido!
Sobre el vocabulario, intenta mejorarlo un poco, ya que sobre todo, te será más fácil que entendamos cualquier duda que tengas  ;) .

En cuanto a tu problema... creo que puedes y debes solucionarlo de otro modo.
Basta con que compruebes la distancia de un objeto con la cámara. Si la distancia entre ellos es mayor que la que tú tenias para el plano lejano de los objetos, es que la niebla lo hace invisible, con lo que no es necesario que lo mandes a dibujar.

Supongo que habrá más posibilidades.

PD : He visto las screenshots y me gustan bastante. Es algún juego? Alguna demo? A ver si puedes comentar algo  ;) .

BeRSeRKeR

 No lo entiendo. Yo nunca he trabajado con niebla pero se supone que sería suficiente con poner el far plane a la misma distancia que la distancia máxima de la niebla. El frustum culling haría el resto, ¿no?.

Porque si lo que estás haciendo es especificar dos far planes en el mismo frame, se supone que entre cada llamada deberás limpiar el depth buffer, ¿no?. Ya que el rango a lo largo del cual se distribuye la profundidad no es el mismo. Es decir, la información ya existente en el depth buffer perteneciente a la proyección con el primer far plane, no te sirve para el segundo porque simplemente no es lo mismo un valor de profundidad de 0.5 en un rango [1, 600] que en un rango [1, 3000]. Eso podría explicar por qué te aparecen cosas donde no deberían aparecer. Claro que si limpias el depth buffer entre cada llamada a SetTransform, pierdes la información de profundidad por lo que seguirías teniendo problemas. Así que, como te ha dicho Ager, eso lo tienes que solucionar de otra forma. Se supone que con lo primero que te he puesto. Pero la verdad, no sé si he entendido bien tu problema :D

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

AgeR

Cita de: "BeRSeRKeR"No lo entiendo. Yo nunca he trabajado con niebla pero se supone que sería suficiente con poner el far plane a la misma distancia que la distancia máxima de la niebla. El frustum culling haría el resto, ¿no?.
Eso sería lo lógico, efectivamente, pero no se si lo he entendido mal, o quiere tener montañas detrás...  O_O
Creo que tampoco lo entiendo demasiado bien XDDDDDDD. Si quiere que la niebla tape los objetos para poder hacerlos desaparecer... si las montañas están detrás también desaparecerían, de hecho no se verían a causa de la niebla.

A ver si nos lo aclara un poco...

zukutrule

 si, la onda es ke las montañas keden del kolor de la niebla, PERO!!!! , el cielo no, tonces se tendria ke dibujar la silueta de la montaña.porke no sabre esplikarme bien :(

BeRSeRKeR

 ¿Y por qué no pintas primero el cielo (somo se hace normalmente) con la niebla desactivada y posteriormente el resto con la niebla activada?.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

zukutrule

 yo lo primero ke ago es pintar el cielo, con la niebla desactivada , y kon la escritura en zbufer desactivada, para ke siempre me kede en el fondo. luego rendalizaria las montañas de fondo y luego el mundo, la idea de de modificar el plano lejano es para ganar rendimiento ya ke no nesesito rendalizar todo, solo lo visible dentro de los 700 , las montañas en el horisonte y el cielo. ahora bien, la idea es no usar unas montañas escaladas ke se rendalicen primero onda el cielo, desactivando el zbufer, porke en momentos uno va a poder estar en los pies de las montañas. igualmente muchas gracias por la ayuda.
pd: huesos en direct3d? skinmesh? uno puede cargar los huesos en un .x y varios skin en otros?
graxs!

MChiz

 Podrias hacer que los objetos que esten a cierta distancia utilicen un far plane distinto a los que estan cerca, por ejemplo.

zukutrule

 de echo eso es lo ke ago.. pero tira kilombos de zbufer, es ke tan pero tan mal escribo ke no se me entiende!!, pero bue.. ya me resigne.. me voy a aser un tetris 2d y listo.. :(

AgeR

 No has probado la solución que te propuse? Creo que es bastante válida para lo que pretendes hacer. Basta con que dibuje las montañas sin comprobación alguna, y para los objetos que quieres que desaparezcan en un determinado momento, compruebes la distancia entre la cámara y el objeto.

Inténtalo antes de ponerte con un tetris, hombre!  :P  

DraKKaR

 Ager, tu plan tiene un pekeño bug... lo que habria uqe hacer noe s calcular la distancia con el objeto a la camara, porque el objeto ede ser muy grande... y ¿que punto tomas como referencia? ¿Su centro? Lo que habría que hacer es calcular la colisión entre un BBOX que englobe al objeto con el frustum piramidal. ¿No?

AgeR

 Claro, cuando me refería al objeto, estaba suponiendo un bounding box/esfera que lo englobara.
Peeeeeeeeeeero, lo de la comprobación con el frustum no resolvería el problema en sí (o eso me parece a las tres de la mañana XD).
Lo que pasa es que él quiere que los objetos desaparezcan aún estando dentro del frustum, ya que las montañas si han de ser dibujadas deberían caer dentro de éste también. Lo que quiere es que las montañas se queden, pero los objetos "menos importantes" desaparezcan llegado un momento.

Hmmm igual con un cono menor lo podría resolver, pero calcular 2 frustums para lo que quiere me parece excesivo.

Ahora que pienso, tu solución del frustum sí que vale, solo que faltaría añadir una comprobación esta vez sí de la distancia del objeto (bbox/bsphere) con respecto a la cámara.... no?  :huh:  

zukutrule

 bueno , muchas gracias , ya estoy intentando otras formas pa hacerlo utilizando las boudingbox y ya los estar molestando kon otras preguntillas.:)






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.