首页 > 其他分享 >3.js - 阴影映射、色调映射(曝光度)

3.js - 阴影映射、色调映射(曝光度)

时间:2024-09-10 14:54:23浏览次数:10  
标签:场景 映射 THREE 阴影 LDR 色调 js

阴影映射、色调映射

阴影映射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

相关文章