"自阴影"是描述物体的一个部分在其自身上投射阴影的术语。自阴影的例子包括当光源来自上方时,人的鼻子投射到脸部或上唇上的阴影,或椅子座位投射在椅子腿上的阴影。当这个术语用于计算机图形学,特别是计算机图形编程时,它...
"自阴影"是描述物体的一个部分在其自身上投射阴影的术语。自阴影的例子包括当光源来自上方时,人的鼻子投射到脸部或上唇上的阴影,或椅子座位投射在椅子腿上的阴影。当这个术语用于计算机图形学,特别是计算机图形编程时,它指的是场景的三维(3D)对象投射到自身上的阴影,或者由动态对象投射到自身和周围对象上的阴影。实时三维计算机图形编程的本质导致许多应用程序使用技术,这些技术通常会消除渲染自身阴影的可能性,而有利于其他优化,尽管随着计算机速度和功能的提高,实时自阴影方法变得越来越容易使用。有几种方法可以渲染实时自阴影对象,但硬件限制通常会产生一些缺点,例如阴影不准确、带有人工硬边的阴影,或者在显卡上渲染速度非常慢的场景。

自阴影是指由场景投射的阴影;当谈到自阴影时,有一个区别是实时图形中静态对象和动态对象之间的区别。静态对象是场景中不移动的3D对象,其几何结构在整个过程中没有发生变化另一方面,动态对象是一个不以任何方式直接附着在场景上的对象,并且在每一帧之间都可能不同在大多数情况下,大多数静态对象和非实时场景都会进行自我阴影,这可能是因为渲染引擎或其他可以使用的图形技巧。

在旧的显卡上,自呈现可能会缓慢。
一些用于渲染实时3D图形的优化使动态自阴影的实现变得困难。一些示例包括只对静态背景应用照明效果的图形引擎,忽略动态对象(如场景中的角色)或仅将对象视为轮廓的引擎,随着图形处理器和计算机的增加,新技术允许自阴影物体出现在实时场景中,有一些限制和折衷。
阴影体积是在3D场景中实现自阴影的一种方法。这种方法本质上是在投射阴影的场景中创建占据封闭体积的3D对象,允许渲染器或着色器对阴影体积内是否有任何点进行测试,以确定如何进行它是亮的。其他方法创建阴影贴图,或顶点位置的近似阴影,以创建不一定遵循边保真度的非常漫反射阴影。
几乎所有的自阴影方法都必须交换速度或质量以获得可接受的结果。使用fast低分辨率或模糊技术,可能会使某些自阴影看起来错误或不合适。当使用的算法每帧需要太多开销或试图计算阴影投影过于精确时,就会出现速度问题虽然没有一个标准的自阴影生成算法,但是一些显卡包含了不同方法的本机加速,可以提高某些技术的速度。