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

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

时间:2024-09-10 14:54:23浏览次数:15  
标签:场景 映射 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

相关文章

  • 推荐一款好用的golang修复无效json的库:JSONRepair
    简单来说,就是可以将错误格式(非标准)的json修正,如下图所示: 我的json明显不是标准的json格式,是不能被解析的: 但是JSONRepair库也能修复。 github地址:https://github.com/kaptinlin/jsonrepair使用也非常简单:1、安装:gogetgithub.com/kaptinlin/jsonrepair2......
  • js中【异步编程】超详细解读,看这一篇就够了
    一、JavaScript异步编程概述JavaScript是一门单线程语言,这意味着它同一时间只能执行一个任务。在现代Web开发中,异步编程变得尤为重要,因为许多任务(如网络请求、文件读取、定时器等)需要大量时间,如果使用同步编程模型,这些任务会阻塞整个线程,导致页面或程序卡顿。为了解决这个......
  • 【整理】【java开发】JavaWeb之JSP、Cookie、Session(一)
    一、JSP介绍及原理1.1JSP简介1.2JSP简单入门1.3JSP原理介绍二、JSP脚本2.1JSP脚本形式2.2JSPEL表达式2.3JSPJSTL标签三、会话跟踪技术3.1Cookie3.2Session原创0xNvyao安全随笔声明请勿利用本公众号文章内的相关......
  • js方法-格式化时间
    /**************************************时间格式化处理************************************/functiondateFtt(fmt,date)//fmt-例如'yyyy-mm-ddhh:ii:ss'{varo={"m+":date.getMonth()+1,//月份"d+":date.getDate(),//日......
  • 【开源免费】基于SpringBoot+Vue.JS课程作业管理系统(JAVA毕业设计)
    本文项目编号T023,文末自助获取源码\color{red}{T023,文末自助获取源码}......
  • js制作省与市地区级联,使用select标签。(选择不同的省,加载不同的市)
    数据定义:用一个对象 data 存储省和市的信息。省份选择:通过遍历 data 对象,将省份添加到第一个 <select> 元素中。城市更新:当选择省份时,调用 updateCities 函数,更新城市下拉列表。清空之前的城市选项,然后根据选中的省份更新城市列表。<!DOCTYPEhtml><htmllang="en">......
  • 基于nodejs+vue非结构化数据[程序+论文+开题] 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,数据量呈爆炸性增长,其中非结构化数据占据了绝大部分比例。非结构化数据,如文本、图像、音频、视频等,因其形式多样、内容丰富,在企业决......
  • 基于springboot+vue.js的网吧管理系统附带文章源码部署视频讲解等
    文章目录前言详细视频演示具体实现截图核心技术介绍后端框架SpringBoot前端框架Vue持久层框架MyBaits为什么选择我代码参考数据库参考测试用例参考源码获取前言......