deb*_*ker 5 javascript webgl deferred-rendering webgl-extensions webgl2
我是WebGL的菜鸟。我读过几篇有关ND缓冲区和G缓冲区的文章,好像它是WebGL开发的战略选择。
ND缓冲区和G缓冲区与渲染管线有何关系?ND缓冲区仅用于正向渲染,G缓冲区仅用于延迟渲染吗?
一个JavaScript代码示例如何实现这两者将对我理解区别很有用。
G-Buffers 只是一组通常用于延迟渲染的缓冲区。
维基百科给出了一个很好的例子,说明了在 g-buffer 中经常发现的数据类型
漫反射颜色信息
世界空间或屏幕空间法线
深度缓冲/Z-缓冲
这 3 个缓冲区的组合称为“g 缓冲区”
从几何体和材质数据生成这 3 个缓冲区,然后您可以运行着色器将它们组合起来生成最终图像。
实际进入 g 缓冲区的内容取决于特定的引擎/渲染器。例如,Unity3D 的延迟渲染之一包含漫反射颜色、遮挡、镜面反射颜色、粗糙度、法线、深度、模板、发射、照明、光照贴图、反射问题。
ND 缓冲区仅代表“正常深度缓冲区”,这使其成为通常在典型 g 缓冲区中找到的内容的子集。
至于一个可以说对 SO 来说太大的示例,但在 MDN上有一篇关于 WebGL 中的延迟渲染的文章
归档时间: |
|
查看次数: |
880 次 |
最近记录: |