论文部分内容阅读
阴影在三维虚拟场景中扮演着重要的角色。首先,阴影可以帮助我们理解复杂接收体的几何信息;其次,阴影可以帮助我们理解三维空间中物体间的位置和大小关系;最后,阴影有助于我们理解复杂遮挡物的几何形状。因此,如何生成实时而真实的阴影对于三维虚拟场景至关重要。随着计算机图形学的发展,人们对计算机生成图形的真实性要求逐渐提高,此时,软阴影应运而生。软阴影在真实感方面的作用毋庸质疑,但也带来一个新的挑战——实时性。于是,计算机图形界都在思索如何在保持实时性的前提下提高图形真实感?从现有的软阴影生成算法来看,改进的策略众多,但是还是存在不少问题,有的算法不能形成自阴影,有的算法受到了遮挡体和接收体的类型的限制,有的算法忽略光源的大小和形状,有的只是形成了半影的内半影,或者外半影等等。随着计算机图形处理器(GPU)的出现,各硬件厂商也纷纷在其图形处理器中加入了对阴影生成的直接支持。以便生成更为生动,逼真的场景。这一切,为三维虚拟场景中生成高质量的阴影提供了更加广阔的研究空问。阴影体算法在处理大规模场景问题时计算量非常庞大,降低了算法执行效率,达不到实时性的要求。而阴影映射算法虽然实时性较阴影体算法好,可在真实感方面不尽如人意,因为其生成的是硬阴影。针对三维图形学中实时阴影绘制中的实时性和真实感这一矛盾,本文提出了一种基于膨胀腐蚀的伪软影生成算法。在不降低帧率的前提下对经典阴影映射算法进行改进,仍然采用两遍渲染,但与经典阴影映射算法不同的是,我们在第二遍渲染前对生成的阴影图先进行向外膨胀、向内腐蚀操作,从而得到一幅新的阴影图,然后再对场景渲染。另外,为了提高算法实时性,我们充分利用了可编程图形处理器的并行计算能力,探索加速方案,提高GPU执行效率,进而增强算法实时性。经实验验证分析,本文提出的基于膨胀腐蚀的伪软影生成算法在不降低帧率的前提下,可以生产真实感较强的伪软阴影,且本算法具有一定反走样功能。虽然该方法不是基于物理的精确计算,只是对软阴影进行模拟生成真实感较强的伪软阴影,但因其在真实感和实时性这一矛盾中探寻一个理想平衡点,可以应用于大规模实时动态场景生成软阴影,尤其是对于不能进行预计算的动态变形体。从而有其广泛应用前景。