让我在房间的中心有一些网格(例如球体),里面装满了立方体和一个光源。如何仅使用“标准”(固定)功能在 OpenGL 中快速轻松地进行阴影投射?注意:结果还必须包含立方体和球体阴影。
问问题
1643 次
3 回答
4
如果您可以生成球体的轮廓,那么您可以使用shadow volumes。nVidia 硬件也支持固定功能阴影映射很长一段时间。
阴影体积的缺点是填充率要求非常高。阴影贴图可以更好,但需要额外的通过。
如果您要投影到一个平面上,那么将对象投影到一个平面上可能会更容易。
于 2010-11-21T12:48:54.397 回答
2
没有快速简便的方法。有很多不同的技术,每个都有自己的优点和缺点。您可以查看我在 github 上托管的一个项目,该项目使用非常简单的代码来创建阴影,使用阴影体积技术 (http://iuiz.github.com/VolumeShadow/)。然而,它是用 Java 编写的,但将其移植到任何其他语言应该不难。
创建阴影最重要的方法是所谓的“阴影映射”方法,您可以将场景(将相机放在光源处,指向每个阴影投射对象)渲染到纹理。第二种技术是 shadow voulume 方法(以 Doom3 闻名)。
于 2010-11-21T12:50:11.643 回答