gpt4 book ai didi

javascript - ND-Buffer 和 G-Buffer 有什么区别?

转载 作者:数据小太阳 更新时间:2023-10-29 06:10:24 28 4
gpt4 key购买 nike

我是 WebGL 的菜鸟。我读了几篇关于 ND-Buffers 和 G-Buffers 的帖子,好像它是 WebGL 开发的战略选择。

ND-Buffers 和 G-Buffers 与渲染管线有什么关系? ND-Buffers 是否仅用于前向渲染,而 G-Buffer 仅用于延迟渲染?

如何实现两者的 JavaScript 代码示例将有助于我理解差异。

最佳答案

G-Buffers 只是一组通常用于延迟渲染的缓冲区。

Wikipedia给出了 g-buffer 中常见数据类型的一个很好的例子

漫反射颜色信息

Diffuse color

世界空间或屏幕空间法线

World space normals

深度缓冲区/Z 缓冲区

Depth buffer

这 3 个缓冲区的组合称为“g 缓冲区”

从几何体和 Material 数据生成这 3 个缓冲区,然后您可以运行着色器来组合它们以生成最终图像。

Final image

实际进入 g 缓冲区的内容取决于特定的引擎/渲染器。例如 Unity3D's deferred renders 之一包含漫反射颜色、遮挡、镜面反射颜色、粗糙度、法线、深度、模板、发射、光照、光照贴图、反射概率。

ND 缓冲区仅代表“普通深度缓冲区”,这使其成为典型 g 缓冲区中常见内容的子集。

至于一个可以说对于 SO 来说太大的样本,但是有 an article about deferred rendering in WebGL on MDN

关于javascript - ND-Buffer 和 G-Buffer 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37745109/

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