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

前言

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


场景的构造

使用引入的天空模块

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;

相关推荐
V言微语2 小时前
2.5 C#视觉程序开发实例1----CamManager实现模拟相机采集图片
开发语言·数码相机·c#
dc爱傲雪和技术13 小时前
相机参数与图像处理技术解析
图像处理·人工智能·数码相机
JessieHaha14 小时前
Unity2019.4.5 首页背景图和背景色WebGL
unity·webgl
从懒虫到爬虫18 小时前
单目相机减速带检测以及测距
数码相机·单目相机·减速带识别
桦树无泪21 小时前
【文献解析】一种像素级的激光雷达相机配准方法
数码相机
OhBonsai1 天前
2D平面画出3D世界的Shader技术RayMarching的基本思路介绍
前端·webgl·计算机图形学
分享者花花1 天前
如何从相机的存储卡中恢复原始照片
windows·数码相机·macos·ios·智能手机·电脑·iphone
十年一梦实验室2 天前
【C++】相机标定源码笔记- 标定工具库测试
笔记·数码相机
江畔柳前堤2 天前
CV01_相机成像原理与坐标系之间的转换
人工智能·深度学习·数码相机·机器学习·计算机视觉·lstm
qq_526099132 天前
为什么要在成像应用中使用图像采集卡?
人工智能·数码相机·计算机视觉