Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: CoLSoN2 en 22 de Diciembre de 2002, 12:53:05 AM

Título: Distancia máxima de una escena en D3D
Publicado por: CoLSoN2 en 22 de Diciembre de 2002, 12:53:05 AM
                                Veréis, estoy haciendo un juego de naves en el espacio, y no he encontrado mejor manera para simular el espacio que un skybox gigante cuyo centro sea siempre el centro del modelo-jugador. Todo bien (cutre, pero bien xD), pero el skybox mide 10,000 de lado, y aunque ponga el farplane de la cámara a 250,000 este efecto se produce cuando la cámara está alejada de alguna zona del skybox:

(http://www.warcraft3es.com/btos1.JPG)
y
(http://www.warcraft3es.com/tbos2.JPG)

Es decir, las zonas lejanas de la cámara no se visibilizan, aunque sea una parte de un triángulo (cada cara del skybox son 2 triangulos, y esto del screenshot es una esquina, en cada una a una distancia).

Alguien sabe que pasa?                                
Título: Distancia máxima de una escena en D3D
Publicado por: Mars Attacks en 22 de Diciembre de 2002, 01:18:19 AM
                                Puedes intentar que la posición del skybox se mueva a la vez que la cámara, aunque no sé si te gustará el efecto.                                
Título: Distancia máxima de una escena en D3D
Publicado por: CoLSoN2 en 22 de Diciembre de 2002, 01:46:27 AM
                                La posición (x,y,z) de la cámara está siempre en el centro del skybox, y eso no puede cambiarse :                                
Título: Distancia máxima de una escena en D3D
Publicado por: Lord Trancos en 22 de Diciembre de 2002, 10:07:20 AM
                                El skybox yo no lo "pinto" asi. Tengo un juego medio hecho en el que el escenario tiene dimensiones de varios centenares de unidades; por ejemplo 1000 x 100 x 1000.

Sin embargo, el skybox tiene 2 x 2 x 2 :)

Lo que hago es :

 - DibujarSkyBox
 - DibujarElResto

donde;

 - DibujarSkyBox;

Desactivo el z-buffer.
Muevo la camara a las coordenadas 0, 0, 0 (el centro del skybox)
Ojo; dejo la camara con la misma direccion que tenia! y cambio la matriz de proyeccion para que el near sea 0.1 y el far 10.
Renderizo el skybox
Activo el z-buffer
Restauro la posicion de la camara y la matriz de proyeccion (con valores near y far correctos para renderizar el resto del escenario.)

De esta forma el skybox permanece totalmente estatico, no hay problemas con los planos near/far, y tienes total libertad para mover la camara.                                
Título: Distancia máxima de una escena en D3D
Publicado por: Mars Attacks en 22 de Diciembre de 2002, 10:54:24 AM
                                Ostras  8O                                
Título: Distancia máxima de una escena en D3D
Publicado por: Lord Trancos en 22 de Diciembre de 2002, 11:02:18 AM
                                Es un truco de mi abuela :)

xDDDDD                                
Título: Distancia máxima de una escena en D3D
Publicado por: ethernet en 22 de Diciembre de 2002, 11:24:25 AM
tiene mas trucos tu abuela ? queremos ver tu medio-juego ;:D:d:.d::DD
colson me molan tus post ;***

saludos
Título: Distancia máxima de una escena en D3D
Publicado por: BeRSeRKeR en 22 de Diciembre de 2002, 12:21:47 PM
                                ¡Es un truco de su abuela Carmack!...o bueno tal de de su otra abuela, la cual no conozco  :-?                                
Título: ...
Publicado por: Grugnorr en 22 de Diciembre de 2002, 01:50:17 PM
                                Hay varias formas de hacerlo, pero todas del estilo de lo que dice Trancos ;). Menudo infierno sino....  :D                                
Título: Distancia máxima de una escena en D3D
Publicado por: CoLSoN2 en 22 de Diciembre de 2002, 06:04:40 PM
                                joder, pos yo dibujaba una caja de 10000x10000 xDDDD y con eso no queda efecto de estar "cerca" del cielo? :P

ethernet ;*