Jump to content
UnitySpain
Sign in to follow this  
OnlyDavies

Entrar en planeta

Recommended Posts

Supongamos una escena tal que tenemos un planeta (esfera) y una nave (GameObject).

Quiero hacer que si la nave se acerca lo bastante al planeta, se produzca un efecto de entrada en la atmósfera.

Al principio había pensado, en que si la nave se acerca mucho al planeta o si directamente colisiona con el collider, cargar la siguiente escena, que sería una animación de la entrada al planeta y luego cargar otra escena donde tenga un terreno ya definido de la superficie del planeta.

Pero me parece un poco "feo".

Yo pensaba en si es posible hacer algo como esto:

Gracias

Share this post


Link to post
Share on other sites

A mi eso del video me huele a shader, sobre todo a atmospheric scattering. Podrías verlo como una luz volumetrica que recorre al planeta en base a la luz que recibe, por eso en los amaneceres ves que cuando asoma el sol cambian los colores, cosa que está pasando en el vid ese que pusiste cuando hacés la transición.

Igual la idea es fakearlo si se puede :12_slight_smile:, es la parte divertida del asunto, acá podés hacer lo siguiente, a modo de prueba y artilugio barato, si queda feo no hay problema te vas a lo bueno y listo. Podés decir que cuando tengas una distancia menor a X entre centro de planeta y nave empezas a intensificar el fog, sí, es bastante pedorro pero bueno (supongo el post proccesing stack) incluso podés tener tu curva de intensidad dependiendo de la distancia (Fijate que es mejor para esto usar directamente distancias y no un gran collider, al final vas a terminar comparando distancias) ... y acordate de que si vas a meter fog poné que incluya al skybox, o dicho de otro modo destildá el "exclude skybox".

Te va a dar la "sensación" de atmospheric scattering pero claramente no es lo mismo, te das cuenta por la iluminación y los colores.

Y sino buscate algun shader o efectos por el estilo, debe de haber algunos gratuitos, o probá con volumetric fog o lighting, hay dos gratis que están buenos, tambiénb tenés Aura que nunca lo pude hacer andar pero que pinta excelente y es Free.

Mirá este hizo algo así con shaders (5:55):

 

Share this post


Link to post
Share on other sites
hace 9 horas, lightbug said:

A mi eso del video me huele a shader, sobre todo a atmospheric scattering. Podrías verlo como una luz volumetrica que recorre al planeta en base a la luz que recibe, por eso en los amaneceres ves que cuando asoma el sol cambian los colores, cosa que está pasando en el vid ese que pusiste cuando hacés la transición.

Igual la idea es fakearlo si se puede :12_slight_smile:, es la parte divertida del asunto, acá podés hacer lo siguiente, a modo de prueba y artilugio barato, si queda feo no hay problema te vas a lo bueno y listo. Podés decir que cuando tengas una distancia menor a X entre centro de planeta y nave empezas a intensificar el fog, sí, es bastante pedorro pero bueno (supongo el post proccesing stack) incluso podés tener tu curva de intensidad dependiendo de la distancia (Fijate que es mejor para esto usar directamente distancias y no un gran collider, al final vas a terminar comparando distancias) ... y acordate de que si vas a meter fog poné que incluya al skybox, o dicho de otro modo destildá el "exclude skybox".

Te va a dar la "sensación" de atmospheric scattering pero claramente no es lo mismo, te das cuenta por la iluminación y los colores.

Y sino buscate algun shader o efectos por el estilo, debe de haber algunos gratuitos, o probá con volumetric fog o lighting, hay dos gratis que están buenos, tambiénb tenés Aura que nunca lo pude hacer andar pero que pinta excelente y es Free.

Mirá este hizo algo así con shaders (5:55):

 

Gracias!

Share this post


Link to post
Share on other sites

yo tengo una esfera alrededor del planeta con un shader tipo "hologram".... dependiendo de tu posicion respecto al planeta, y respecto al sol, calculo el color conforme te mueves por la superficie.... y aplico lo mismo al color de la niebla.... la distancia de la niebla es: 

(pseudocodigo)

near = (distancia(player, planeta) - radio) + miNear;
far = (distancia(player, planeta) - radio) + miFar;

 

la cantidad de iluminacion (dependiendo de la zona del planeta donde estes) la calculo asi:

float lit = dot(lightDir, (vector3(player - planet).normalized)

he añadido al shader de la atmosfera el "zdepth texture" para que se difumine cuando te acercas (el alpha) para que la transicion entrada/salida quede bonita... 

en unos dias colgare una nueva demo con los avances en el post de planetas aleatorios... (en "otros")

Edited by Igor

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...