[quote author=juanma_teso" data-ipsquote-userid="26011" data-ipsquote-timestamp="1455796478" data-ipsquote="" data-cite="juanma_teso" class="ipsQuote">Y si usa el SphereCast al contrario? No en el foco sino en la sombra, así dependiendo de la distancia al centro de la esfera puedes decir si estás más o menos iluminado?? Siendo el centro 0% iluminado y fuera del SphereCast 100% (De esta forma también tendrían sentido los valores muy superiores a 100 que obtiene en el vídeo). En definitiva yo creo que el del vídeo mide la distancia a algún punto de la sombra, ya sea con SphereCast o un objeto vacío.[/quote]Este caso funcionaria siempre y cuando tenga luces estaticas, no es mal idea y voy a pensar que solución le doy a mi problema. Creo que ya tengo varias formas de solucionar el problema, solo me hace falta documentarme y decidir cual opcion tomar. En el momento que tenga mi sistemas creado lo comparto http://docs.unity3d.com/ScriptReference/RaycastHit.html [/quote]Tu solucioón suena interesante, voy a leer pa ver que se me ocurre.
¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain
Mecanicas de sigilo, esconderse en la sombra
Iniciado por crisvg, Febrero 17, 2016, 09:55:38 PM
Tema anterior - Siguiente tema-
crisvg

- Newbie
- Mensajes: 4
-
- En línea
-
Arthure

- Full Stack Aspirante
- Mensajes: 583
-
- En línea
[quote author=crisvg date=1455801265" data-ipsquote="" data-cite="crisvg" class="ipsQuote">En el foro de unity, el oficial en ingles, hay varios post sobre este tema, en uno dicen que se podrida almacenar todos los colliders con los que choca un spherecast desde el foco y comparar las distancias, si hay un objeto entre la luz y el personaje entonces debe estar en la sombra. El problema es que no se usar ese spherecast así que estoy leyendo y miando posibles soluciones, tampoco me quiero matar.
-
crisvg

- Newbie
- Mensajes: 4
-
- En línea
[quote author=iRobb date=1455796487" data-ipsquote="" data-cite="iRobb" class="ipsQuote">Vale, me has pillado. Ni he jugado nunca al Splinter Cell ni he leído bien la pregunta. Ahora le contesto, espero que correctamente.Puedes obtener el UV Lightmap del punto de impacto del raycast. Esto te puede ayudar a saber el valor de iluminación. También tienes la normal del impacto en el RaycastHit:http://docs.unity3d.com/ScriptReference/RaycastHit-lightmapCoord.html">http://docs.unity3d.com/ScriptReference/RaycastHit-lightmapCoord.htmlhttp://docs.unity3d.com/ScriptReference/RaycastHit.html]http://docs.unity3d.com/ScriptReference/RaycastHit.html [/quote]El RaycastHit-lightmapCoord devuelve la coordenada de el lightmap que el raycast toca pero que puedo hacer con esa coordenada?
-
Uli

- Newbie
- Mensajes: 16
-
- En línea
A lo que me refería era a usar varios raycast a puntos claves del personaje, uno a la cintura, otro al pecho, al hombro, la mano, etc...Todos enviados desde las fuentes de luz que podrían afectar al personaje. Si en cada uno hay un colisionador de por medio, estaría oculto. Lo de detectar las sombras sobre el personaje no lo veo factible...
-
hammer

- Dev Junior
- Mensajes: 220
-
- En línea
ufff, yo pondria triggers para saber las zonas oscuras y arreando xD las luces dinamicas que puedas tener las controlas y sabes cuando iluminan al jugador.Ahora parece interesante lo que quieres hacer, supongo que el orden seria raycast ---> sacas lightmapCoord para las cordenadas UV y el renderer.lightmapIndex para saber que lightmap es el que toca, ya que hay varios por escena y se guardan en una array, asi accedes al lightmapData que toca,en este estran lightmapFar y lightmapNear que ya son las texturas, entonces con las coordenadas UV que habias conseguido ya sabes que zona de la textura mirar.Aunque no te quita de mirar las luces dinamicas este metodo.Todo esto lo digo sin tener ni *** idea,que conste,pero mirando la api parece que seria el camino.Otra manera seria con algun shader que te diera la iluminacion del personaje,aunque ni *** idea tampoco(si unity se dignara a tener un editor de materiales mas facil seria),incluso se me ocurre que al igual que los image effects intentar conseguir el framebuffer del personaje solo y mirar ahi los niveles,ni idea tampoco xD ahha es posible que lo dicho no sean mas que tonterias.ya iras contando que parece interesante.Cheers.
-
Arthure

- Full Stack Aspirante
- Mensajes: 583
-
- En línea
[quote author=crisvg date=1455819945" data-ipsquote="" data-cite="crisvg" class="ipsQuote">El RaycastHit-lightmapCoord devuelve la coordenada de el lightmap que el raycast toca pero que puedo hacer con esa coordenada?[/quote]Pues no tengo ni idea de lo que puedes hacer con eso referente al objetivo que quieres alcanzar ... yo dije que me sonaba interesante la idea, pero tambien que no habia entendido una mierda xDD supongo que el compañero te pueda guiar mejor de que debes hacer con ese dato (si es que se puede hacer algo)En cualquier caso, yo sigo pensando lo mismo que dije en mi primer post sobre este tema : lo mas factible, y apostaria a que juegos comerciales como Splinter Cell es la "tecnica" que utilizan, es activar y desactivar el sigilo en distintas zonas del nivel segun desees sin importar la iluminacion (eso se puede hacer desde la forma mas rudimentaria y bruta que seria utilizando triggers, a formas mas elegantes que seria comprobando el punto en el que esta el jugador) y una vez tengas hecho esto, cuando diseñes el tema luces en el nivel hacerlo en coherencia a lo anterior.Haciendolo asi, ademas de que creo es un proceso bastante mas sencillo (lo que no quita que puedas hacerlo de forma mas "profesional") ... tendras el punto a favor de que ahorraras muchos recursos en calculos que serian necesarios al escoger cualquier otro metodo como por ejemplo RayCast
-
pioj

- Ex-staff
- Pi-loto del foro
- Mensajes: 3,835
- En línea
También puede "falsearlo", es decir, hacerlo estático. Planificas unas zonas que sabes que van a tener sombra. Generas polygon colliders en base a esas formas y las colocas justo encima.Mientras el personaje esté dentro de esos colliders, está "en la sombra". Simple, rápido, y efectivo. Déjate de calcular iluminaciones en tiempo real y gastar recursos porque sí...
Etiquetas:
Acciones del Usuario