Three.js实现浏览器窗口大小改变时的自适应渲染方案

作者:像素猫

时间:2026-10-22

浏览:290

本文介绍如何在Three.js中通过监听window的resize事件实现场景自适应。核心步骤包括更新Camera的aspect比例并调用updateProjectionMatrix,同时调整renderer.setSize以匹配浏览器宽高,确保模型随窗口变动正确显示。

文章目录

前言

Three.js窗口自适应原理与实现

在Web开发中,若未针对浏览器窗口尺寸变化配置场景模型的自适应逻辑,会导致渲染异常。为解决这一问题,本文将详细讲解如何使Three.js场景跟随浏览器宽度和高度的变化进行自适应调整。

实现场景随浏览器大小变动而自适应的关键,在于监听window对象的resize事件,该事件会在浏览器窗口尺寸发生改变时触发。


window.onresize = function(){} 

监听resize事件

可以通过绑定addEventListener方法来注册resize事件监听器。


window.addEventListener("resize",function(){}) 

更新相机与渲染器参数

在成功监听事件后,需要编写具体的回调函数以处理窗口变动后的逻辑。


//窗口变动触发的函数 
function onWindowResize() { 
 
 camera.aspect = window.innerWidth / window.innerHeight; 
 camera.updateProjectionMatrix(); 
 renderer.setSize( window.innerWidth, window.innerHeight ); 
 
} 

上述代码的核心在于更新摄像机的aspect属性以及调用renderer的setSize方法,从而达成预期的自适应效果。

此处引用的代码基于前文示例,不再重复上传完整代码(有需要的读者可参考相关链接),现展示两张示例效果图片。

Three.js窗口自适应原理与实现

上图展示了全屏状态下的显示效果,下图则展示了将浏览器窗口缩小至一半宽度后的显示效果。

Three.js窗口自适应原理与实现

总结

本文介绍了Three.js中实现浏览器窗口自适应的方法,希望能为读者在学习或使用Three.js时提供有价值的参考。如有任何疑问,欢迎留言交流,感谢支持。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章