请有人确认以下“假定约束”是否正确?。。。
为了向视口渲染三个.js正交摄影机(并避免失真),摄影机的截头体左、右、底和顶平面必须定义一个前截头体面(ocWidth,ocHeight),其纵横比(宽度/高度)与视口的纵横比相同?
在以下示例中,首先设置摄影机宽度和高度,然后根据所需的视口宽度和给定的摄影机纵横比限制视口高度。(另一种方法是先设置视口宽度和高度,然后将摄影机高度限制为所需的摄影机宽度和给定的视口纵横比。)
//Orthographic Camera
ocWidth = 99000; //... World Units
ocHeight = 33000; //... World Units
var myCamera = new THREE.OrthographicCamera(
ocWidth / - 2, ocWidth / 2,
ocHeight / 2, ocHeight / - 2,
NEAR = 1, FAR = 1000 );
oc_aspect_ratio = ocWidth / ocHeight;
//Viewport
vp_aspect_ratio = oc_aspect_ratio;
vpXwidth = 800; //... pixels
vpYheight = vpXwidth /vp_aspect_ratio; //... pixels, to ensure no distortion
vpXmin = -vpXwidth /2; vpXmax = vpXwidth /2; //... pixels
vpYmin = -vpYheight /2; vpYmax = vpYheight /2; //... pixels
myRenderer.setViewport( vpXmin, vpYmin, vpXwidth, vpYheight );
因此,(通常)就正交摄影机而言,RENDERER的宽度和高度是不相关的(例外情况是有效视口填充整个渲染器时,如果没有明确定义视口,这是默认情况。在这种情况下,渲染器纵横比必须与摄影机纵横比匹配)。
我学习过