阴影作为增强场景真实性的最重要因素,一直以来都是三维虚拟互动技术的核心研究内容之一。这可以从近几年的acm、siggraphic论文中大量的研究体现出来。本人不才,硕士毕业论文的主体也是有关阴影生成方面的内容。不过,没研究出什么新的东西出来,仅仅是在导师的一个国家级项目中进行二次开发,将各种阴影方法进行了实现、集成,以及一个简单的智能选择算法而已。当然了,其它杂七杂八的东西也做了不少。比如:实时漫游、场景保存、实体点选、操作保存和回放等等。这里简单谈谈。
阴影的生成算法总体来分有两大类:假阴影(fake shadow)和真阴影(real shadow)。假阴影多用于实时生成的、采用局部光照模型的动态场景中。具体分为3种:投射阴影(projected shadow)、变换阴影(shadow map)、影域体阴影(shadow volume)。真阴影通常用于离线渲染的、采用全局光照模型的静态场景中。常用的有2种:光线追踪(ray tracing)、辐射度(radiosity)。当前的三维互动虚拟场景中,常用2者的混合方式来处理。大量的静态背景物件以全局光照的方式离线渲染真阴影并预先保存,动态的、焦点人物和物件以实时生成的假阴影来近似。
在我的开发中,实现了假阴影的三种实现。下面示例图片中,左图为影域体阴影效果,中图为投射体阴影效果,右图为混合阴影效果。
阴影的生成算法总体来分有两大类:假阴影(fake shadow)和真阴影(real shadow)。假阴影多用于实时生成的、采用局部光照模型的动态场景中。具体分为3种:投射阴影(projected shadow)、变换阴影(shadow map)、影域体阴影(shadow volume)。真阴影通常用于离线渲染的、采用全局光照模型的静态场景中。常用的有2种:光线追踪(ray tracing)、辐射度(radiosity)。当前的三维互动虚拟场景中,常用2者的混合方式来处理。大量的静态背景物件以全局光照的方式离线渲染真阴影并预先保存,动态的、焦点人物和物件以实时生成的假阴影来近似。
在我的开发中,实现了假阴影的三种实现。下面示例图片中,左图为影域体阴影效果,中图为投射体阴影效果,右图为混合阴影效果。