首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL:渲染超过8个灯光,如何渲染?

OpenGL:渲染超过8个灯光,如何渲染?
EN

Stack Overflow用户
提问于 2010-01-03 08:17:49
回答 2查看 6.9K关注 0票数 6

如何在OpenGL中实现8个以上的灯光?

我想高效地渲染无限数量的灯光。

那么,做这件事的首选方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-03 08:24:55

延迟着色。

简而言之,在没有任何灯光的情况下渲染场景。相反,您可以将法线和世界位置与纹理像素一起存储到多个帧缓冲区(所谓的渲染目标)中。如果您使用多个呈现目标扩展,您甚至可以在一次遍历中完成此操作。

准备好缓冲区后,就可以开始渲染一组全屏四边形,每个四边形都有一个像素着色器程序,该程序读取法线和位置并计算一个或多个光源的灯光。

由于灯光是相加的,您可以渲染任意数量的全屏四边形,并为任意数量的光源累积灯光。

最后一步是在灯光和未照明的纹理帧缓冲区之间进行合成。

这或多或少是最先进的方法。然而,在这样的系统中使用雾化和透明度是一个挑战。

票数 15
EN

Stack Overflow用户

发布于 2010-01-03 08:20:17

OpenGL Lights.是一个过于简单的系统,据我所知,它已经在弃用列表中。您应该通过编写shader来自己处理灯光。看看here吧。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1993431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档