Three.js中文网 Three.js中文网
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
Web3D系统课程视频
  • 0.学前说明

  • 1.Vue+Three.js基础

  • 2.场景搭建Three+Blender

    • 1. 3D建模软件搭建3D场景
    • 2. Blender下载、安装、中文界面
    • 3. Blender基本操作:旋转缩放平移
    • 4. Blender编辑、保存网格模型
    • 5. GLTF格式简介(Web3D领域JPG)
    • 6. Blender生成gltf,threejs加载
    • 7. Blender导出gltf设置半透明材质
    • 8. 建模软件与threejs坐标系xyz对应
    • 9. 层级模型、获取模型节点
    • 10. 模型材质共享问题
    • 11. 加载gltf,相机设置(收费站)
    • 12. 练习题-相机参数设置(园区)
    • 13. 加载gltf模型相机.lookAt()设置
    • 3.渲染效果提升(材质光照)

    • 4.渲染性能、模型压缩

    • 5.封装、进度条、切视角

    • js 3D可视化
    • 2.场景搭建Three+Blender
    郭隆邦
    2024-03-12
    目录

    13. 加载gltf模型相机.lookAt()设置

    # 加载gltf场景.lookAt()设置

    下面给大家讲解下,加载gltf场景时候,相机目标观察点的设置问题.lookAt()。

    # .lookAt()

    你希望三维场景中哪个坐标点附近模型渲染到Canvas画布正中间,你就把该位置的坐标点xyz值作为.lookAt()的参数。

    测试不同lookAt参数,渲染效果。

    camera.lookAt(0,0,0);//指向世界坐标原点
    camera.lookAt(-30,0,0);
    camera.lookAt(30,0,0);
    

    注意相机控件OrbitControls会影响lookAt设置,测试时候可以先把OrbitControls代码注释。

    # Blender标记模型位置

    创建一个空物体标记三维场景模型位置。

    创建一个空物体标记三维场景模型位置.jpg

    # OrbitControls影响lookAt()

    注意相机控件OrbitControls会影响lookAt设置,注意手动设置OrbitControls的目标参数。

    设置相机控件OrbitControls.target,然后更新.update(),这时候camera.lookAt(30,0,0)不执行也可以,OrbitControls内部会执行。

    // camera.lookAt(15, 0, 0);
    // 设置相机控件轨道控制器OrbitControls
    const controls = new OrbitControls(camera, renderer.domElement);
    // 相机控件.target属性在OrbitControls.js内部表示相机目标观察点,默认0,0,0
    // console.log('controls.target', controls.target);
    controls.target.set(15, 0, 0);
    controls.update();//update()函数内会执行camera.lookAt(controls.targe)
    

    # OrbitControls改变相机.lookAt观察目标

    通过OrbitControls平移,OrbitControls的.target属性会发生变化,.target属性对应的就是透视投影相机PerspectiveCamera的.lookAt观察目标`。

    const controls = new OrbitControls(camera,renderer.domElement)
    controls.addEventListener('change',function(){
        console.log('camera.position',camera.position);
    })
    
    12. 练习题-相机参数设置(园区)
    1. 光照、环境贴图

    ← 12. 练习题-相机参数设置(园区) 1. 光照、环境贴图→

    Theme by Vdoing | Copyright © 2016-2025 豫ICP备16004767号-2
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式