Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Collider antirenderizadores

Iniciado por El preguntón, Noviembre 28, 2015, 12:25:15 PM

Tema anterior - Siguiente tema

Hola comunidad,

Como ya sabéis algunos no soy muy bueno programando. Así que mi dudad es la siguiente: ¿Cómo hacer que un Collider cuando entre uno o varios objetos dentro, no se rendericen ya sea todo o trozo del objeto/s?

Gracias a todos por adelantado



Me vais a matar pero no me acuerdo si era quitar el check de occludee a los objetos pequeños verdad?Es decir que no trate de ocultar eso en objetos enanos y malgastar recursos.

No estoy seguro si es que no has planteado bien lo que quieres conseguir ... pero la tecnica de oclusion culling, tal y como yo he entendido tu pregunta (o el propio titulo), no te servira. Oclusion culling lo que hace es no dibujar (renderizar) los objetos que quedan por detras de otros objetos en la pantalla; es decir que si un objeto esta tapando a otro, este no se rendizara aunque este en la trayectoria de la camara y de este modo ganas en rendimiento.Ahora bien, para aclararte tu duda (o el motivo por el que digo que no es lo que buscas tal como lo planteas) los dos objetos no tienen porque estar tocandose ... por ejemplo, puedes tener la camara enfrente de una pared y al otro lado de la pared haber un personaje pero que este a 100 metros; pues en este caso el personaje, aunque no este tocando la pared no se renderizara.Luego otro "problema" del culling segun como lo planteas es que no funciona con colliders, si no con meshes porque su funcionamiento se basa en objetos que tapan a otros objetos y como un collider es transparente ... pues eso. Un mesh cualquiera, aunque no tenga collider, hara que el culling funcione con normalidad pero un collider por si solo que no tenga ningun mesh ignorara por completo el culling por lo que cualquier objeto que entre dentro, total o parcialmente, se vera completo con normalidad.Seria mas facil orientarte o aconsejarte utilizar una cosa u otra si detallaras mejor lo que quieres conseguir ... porque tal como lo dices, tiene mas pinta de necesitar echar mano de shaders (que si dices que no sabes programar, olvidate) que no de occlusion culling.

[quote author=Arthure" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="34539" data-ipsquote-contentcommentid="124198">No estoy seguro si es que no has planteado bien lo que quieres conseguir ... pero la tecnica de oclusion culling, tal y como yo he entendido tu pregunta (o el propio titulo), no te servira. Oclusion culling lo que hace es no dibujar (renderizar) los objetos que quedan por detras de otros objetos en la pantalla; es decir que si un objeto esta tapando a otro, este no se rendizara aunque este en la trayectoria de la camara y de este modo ganas en rendimiento.Ahora bien, para aclararte tu duda (o el motivo por el que digo que no es lo que buscas tal como lo planteas) los dos objetos no tienen porque estar tocandose ... por ejemplo, puedes tener la camara enfrente de una pared y al otro lado de la pared haber un personaje pero que este a 100 metros; pues en este caso el personaje, aunque no este tocando la pared no se renderizara.Luego otro "problema" del culling segun como lo planteas es que no funciona con colliders, si no con meshes porque su funcionamiento se basa en objetos que tapan a otros objetos y como un collider es transparente ... pues eso. Un mesh cualquiera, aunque no tenga collider, hara que el culling funcione con normalidad pero un collider por si solo que no tenga ningun mesh ignorara por completo el culling por lo que cualquier objeto que entre dentro, total o parcialmente, se vera completo con normalidad.Seria mas facil orientarte o aconsejarte utilizar una cosa u otra si detallaras mejor lo que quieres conseguir ... porque tal como lo dices, tiene mas pinta de necesitar echar mano de shaders (que si dices que no sabes programar, olvidate) que no de occlusion culling.[/quote]

Hola Arthure, voy a intentar ser más preciso. Antes quiero agradecerte al igual que pioj y mrpacogp por ayudarme sobre los Occluders, ya que no lo conocía.


No termino de entender muy bien que es lo que queres hacer si:A.- Directamente ocultar los objetos entre el collider y la camara...esto podria hacerse mediante Raycast busca RaycastAll entre la camara y el objetivo y ocultar con meshrenderer.enabled=false; y luego desocultarlos si no intersecta... para lo que podrias emplear un bufferO...B.- Por el contrario quieres realizar cortes, esto puedes hacerlo bien mediante los clipping planes de la camara o por shader en cualquier caso un pequeño infierno algebraicoSaludos!!


   Pain-T: A free FPS browser game




   http://www.paintemall.com




   




   Hilo en unity3d.com



[quote author=Ilie" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="34539" data-ipsquote-contentcommentid="124218">No termino de entender muy bien que es lo que queres hacer si:A.- Directamente ocultar los objetos entre el collider y la camara...esto podria hacerse mediante Raycast busca RaycastAll entre la camara y el objetivo y ocultar con meshrenderer.enabled=false; y luego desocultarlos si no intersecta... para lo que podrias emplear un bufferO...B.- Por el contrario quieres realizar cortes, esto puedes hacerlo bien mediante los clipping planes de la camara o por shader en cualquier caso un pequeño infierno algebraicoSaludos!![/quote]

¡Ups! Perdón por no acabar de expresarme bien.  Me refería a la opción B, con cortes. He encontrado gracias a tu ayuda algo parecido: https://www.assetstore.unity3d.com/en/#!/content/35100


Etiquetas: