gpt4 book ai didi

opengl - 什么是渲染 channel ?

转载 作者:行者123 更新时间:2023-12-03 21:43:56 25 4
gpt4 key购买 nike

我目前正在尝试学习使用统一缓冲区和实例化渲染。
我知道两者的概念,但在每个教程中我都读到了术语“renderpass”或“draw-call”。
有人可以向我解释这在编程术语中的含义吗?
是不是每次和单个对象,Mesh 被绘制?
是每次执行着色器时吗?
那么究竟什么是渲染 channel ?它与绘制调用相同吗?
也许基本上是这样?:

Gl_Color(xyz);
gl_uniform("a",1);
gl_uniform("a",1);
gl_uniform("a",1);
//I know this is deprected as balls, but just to help me understand
Gl_Begin(GL_VERTEX_STRIP);
GL_Vertex(xyz);
GL_TEXCOORD(xy);
GL_End();

最佳答案

术语“绘图调用”的意思正是它所说的:调用任何 OpenGL function of the form gl*Draw* .这些命令会导致渲染顶点,并启动 entire OpenGL rendering pipeline .

因此,如果您使用单个 glDrawElementsInstanced 绘制 5000 个实例调用,这仍然只是一个绘制调用。

术语“渲染 channel ”更加模糊。最常见的含义是指多 channel 渲染技术。

在多 channel 技术中,您多次渲染相同的“对象”,对象的每次渲染都执行单独的计算,并累积到最终值中。具有特定状态集的对象的每次渲染称为“传递”或“渲染传递”。

请注意,渲染 channel 不一定是绘制调用。对象可能需要多次绘制调用才能呈现。虽然这通常比进行单个绘制调用慢,但出于各种原因可能需要这样做。

像这样的技术通常是前向渲染如何处理多个灯光。着色器通常设计为仅处理单个灯光。因此,要在一个对象上渲染多个灯光,您需要多次渲染该对象,将灯光特性更改为影响该对象的下一个灯光。因此,每次通过代表一个单一的光。

随着更强大的硬件和延迟渲染技术的出现,对象的多 channel 渲染已经过时了。尽管延迟渲染本身确实会进行多次传递;它通常只是在屏幕上而不是单个对象上。

这只是“渲染 channel ”的一种定义。根据上下文,您正在查看的教程可能会讨论其他内容。

关于opengl - 什么是渲染 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34382340/

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