gpt4 book ai didi

c++ - 如何渲染到不同的层,然后将它们与 OpenGL 组合在一起?

转载 作者:太空狗 更新时间:2023-10-29 20:44:37 24 4
gpt4 key购买 nike

我正在渲染多个层,这些层不能只在一个帧缓冲区上渲染,因为修改会影响它下面的所有其他层。

我怎样才能以这样一种方式分别渲染这些层,以便将它们组合成一个最终层?这些层将以透明方式呈现,因此在组合它们时,它们将相应地混合到下面的所有层。

我目前正在使用 FBO 将它们全部渲染到一层中,但正如我上面所说,当最顶层也影响所有底层时,它不会很好地工作。

那么我怎样才能尽可能有效地将两个(或更多?(无论哪种方式更快))FBO(或 FBO 的一些更好的方法?)组合在一起?目前,我可以一个一个地渲染它们,将它们放入我的 RAM 中,然后我自己将它们逐个像素地组合起来,但这似乎是一种缓慢的方法。

最快的方法是什么?

最佳答案

使用二维纹理数组。数组的每一层都是一个渲染层。

将每一层渲染到它自己的颜色附件纹理层(你可以随时切换FBO颜色附件),使用glFramebufferTexture3D你可以选择目标层。

然后在片段着色器中根据需要组合二维数组纹理的层。

您还可以通过将不同的纹理层绑定(bind)到不同的渲染目标来使用多渲染目标。

关于c++ - 如何渲染到不同的层,然后将它们与 OpenGL 组合在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12816874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com