相关疑难解决方法(0)

如何使相机适合对象

使用three.js我有以下内容.

  • 包含多个Object3D实例的场景
  • 几个预定义的摄像头Vector3位置
  • 如果屏幕调整大小,画布的动态宽度/高度
  • 用户可以选择一个对象(从上面)
  • 用户可以选择摄像机位置(从上方)

给定正在查看的对象和摄像机位置,他们选择如何计算最终摄像机位置以"最佳地适应"屏幕上的对象?

如果在某些屏幕上"按原样"使用摄像机位置,则对象会在我的视口边缘流血,而其他位置则显得较小.我相信可以将物体安装到相机平截头体上,但却找不到合适的物体.

javascript three.js

36
推荐指数
5
解决办法
3万
查看次数

使用Projection将World坐标转换为Three.js中的Screen坐标

有几个优秀的堆栈问题(1,2)关于three.js所unprojecting,那就是如何转换(X,Y)鼠标在浏览器中的(X,Y,Z)坐标three.js所帆布空间坐标.他们大多遵循这种模式:

    var elem = renderer.domElement, 
        boundingRect = elem.getBoundingClientRect(),
        x = (event.clientX - boundingRect.left) * (elem.width / boundingRect.width),
        y = (event.clientY - boundingRect.top) * (elem.height / boundingRect.height);

    var vector = new THREE.Vector3( 
        ( x / WIDTH ) * 2 - 1, 
        - ( y / HEIGHT ) * 2 + 1, 
        0.5 
    );

    projector.unprojectVector( vector, camera );
    var ray = new THREE.Ray( camera.position, vector.subSelf( camera.position ).normalize() );
    var intersects = ray.intersectObjects( scene.children );
Run Code Online (Sandbox Code Playgroud)

我一直试图反过来 - 而不是从"屏幕到世界"空间,从"世界到屏幕"空间.如果我知道Three.js中对象的位置,我该如何确定它在屏幕上的位置?

似乎没有任何已发布的解决方案来解决此问题. …

javascript 3d three.js

31
推荐指数
3
解决办法
3万
查看次数

THREE.JS:在屏幕上获取相机和物体位置的物体尺寸

我是3D编程的新手,我开始用Three.JS从WebGL开始探索3D世界.

我想在更改camera.position.z和对象的"Z"位置时预先确定对象大小.

例如:我有一个大小为100x100x100的立方体网格.

cube = new THREE.Mesh(
        new THREE.CubeGeometry(100, 100, 100, 1,1,1, materials),     
        new THREE.MeshFaceMaterial()
    );
Run Code Online (Sandbox Code Playgroud)

和纵横比为1.8311874的凸轮

camera = new THREE.PerspectiveCamera( 45, aspect_ratio, 1, 30000 );
Run Code Online (Sandbox Code Playgroud)

我想知道屏幕上多维数据集对象的大小(2D宽度和高度),

camera.position.z = 750;
cube.position.z = 500;
Run Code Online (Sandbox Code Playgroud)

有没有办法找到它/预先确定它?

three.js

19
推荐指数
1
解决办法
1万
查看次数

Three.js - 视图宽度

有没有办法找出场景渲染部分的宽度?

例如,如果我们有一个宽度为100的网格,但是使用一定级别的缩放进行渲染...如何计算在屏幕中渲染的网格部分的宽度?

javascript three.js

17
推荐指数
1
解决办法
1万
查看次数

标签 统计

three.js ×4

javascript ×3

3d ×1