En primer lugar, soy dueño de Unity Pro.
He estado buscando ocluir luces cuando no se ven desde hace un tiempo para mejorar el rendimiento. Los principales métodos con los que me encontré fueron el uso de BecameVisible () y la prueba de la cámara frustum.
Mi principal problema era que si el jugador está viendo un área que estaría iluminada por la luz, todavía quiero que la luz esté encendida.
Actualmente estoy usando un método que verifica si el área iluminada está en el centro de la cámara, pero el problema es que a veces las luces están en el centro sin que el jugador pueda verlas (por ejemplo, una pared entre ellas y el jugador). He intentado transmitirlos con rayos, pero nunca puedes obtener suficientes detalles sobre el área iluminada real (lo mejor que pude imaginar fue usar renderer.bounds.extent y renderer.bounds.center para calcular los puntos de luz máximos a partir de la luz).
¿Alguien sabe de una manera fácil en Unity Pro para ocluir las luces? ¿O podría decirme una buena manera de usar el método de fulcro de cámara del que estaba hablando?
fuente
Respuestas:
Podrías escribir tu propio guión para ocluir las luces. Algo como esto conectado a la cámara principal:
También puede verificar si el punto está dentro de un ángulo en el eje Y de la cámara (los otros ejes simplemente le causarán dolor). Sea un poco generoso con el ángulo, tal vez 2 veces el frustrum de la cámara, para que las luces no se apaguen cuando están iluminando áreas dentro de la vista de la cámara. Si elige agregar esta optimización adicional (que probablemente no será necesaria), asegúrese de usar la distancia como la fase ancha porque es mucho menos costosa.
fuente