扫码阅读
手机扫码阅读
【39】three.js实战—灯光与阴影的关系与设置
35 2024-09-07
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
文章来源:
小南瓜开发平台
扫码关注公众号
本文介绍了如何在一个Vue组件中集成Three.js来创建一个3D场景。首先,通过导入必要的Three.js模块、轨道控制器、动画库gsap和dat.gui库,来准备开发环境。
在Vue组件的mounted
生命周期钩子中,首先创建了一个Three.js场景,并设置了一个透视相机,包括视野角度、长宽比以及近端面和远端面距离。相机被放置在指定位置并添加到场景中。然后,使用CubeTextureLoader加载了环境贴图,并创建了一个球体和平面几何体,这些物体使用标准材质来支持光照和阴影效果。
场景中添加了环境光和平行光源来实现光照效果,平行光源还被设置为投射阴影。然后初始化了WebGL渲染器,并设置其尺寸和开启阴影贴图。渲染器的canvas元素被添加到DOM中。
为了交互性,创建了轨道控制器来允许用户控制相机视角,并且通过监听双击事件来实现全屏和退出全屏的功能。同时,监听窗口尺寸变化以更新相机投影矩阵和渲染器尺寸,确保3D场景正确响应屏幕调整。
最后,在methods
中定义了renders
方法,它负责更新控制器和通过渲染器渲染场景。此方法在动画帧回调中不断被调用,以实现动态渲染。代码中注意到了requestAnimationFrame
的正确使用,避免了潜在的调用栈溢出问题。
整个组件的样式通过CSS设置,确保渲染容器占据整个视口,并且移除了默认的边距和内填充。
想要了解更多内容?
文章来源:
小南瓜开发平台
扫码关注公众号
小南瓜开发平台的其他文章
【07】three进阶——如何创建VR内容(How to create VR content)
Three.js是大多数开发者首次接触的WebGL 3D库,Threejs库的出现解决了底层的渲染细节和复杂的数据结构,可以支持如一个房间级别,或一个楼层级别的渲染,或符合特殊要求的大量同类模型的渲染。
大数据&常用的gp数据库全称是什么?什么业务场景需要用到gp数据库
在数据时代高速发展的今天,高效处理低延迟流式数据的方法越来越受到关注,也成为了生活中密不可分的重要组成部分。gp数据库引起了大家的广泛关注,那么常用的gp数据库全称是什么呢?流数据处理能力现在已经成为了数据平台计算实力的一个重要指标。
互联网是如何安全将您的消息送达给对方?
加强网络安全意识,从自我做起!在生活中,我们经常使用到互联网,例如微信发送聊天记录、发送文档文件。这些数据在互联网中进行传输时,都会进行加密传输,到达对方电脑后,再进行解密成人类可以理解的语言。从而保障了数据的安全。
云计算+AI的2024发展趋势
随着技术的快速发展,全球云计算正在经历重大的变革。主要趋势包括混合云和多云架构的广泛采用、云策略的重要性日益增强、以及新兴技术如人工智能(AI)、机器学习(ML)和区块链的整合。
【03】three.js画线和创建文字
假设业务场景只需要画一个圆或者画一条线,而不是一个线框模型,或者说不是一个Mesh(网格)。 那么第一步我们要做的,是设置好renderer(渲染器)、scene(场景)和camera(相机)
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线