Version: 2019.4
Entendiendo el View Frustum
Los rayos de la Cámara

El tamaño del Frustum en una distancia dada desde la cámara

Una sección transversal del view frustum a una cierta distancia de la cámara define un rectángulo en el espacio del mundo que enmarca el área visible. A veces es útil calcular el tamaño de este rectángulo a una distancia dada, o encontrar la distancia en dónde el rectángulo es de un tamaño dado. Por ejemplo, si una cámara en movimiento necesita mantener un objeto (como el jugador) completamente enfocado todo el tiempo entonces no debe estar tan cerca a esa parte del objeto que es cortada.

La altura del frustum en una distancia dada (ambos en unidades de mundo) se puede obtener con la siguiente formula:-

 var frustumHeight = 2.0f * distance * Mathf.Tan(camera.fieldOfView * 0.5f * Mathf.Deg2Rad);

…y el proceso se puede invertir para calcular la distancia requerida para dar una altura específica de frustum:-

 var distance = frustumHeight * 0.5f / Mathf.Tan(camera.fieldOfView * 0.5f * Mathf.Deg2Rad);

También es posible calcular el ángulo FOV cuando la altura y la distancia son conocidas:-

 var camera.fieldOfView = 2.0f * Mathf.Atan(frustumHeight * 0.5f / distance) * Mathf.Rad2Deg;

Cada una de estas calculaciones involucra la altura del frustum pero esta puede ser obtenido desde la anchura (y vice cersa) muy fácilmente:-

var frustumWidth = frustumHeight * camera.aspect;
var frustumHeight = frustumWidth / camera.aspect;
Entendiendo el View Frustum
Los rayos de la Cámara
Copyright © 2020 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961