首页 > 其他分享 >阴影和软阴影

阴影和软阴影

时间:2024-01-17 21:47:27浏览次数:12  
标签:场景 渲染 光源 入射光 阴影 深度

1. 公式化描述

渲染方程:说明了某个表面点的所有方向的入射光对于某个方向的出射光产生的贡献,贡献大小与入射光强度,接受角度,平面表面性质有关。

描述阴影的渲染方程:在入射光中加入了可见项(Visibility)(是否被环境物体遮挡,从而形成阴影)。由于需要在积分中计算每束微小入射光的可见性大小,因此计算量很大。

下面的约等式可以将可见项(Visibility)从积分内部提取出来:

当f(x)很平坦,变化很小时(极端情况为常量),式子成立;右半左边部分即为f(x)在区间的均值。

使用约等式,渲染等式近似为:

红框部分可理解为:该点的各个入射方向上的可见性的均值,即总体的可见性或阴影程度。

因此阴影计算和光照计算两部分相互分开,减小了算法实现的复杂度和计算的复杂性。

2 实现

硬阴影

两段式渲染方法

  • pass 1:

从光源的角度渲染场景,即在光源的位置建立一个虚拟摄像机,看向场景,然后使用特殊的shader渲染场景物体,将场景中的深度记录到一个单独的frameBuffer的深度纹理中。

  • pass 2:

从摄像机角度正常的渲染场景,渲染时计算场景中某个点在光源坐标系中的深度,然后与pass1中记录的对应深度对比,深度更大的话说明在在它与光源之间有其他物体,该点处需要显示阴影。

存在问题

Self occulusion

todo

Aliasing

todo

软阴影

软阴影于硬阴影对比:

光源存在体积,有的地方只接受到部分光源,因此形成过渡。

标签:场景,渲染,光源,入射光,阴影,深度
From: https://www.cnblogs.com/bluebean/p/17971215

相关文章

  • pcss 软阴影
    PCFPercentageCloserFiltering:PCF是一种用于阴影反锯齿的方法,本身不是软阴影方法。算法流程说明:Performmultiple(e.g.7x7)depthcomparisonsforeachfragmentThen,averagesresultsofcomparisonse.g.forpointPonthefloor,compareitsdepthwithall......
  • 去掉bootstrap4自带的input输入框半透明阴影
    bootstrap 输入框等输入时会自带蓝色阴影效果,有时候我们并不需要。button同理查看bootstrap.css代码,搜索focus,找到相关内容。所以我们再写css,把它原来的覆盖掉就可以啦/*去掉bootstrap自带的input输入框半透明阴影*/.form-control:focus{ box-shadow:none;}......
  • [AHK2] 为toolwindow窗口添加阴影效果
    如下示例g:=Gui('-Caption+Border');或包含+ToolWindowg.SetFont('s13','consolas')g.AddText('c4c071d',data)g.BackColor:='f6eeda'g.Show('x100y50')WinSetTransColor('white......
  • 滚动阴影解决方案
    1.backgroud,限制高度,加overflow,codeopen,.g-scroll{top:-1px;position:relative;height:500px;overflow-y:scroll;overflow-x:hidden;background:linear-gradient(#fff,transparent)top/100%100px,radial-grad......
  • 【Windows】微软自带的系统阴影副本(VSS)
    学习就是在生活的方方面面!在前两天和我的老哥的一次闲聊中,老哥介绍了Windows系统的NTFS磁盘自带的,类似于快照的系统,VSS于是我就开始了学习! 1.什么是VSSVSS是微软公司的一种技术,全称为VolumeShadowCopyService(卷影复制服务)。VSS是Windows操作系统中的一个功能,用于创建文......
  • css实现元素四周阴影
    首先确定的是需要使用box-shadow这一属性语法如下:box-shadow:h-shadowv-shadowblurspreadcolorinset;h-shadow:表示水平方向上的阴影偏移量,必须指明,可以是正数、负数、0,如果为正数左方有阴影,如果为负数右方有阴影,如果为0它位于元素的正中间。v-shadow:表示垂直方向上的阴影偏移......
  • box-shadow内阴影实现各种效果收集
    1.月牙    详见一步步打造自己的纯CSS单标签图标库.moon{display:inline-block;height:1.5em;width:1.5em;box-shadow:inset-.4em00;border-radius:2em;transform:rotate(20deg);}2.向内填充动画  详见SVG描边动画(......
  • 纯CSS实现炫酷文本阴影效果
    如图所示,这是一个文本阴影效果,阴影有多个颜色,鼠标悬停时文本阴影效果消失,文本回到正常的效果。让我们逐步分解代码,看看如何使用纯CSS实现这个效果的。基于以上动图可以分析出以下是本次实现的主要几个功能点:文本有多个颜色的阴影的效果文本有空心镂空的效果鼠标悬停时文本回......
  • 11月12日基础的网页设计以及阴影的设计box-shadow属性
    目录基础的网页设计html的代码css的代码阴影效果添加基础的网页设计html的代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>今天网页</title><linkrel="stylesheet"href="样式.css"......
  • 11月12日基础的网页设计以及阴影的设计box-shadow属性
    目录基础的网页设计html的代码css的代码基础的网页设计html的代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>今天网页</title><linkrel="stylesheet"href="样式.css">&......