首页 > 分享 > 1. 光照、环境贴图

1. 光照、环境贴图

# 光照、环境贴图

本节课给大家介绍下光照、环境贴图对gltf模型渲染的影响。

# 回顾:光照

前面给大家讲解课程时候说过,需要光照的材质,如果没有任何光源,就会漆黑一片。

平行光DirectionalLight相当于近似模拟太阳光照耀效果,你旋转三维场景可以发现,有光照的一面更亮,没有光照的偏向黑色。

// 平行光 const directionalLight = new THREE.DirectionalLight(0xffffff,3.0); directionalLight.position.set(80, 100, 50); scene.add(directionalLight);

光照强度增大点,你会发现场景更明亮一些。

// 平行光 directionalLight.intensity = 10.0;

你可以隐藏前面gltf加载时候的平行光进行设置,观察下。

先删除平行光代码,这时候一片漆黑,接下来给大家设置通过设置环境贴图,照亮场景

# 立方体环境贴图

所谓立方体环境贴图,就是一个模型周围的环境的图像,比如人在户外,人的上下左右前后分别拍摄一张照片,得到3D空间中6个角度方向的照片。

这6张照片就构成了一个立方体环境贴图。

# 立方体纹理加载器CubeTextureLoader

下面6张图片放在vue项目的public/envMap/文件中。

// 加载环境贴图 // 加载周围环境6个方向贴图 // 上下左右前后6张贴图构成一个立方体空间 // 'px.jpg', 'nx.jpg':x轴正方向、负方向贴图 p:正positive n:负negative // 'py.jpg', 'ny.jpg':y轴贴图 // 'pz.jpg', 'nz.jpg':z轴贴图 const textureCube = new THREE.CubeTextureLoader() .setPath('./envMap/') .load(['px.jpg', 'nx.jpg', 'py.jpg', 'ny.jpg', 'pz.jpg', 'nz.jpg']); // CubeTexture表示立方体纹理对象

# 设置材质环境贴图属性.envMap

递归遍历给每一个Mesh的材质设置环境贴图。

给三维场景mesh的材质设置环境贴图,这时候,你会原来一片黑色的gltf模型,可以正常预览了。

loader.load("../收费站.glb", function (gltf) { // 递归遍历批量设置环境贴图 gltf.scene.traverse(function (obj) { if (obj.isMesh) { //判断是否是网格模型 obj.material.envMap = textureCube; //设置环境贴图 } }); })

物体与物体之间,其实会相互反射光线,彼此产生影响。这种影响,可以用环境贴图来近似模拟。环境贴图作用其实就是模拟周围环境的光照效果,这个时候,你虽然不设置任何光源,仅仅设置.envMap也能看到物体表面的颜色效果。

# 环境贴图反射率.envMapIntensity

材质的.envMapIntensity属性主要用来设置模型表面反射周围环境贴图的能力,或者说环境贴图对模型表面的影响能力。具体说.envMapIntensity相当于环境贴图的系数,环境贴图像素值乘以该系数后,在用于影响模型表面。

// envMapIntensity:控制环境贴图对mesh表面影响程度 //默认值1, 设置为0.0,相当于没有环境贴图 obj.material.envMapIntensity = 1.0;

# 给三维场景设置环境贴图

这样的话,相当于场景中每个Mesh设置envMap,不用递归遍历设置所有mesh材质的.envMap属性。

scene.environment = textureCube;

# 总结

如果你想模拟太阳光照射效果,你可以设置平行光DirectionalLight。

实际生活,除了太阳光影响物体,物体与物体之间,其实相互反射光线,彼此产生影响。这种影响,可以用环境贴图来近似模拟。一般做Web3D可视化项目,通常要设置环境贴图,通过环境贴图模拟物体周围相互影响的光照。

相关知识

5. 工厂光源(环境贴图和环境光)
环境光照
Unity 室内光照
光照常用设置&经验总结
学3dsmax就学精髓3——光线的贴图
光照与氛围:虚幻5专业自然环境打光指南
UE4搭建标准光照环境
室外光照和场景设置
光照策略
(HDRP)全局光照技术初探(一)

网址: 1. 光照、环境贴图 https://m.huajiangbk.com/newsview768289.html

所属分类:花卉
上一篇: 蓝莓生长环境条件
下一篇: VRay光照系统的使用及参数设置