提交 c398329a 编写于 作者: M Mr.doob 提交者: GitHub

Merge pull request #11706 from donmccurdy/feat-gltf-ortho-camera

[gltf] Correct OrthographicCamera constructor args.
......@@ -2184,7 +2184,7 @@ THREE.GLTF2Loader = ( function () {
}
if ( material.aoMap !== undefined
if ( material.aoMap
&& geometry.attributes.uv2 === undefined
&& geometry.attributes.uv !== undefined ) {
......@@ -2361,39 +2361,44 @@ THREE.GLTF2Loader = ( function () {
};
/**
* Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#cameras
*/
GLTFParser.prototype.loadCameras = function () {
var json = this.json;
return _each( json.cameras, function ( camera ) {
if ( camera.type == "perspective" && camera.perspective ) {
var _camera;
var yfov = camera.perspective.yfov;
var aspectRatio = camera.perspective.aspectRatio !== undefined ? camera.perspective.aspectRatio : 1;
var params = camera[ camera.type ];
// According to COLLADA spec...
// aspectRatio = xfov / yfov
var xfov = yfov * aspectRatio;
if ( !params ) {
var _camera = new THREE.PerspectiveCamera( THREE.Math.radToDeg( xfov ), aspectRatio, camera.perspective.znear || 1, camera.perspective.zfar || 2e6 );
if ( camera.name !== undefined ) _camera.name = camera.name;
console.warn( 'GLTF2Loader: Missing camera parameters.' );
return;
if ( camera.extras ) _camera.userData = camera.extras;
}
return _camera;
if ( camera.type === 'perspective' ) {
} else if ( camera.type == "orthographic" && camera.orthographic ) {
var aspectRatio = params.aspectRatio || 1;
var xfov = params.yfov * aspectRatio;
var _camera = new THREE.OrthographicCamera( window.innerWidth / - 2, window.innerWidth / 2, window.innerHeight / 2, window.innerHeight / - 2, camera.orthographic.znear, camera.orthographic.zfar );
if ( camera.name !== undefined ) _camera.name = camera.name;
_camera = new THREE.PerspectiveCamera( THREE.Math.radToDeg( xfov ), aspectRatio, params.znear || 1, params.zfar || 2e6 );
if ( camera.extras ) _camera.userData = camera.extras;
} else if ( camera.type === 'orthographic' ) {
return _camera;
_camera = new THREE.OrthographicCamera( params.xmag / -2, params.xmag / 2, params.ymag / 2, params.ymag / -2, params.znear, params.zfar );
}
if ( camera.name !== undefined ) _camera.name = camera.name;
if ( camera.extras ) _camera.userData = camera.extras;
return _camera;
} );
};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册