元宇宙虚拟空间的场景构造(二)

前言

该文章主要讲元宇宙虚拟空间的场景构造,基本核心技术点,不多说,直接引入正题。


场景的构造

使用引入的天空模块

this.sky = new Sky(this);

在Sky模块里,有设置对其中的阳光进行不同时间段的光线处理。而天空又是怎么样的呢?人站在一个位置环顾四周,人就是一个球体内的中心点,threejs的摄像机位置就是球体内的中心点,所以Sky模块里面要创建一个球体。

this.skyMesh = new THREE.Mesh(

new THREE.SphereBufferGeometry(1000, 24, 12),

this.skyMaterial

);

当然可以添加天空的材质布置

this.skyMaterial = new THREE.ShaderMaterial({

uniforms: THREE.UniformsUtils.clone(SkyShader.uniforms), fragmentShader: SkyShader.fragmentShader,

vertexShader: SkyShader.vertexShader,

side: THREE.BackSide

});

在一个场景里要有一个阴影的效果,并且从远处看和近处看都不一样

这里首先要对renderer设置开启阴影,类型设置为软阴影,使用库three-csm,设置相机的远平面(距离相机更远时阴影不可见),设置影子的级联数为3,方向光强度为2.5,阴影贴图的分辨率2048,达到逼真的阴影效果。

renderer.shadowMap.enabled = true;

renderer.shadowMap.type = THREE.PCFSoftShadowMap;

this.csm = new CSM({

fov: 80,

far: 250, // maxFar

lightIntensity: 2.5,

cascades: 3,

shadowMapSize: 2048,

camera: world.camera,

parent: world.graphicsWorld,

mode: 'custom',

customSplitsCallback: splitsCallback

});

this.csm.fade = true;

相关推荐
8K超高清27 分钟前
2026科技风口:有哪些前沿场景即将落地?
网络·人工智能·科技·数码相机·计算机视觉
涤生8432 小时前
halcon标定单目相机
数码相机
supermapsupport3 小时前
SuperMap GIS基础产品FAQ集锦(20260112)
webgl·supermap·iserver·idesktopx
_李小白3 小时前
【Android 美颜相机】第三天:初识GPUImageView
android·数码相机
PHOSKEY3 小时前
3D应用丨光子精密解锁多个高难度3D相机拼接检测
数码相机·3d·制造
几道之旅1 天前
ROS2相机技术要点
数码相机
格林威1 天前
印刷电路板阻焊层缺失识别:防止短路风险的 7 个核心策略,附 OpenCV+Halcon 实战代码!
人工智能·数码相机·opencv·机器学习·计算机视觉·视觉检测·工业相机
中达瑞和-高光谱·多光谱1 天前
MAX-S810机载多光谱相机在草地森林覆盖面统计中的应用
数码相机
_李小白1 天前
【Android 美颜相机】第一天:认识Android-GPUImage项目
android·数码相机
刘一说1 天前
腾讯位置服务JavaScript API GL地图组件库深度解析:Vue生态中的地理空间可视化利器
javascript·vue.js·信息可视化·webgl·webgis