Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Abramelin en Agosto 26, 2015, 08:35:37 PM

Título: omitir decals en objetos dinamicos
Publicado por: Abramelin en Agosto 26, 2015, 08:35:37 PM
¿que proceso hay que hacer para que un decal omita a los objetos que se mueven (por ej el player)? estoy usando unity5 y los deferred decals (rendering pipeline command buffers)estos: http://docs.unity3d.com/es/current/Manual/GraphicsCommandBuffers.html (http://docs.unity3d.com/es/current/Manual/GraphicsCommandBuffers.html) ¿tendria que crear un layer para omitirlo, o no va por ahi?
Título: omitir decals en objetos dinamicos
Publicado por: iRobb en Agosto 26, 2015, 09:45:54 PM
Que maravilla esto de los GraphicsCommandBuffers. Unity siempre me sorprende.Hay un zip en el link con código de ejemplo y le he pegado un ojo. Lo que hacen es crear tres shaders (Diffuse, Normals, o los dos) y estos se añaden a los decals. Luego tiene una hashtable que los referencia al añadirlos. Luego en la función OnWillRenderObject crea un CommandBuffer que las añade antes del deferred lighting pass (opción CameraEvent.BeforeLighting). Eso quiere decir que si añades los shaders solo a los objetos que quieres, luego no tendrías problema.Son la leche.Saludos
Título: omitir decals en objetos dinamicos
Publicado por: Abramelin en Agosto 26, 2015, 10:11:58 PM
@iRobbdices que hay que añadirle el shader a los objetos que quieras que se vean afectados por el decal? en este caso el decal afecta a todos los objetos sin añadir shader alguno, a excepción de los decals (que son los unicos que llevan shader)... tengo un plano bajo el terrain con las mismas proporciones (que es el que lleva el script de los decals). los decals estan distribuidos por las paredes y el suelo... el problema es que cuando pasa el player por mallas donde hay decals, estos decals tambien afectan al player y se ven sobre el modelo... lo que me gustaría es saber si puedo crear alguna condicion donde se excluya el player en dicha interaccion con los decals, que no le afecten y no se vean sobre el modelo del player al pasar por donde haya decals colocados.
Título: omitir decals en objetos dinamicos
Publicado por: iRobb en Agosto 26, 2015, 10:26:08 PM
Y cuando añades los shaders en la cola del GraphicsCommandBuffers?
Título: omitir decals en objetos dinamicos
Publicado por: Abramelin en Agosto 26, 2015, 10:46:24 PM
pero el shader decal solo los llevan los decals... yo lo unico que quiero es que no afecte al jugador cuando cuando pase por encima de dichos decals. perdona si me lio pero ando muy verde.
Título: omitir decals en objetos dinamicos
Publicado por: iRobb en Agosto 26, 2015, 11:20:42 PM
Ya me imagino que lo llevan solo los decals claro, pero utilizas la cola del GraphicsCommandBuffers o no o solo los shaders y ya está?
Título: omitir decals en objetos dinamicos
Publicado por: Abramelin en Agosto 27, 2015, 12:34:45 AM
Pues no me suena de nada, asi que si la he utilizado no he sido consciente de ello... he usado la configuracion que trae el proyecto de muestra: cambiar a la camara la opcion deferred, los materiales para los decals, los objetos decals con su script y su material, y el plano que te he comentado antes que contiene el script para que se vean los decals al colocarlos... lo de la cola del graphicscommandbuffers no se lo que es... ¿ahi especifica a que layers afecta o algo por el estilo? si hubiese tal opcion de sacar al player sería perfeco... pero no se como acceder.