ogre阴影.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ogre阴影

动态阴影 主要介绍的是关于Ogre中所支持的“固定功能(Fixed-Function)”的动态阴影。这意味着之后所提及的阴影技术只需要你简单的通过指定场景中物体所使用的技术就可以了。 “Ogre所支持的”时候,就意味着这是Ogre自身所具有的一项功能。当提到“Ogre所不支持的”时候,是说Ogre并没有为你的程序中使用这种技术提供任何相关的细节实现,这时候你可以通过自己所写的着色程序来实现这些高级的技术。 第7课 Ogre阴影 www.C3DN.net 中国3D技术开发者社区 阴影技术 Ogre支持两种主流的动态阴影技术——模板阴影以及纹理阴影——并且这两种阴影技术都分别拥有两个形态:调节(Modulative)和加成(Additive)。 第7课 Ogre阴影 www.C3DN.net 中国3D技术开发者社区 阴影和Ogre的一些相关概念: ·在场景中只能统一使用某一种类型的阴影技术,并且需要在场景渲染之前就配置好它(理想的情况下,在创建场景管理器实例之前就配置好阴影类型)。 ·在装配场景之前需要配置所需阴影技术,这就意味着需要调用场景管理器的SceneManager::setShadowTechnique()方法,并传入SHADOWTYPE_STENCIL_ADDITIVE、SHADOWTYPE_STENCIL_MODULATIVE、SHADOWTYPE_TEXTURE_ADDITIVE或者SHADOWTYPE_TEXTURE_MODULATIVE四个参数中的任意一个。 ·阴影在默认的情况下是禁用的。 第7课 Ogre阴影 www.C3DN.net 中国3D技术开发者社区 阴影和Ogre的一些相关概念: ·阴影的产生和接受可以通过物体的材质来控制;进而你可以单独控制物体上的阴影投射。在阴影技术启用默认的情况下,除了透明和半透明的物体之外,所有物体都是可以产生阴影的,并且你也可以通过对透明和半透明材质的配制而让其产生相应的阴影。 ·由于模板阴影本身的性质,对透明/半透明物体来说阴影只能是完全投射或者不投射的,换句话说只能产生完全的实影或者没有影子;除非使用纹理阴影类型(在默认的情况下是半透明的),否则无法产生半透明的阴影。 ·灯光可以被设置是否能产生阴影。这是可以对每个灯光单独设置的属性。 第7课 Ogre阴影 www.C3DN.net 中国3D技术开发者社区 模板阴影 模板阴影的形状是根据对象的轮廓和给定的灯光位置计算产生。 第7课 Ogre阴影 在Demo_Shadows演示程序中使用调制模板阴影并且启用阴影调试模式 www.C3DN.net 中国3D技术开发者社区 模板阴影 阴影体积 阴影体积会在场景空间中形成一个所谓的模板(Stencil)。所有在这个模板内部物体的像素都会被绘制上阴影,而外面的像素则不会。当阴影体积与某一个物体(例如在图11-4中的地面)相交的时候,模板缓存会被更新(在GPU中的一种缓存,类似深度缓存),这个更新将会让相应的像素被渲染成为在“阴影内部”或者“阴影外部”。 第7课 Ogre阴影 www.C3DN.net 中国3D技术开发者社区 模板阴影 阴影体积 模板阴影技术实现的影子边缘锐利的结果,在影子内部和外部之间形成了一个明显的边缘。这种类型阴影的好处是即使拉得很长也不会失真,但同时意味着阴影的边缘会显得过分明显。 第7课 Ogre阴影 Demo_Shadows演示程序中启用阴影调试,表现了阴影体积与地面物体的相交 www.C3DN.net 中国3D技术开发者社区 模板阴影 模板阴影和GPU程序 当模板阴影结合了可编程顶点着色程序优势的时候,我们可以得到一个无穷远的阴影体积。这个过程对你所编写的GPU顶点程序不会产生任何影响,这是因为产生这个无穷阴影体积的过程是在自动产生阴影的通路中(进一步说,在这个通路之后不会再进行任何使用和操作)。 然而,这样做同时也带来相应的问题。为了产生一个无穷的阴影体积,模板体积的产生是一个完全顶点程序GPU的执行过程。这样就没有很方便的办法来跟随GPU的顶点程序变形来调整阴影体积的形状。前面的章节中我们提到过,对于硬件蒙皮技术的顶点动画来说,Ogre可以在软件层面备份所有的顶点蒙皮数据用以跟踪硬件中的顶点数据(虽然简单,但是必要)。不过对于顶点程序的其他算法而言,Ogre无法得知具体的顶点变换结果。换句话说,如果你使用了自定义的顶点程序变换模型,你就必须忍耐在执行模板阴影的时候无法正确跟踪模型的变化,进而无法产生精确的几何体轮廓。这是一个让你使用纹理阴影很重要的原因。 第7课 Ogre阴影 www.C3DN.net 中国3D技术开发者社区 模板阴影 模板阴影优化 ·阴影体积不会受到实心几何体的阻挡,这就意味着你在阻挡物体(假设这个物体本身并不投影

文档评论(0)

taotao0c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档