全屏

Three.js 全屏适配效果 | 三维可视化 / AI 提示词
📋 AI 提示词
prompt
1
使用 Three.js 实现全屏适配,监听窗口大小变化并更新渲染器和相机参数。
🖼️ 效果预览
🎮 案例演示
效果描述
这是一个展示如何实现全屏适配的示例,包括监听窗口大小变化和更新渲染器、相机参数。
效果特性
- 全屏渲染:渲染器全屏显示
- 窗口监听:监听窗口大小变化
- 渲染器更新:更新渲染器尺寸
- 相机更新:更新相机宽高比
- 投影矩阵:更新相机投影矩阵
- 自适应布局:自适应窗口大小
核心参数
| 参数 | 值 | 说明 |
|---|---|---|
| 几何体大小 | 10, 60, 100 | XYZ 三方向大小 |
| 材质颜色 | 0xff0000 | 红色 |
| 坐标轴大小 | 150 | AxesHelper 大小 |
| 相机位置 | (200, 200, 200) | 相机位置 |
| 观察位置 | (0, 10, 0) | 相机观察点 |
核心代码解析
创建场景和模型
javascript
1
2
3
4
5
6
const scene = new THREE.Scene();
const geometry = new THREE.BoxGeometry(10, 60, 100);
const material = new THREE.MeshBasicMaterial({ color: 0xff0000 });
const mesh = new THREE.Mesh(geometry, material);
mesh.position.set(0, 10, 0);
scene.add(mesh);
创建渲染器
javascript
1
2
3
4
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.render(scene, camera);
document.body.appendChild(renderer.domElement);
窗口大小变化监听
javascript
1
2
3
4
5
6
7
8
9
10
window.onresize = function () {
// 重置渲染器输出画布canvas尺寸
renderer.setSize(window.innerWidth, window.innerHeight);
// 全屏情况下:设置观察范围长宽比aspect为窗口宽高比
camera.aspect = window.innerWidth / window.innerHeight;
// 渲染器执行render方法的时候会读取相机对象的投影矩阵属性projectionMatrix
// 但是不会每渲染一帧,就通过相机的属性计算投影矩阵(节约计算资源)
// 如果相机的一些属性发生了变化,需要执行updateProjectionMatrix ()方法更新相机的投影矩阵
camera.updateProjectionMatrix();
};
技术亮点
- 全屏适配:实现全屏渲染
- 窗口监听:监听窗口大小变化
- 渲染器更新:更新渲染器尺寸
- 相机更新:更新相机宽高比
- 投影矩阵:更新相机投影矩阵
调试技巧
- 窗口大小:调整窗口大小测试适配
- 宽高比:确保宽高比正确
- 投影矩阵:确保投影矩阵正确更新
- 渲染器尺寸:确保渲染器尺寸正确
- 相机参数:确保相机参数正确
扩展方向
- 动画循环:添加动画循环
- 控制器:添加轨道控制器
- 光源:添加光源
- 多个模型:添加多个模型
- 性能优化:优化渲染性能
本文档由 ThreeLab 编辑整理,如需转载,请注明出处。








京公网安备 11010502038735号
💬 评论区
评论功能即将上线,敬请期待!