加载 hdr 图片作为环境背景和环境贴图
加载 hdr 图片作为环境背景和环境贴图
import * as THREE from 'three'
import renderer from '../renderer'
import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader.js'
const scene = new THREE.Scene()
const pmremGenerator = new THREE.PMREMGenerator( renderer )
pmremGenerator.compileEquirectangularShader()
new RGBELoader()
.load('/texture/天空.hdr', function ( texture ) {
const envMap = pmremGenerator.fromEquirectangular( texture ).texture
// scene.background = new THREE.Color(0x111111)
const envIntensity = 1.0
envMap.encoding = THREE.LinearEncoding
envMap.minFilter = THREE.LinearFilter
envMap.magFilter = THREE.LinearFilter
scene.background = envMap
scene.environment = envMap.multiplyScalar(envIntensity)
pmremGenerator.dispose()
})
export default scene
纹理贴图有不同的编码方式和过滤器(Filter)方式。
-
envMap.encoding = THREE.LinearEncoding: 环境贴图的编码方式设置为线性编码。线性编码方式是指贴图颜色值的变化与实际颜色的变化是线性相关的,这对于渲染场景中真实光线的效果很重要。
-
envMap.minFilter = THREE.LinearFilter 和 envMap.magFilter = THREE.LinearFilter: 设置了环境贴图的过滤器方式为线性过滤器。过滤器指定了在纹理被缩放或拉伸时,如何从多个纹理像素中进行插值以产生新的纹理像素。在这种情况下,线性过滤器指定使用线性插值方法,即将多个像素的值进行加权平均。
这些设置可以保证贴图的显示效果更加准确和真实,并减少可能出现的锯齿和失真等问题。
分类:
webgl / threejs
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)