阴影映射、色调映射
阴影映射shadowMap
const renderer = new THREE.WebGLRenderer({ alpha: true })
`
阴影映射:
用于,计算物体投射到其他物体上阴影的技术,
阴影映射,通过,在场景中,从光源的视角渲染一次场景(深度测试)来工作,从而确定哪些部分被其他物体遮挡,进而生成阴影。`
renderer.shadowMap.enabled = true
【阴影映射的类型】:`shadowMap.type`
`THREE.BasicShadowMap`:默认,最基本的阴影映射类型,
在性能和阴影质量之间提供了一个平衡,适用于大多数应用场景,
但如果需要更高的阴影质量,可能需要考虑其他选项。
`THREE.PCFShadowMap`:百分比接近过滤阴影映射
此类型,使用百分比接近过滤(Percentage Closer Filtering, PCF)来减少阴影的锯齿(aliasing)效应,从而提高阴影的质量。
不过,它会稍微影响渲染性能。
`THREE.PCFSoftShadowMap`:软百分比接近过滤阴影映射
与 `PCFShadowMap` 类似,但是,它会产生更软的阴影边缘,让效果更自然,
不过,它会进一步影响渲染性能。
`THREE.VSMShadowMap`:方差阴影映射
此类型,通过计算每个阴影映射像素的方差来工作,能够产生更平滑、更自然的阴影边缘,尤其是在阴影的软边部分,
不过,它对性能要求更高,并且需要更精细的调整以达到最佳效果。
色调映射toneMapping
`
色调映射,用于,控制场景的色调映射方式,
色调映射,是一种将高动态范围(HDR)颜色值,映射到,低动态范围(LDR)显示设备(如:大多数计算机显示器)上的技术,
有助于,模拟真实世界的光照效果,
避免过曝(太亮)或欠曝(太暗)的问题。`
`THREE.LinearToneMapping`:线性色调映射,
不对HDR颜色值进行特殊处理,直接映射到LDR范围,这可能会导致过曝或欠曝的问题。
`THREE.ReinhardToneMapping`:Reinhard色调映射,
通过 `Reinhard函数` 对HDR颜色值进行压缩,以更自然地映射到LDR范围,
有助于减少过曝,
但是,可能不如其他方法自然。
`THREE.CineonToneMapping`:Cineon色调映射,
使用`Cineon对数曲线`进行压缩,
这种方法在某些电影风格的效果中很有用,但可能不适合所有场景。
`THREE.ACESFilmicToneMapping`:ACES Filmic色调映射,
基于电影工业中广泛使用的ACES(Academy Color Encoding System)标准,
提供了非常自然且接近电影效果的色调映射,能够很好地处理高光和阴影,同时保持颜色的丰富性和细节。
色调映射曝光度
`renderer.toneMappingExposure`:用于,调整色调映射的曝光度。
通过改变这个值,可以控制场景的整体亮度,
`较低的值`,会使场景变暗,
`较高的值`,会使场景变亮,
标签:场景,映射,THREE,阴影,LDR,色调,js
From: https://blog.csdn.net/pig_ning/article/details/142098951