三维 计算机图形学

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于图像空间的动态软阴影算法研究目录一、研究背景及意义二、国内外研究进程及现状概述三、研究目标及内容四、研究难点及潜在创新点研究背景及意义一、阴影对于三维图形真实感的重要性二、阴影图像渲染面临的三大挑战:高度真实感、实时性及两者间的矛盾三、商业游戏引擎和建筑视景仿真软件都提供了动态阴影的支持并不断改进国内外研究进程及现状概述一、国外阴影研究(1)图像空间LanceWilliams1978年提出ShadowMap硬阴影Soler提出convolutionshadowmap近似软阴影进一步VSMLVSMPSMPSSM(2)其他ShadowVolume光线追踪辐射度国内外研究进程及现状概述二、国内阴影研究清华大学:基于shadowvolume的阴影翼算法浙江大学、香港中文大学siggraph上发文研究目标及研究内容一、研究目标根据光照衰减函数及深度缓存中的深度值来建立一个能映射到阴影颜色深度表的模型公式,根据映射后的深度值,使用Brich算法对海量深度值进行快速智能分类,实现阴影的层次渐变效果,即软阴影。研究目标及研究内容二、研究内容本文的主要研究内容涉及:图像渲染、阴影映射技术、阴影体技术、基于图像空间的软阴影算法、Birch算法对海量数值型数据的快速智能分类研究目标及研究内容研究内容中的重点:实时阴影映射技术和基于图像空间的软阴影算法是研究重点。因此,对阴影映射进行较为细致的阐述。另外,对几种基于图像空间映射算法的优点和局限性进行了比较,提出基于图像空间的阴影颜色深度值快速智能聚类算法。研究目标及研究内容阴影映射技术(shadowmap):LanceWilliams:CASTINGCURVEDSHADOWSONCURVEDSURFACES核心思想(两次渲染比较):SM进行两遍pass渲染,第一遍pass站在灯光(light)的角度对场景进行渲染,此时打开z-buffer,并RTT到自己创建的一张纹理中,此时纹理中的像素代表的是,以light的角度看过去,相应位置距离light最近的深度,注意这里你要辩证地看,这也同时表示从light中射出的光最远只能打到这个位置了(再往后的就被这个像素遮挡了)。而这张纹理图就是shadowmap;研究目标及研究内容第二遍pass站在视点角度再次对场景渲染,并在光栅化阶段时,对每一个要处理的像素,坐标变换到light坐标系中,并与对应的shadowmap中的像素比大小:如果currentpixelshadowmappixel,说明该像素被挡住了,因此判断这个像素处于阴影中,应该将此像素涂黑;否则,表示它处于光照中,接下来计算它的光照值。对所有的像素进行如此操作,就完成了阴影的绘制。几种基于图像空间映射算法的比较PCF(百分比渐进线性滤波)优点:通过滤波就能产生过渡颜色,同时也起到模糊锯齿的作用。缺点:它的“半影”是通过模糊边缘来模拟,不是真正计算出来的,这样无论灯光离物体有多远、光源面积有多大,它产生的半影范围永远都是固定的。滤波时需要对相邻像素采样,采样本身又是一个费时费力的过程。因此采样的区域越大,效率越低。几种基于图像空间映射算法的比较VSM(方差阴影图):优点:VSM的实际效果好于等于进行了PCF的SM。相比单纯的SM,它实现了软边缘以及消除了锯齿;相比PCF,它的效率大大提升。缺点:光渗现象(lightbleeding),多重遮挡时本应该为阴影的地方却出现了光带。几种基于图像空间映射算法的比较PSSM算法:优点:PSSM算法不需要每帧对场景进行分析便可在整个深度范围产生适度的采样密度缺点:需要进行多个视锥体分割,使用几何近似对深度有影响基于前述算法的思考前述算法对原始的shadowmap算法都有不同程度的改进,从某种程度上解决了反走样和软阴影的显示问题。但是对像素的过度处理会造成效率的明显下降,另外前述大部分算法的阴影模糊处理是一种信息的伪处理,而真实的阴影效果跟诸多场景因素有关,如何把影响阴影效果的场景参数抽象出来,构建出场景参数与阴影颜色深度的映射模型,然后对映射后的值进行快速分类和显示,以实现场景中真实的动态阴影的渐变效果是本研究的关键所在。阴影信息的影响因子1、光源类型2、光照强度及衰减规律3、遮挡物深度,轮廓范围4、光源、遮挡物、投影面的相对位置提取影响因子的原则:只考虑潜在的主要因素,忽视次要因素,简化计算Birch快速智能分类算法BIRCH采用了一种多阶段聚类技术:数据集合的单遍扫描产生一个基本的好簇,一或多遍的额外扫描可以用来进一步(优化)改进聚类质量。它主要包括两个阶段:阶段一:BIRCH扫描数据库,建立一棵存放于内存的初始CF树,它可以看作数据的多层压缩,试图保留数据的内在聚类结构。阶段二:BIRCH采用某个(选定的)聚类算法对CF树的叶节点进行聚类,把稀疏的簇当作离群点删除而把稠密的簇合并为更大的簇。Birch树示意图使用Birch树对阴影信息处理的优势1、BIRCH天生就是为处理大规模的数据集而设计的,它可以在任何给定的内存下运行。大规模场景的动态阴影信息可以归于海量数据范畴,适合BIRCH算法。2、BIRCH算法是对原始数据进行簇状聚类,而渐变的软阴影信息可以对应为[0~1]之间的数值,可以使用BIRCH算法进行0~1之间的簇状分层。3、该算法本身的复杂度仅为O(N),处理数据的效率较高。阴影渲染管线中并行处理的考虑OpenGL1.0渲染管线:阴影渲染管线中并行处理的考虑OpenGL最新渲染管线:可编程GPU的优点1、用户可以编写自己的渲染程序去取代原来的固定渲染流水线,充分发挥程序员主观能动性2、通常一个GPU有多个可编程顶点处理器和可编程片段处理器。支持多遍绘制,大大减少CPU和GPU之间的数据交换,GPU执行命令是并行的,所以在效率上会有较大提高3、使用OPENGL支持的GLSL顶点着色语言进行顶点处理和片段处理,从局部提高程序的效率研究难点及潜在创新点1、阴影信息的影响因子抽取及相关模型建立2、BIRCH树的引入3、制定个性化的渲染管线,关键阶段用GLSL进行优化技术路线概述3DMAX中建立大规模场景→将OpenGL封装成一个可复用类→导入模型→将BRICH算法引入阴影模型→基于可编程GPU的优化实现→最终效果→后期从可复用,灵活可扩展角度对系统进行优化谢谢大家!

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功