首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Screenspace Normals -创建、普通地图和解压

Screenspace Normals -创建、普通地图和解压
EN

Computer Graphics用户
提问于 2016-09-03 01:47:23
回答 1查看 1.9K关注 0票数 4

我正在努力压缩我的延迟渲染G-缓冲区。所以我有一些关于获得2分量屏幕空间法线的问题。我知道Frostbite和Killzone (我能找到的唯一两家AAA公司的G-缓冲器)使用它们。

如何创建屏幕空间法线,在使用普通映射或凸点映射之前还是之后?如果它是在使用法线映射之前完成的,法线映射将如何受到法线的屏幕空间性的影响?如果之后,如何在所有片段上而不是顶点上使用模型视图矩阵?这不是更多的计算吗?

最后,它们是如何打开的?我知道你可以用毕达哥拉斯得到蓝色的组件,但是它们是如何返回世界空间的呢?

EN

回答 1

Computer Graphics用户

发布于 2016-09-03 02:56:55

如何创建屏幕空间法线,在使用普通映射或凸点映射之前还是之后?

它们是在使用普通地图之后创建的。在延迟渲染中,您可以写入各种缓冲区(扩散、正常、深度等)。碎片着色器里。到那时,正常的地图已经看过了。

如果它是在使用法线映射之前完成的,法线映射将如何受到法线的屏幕空间的影响,

如果你指的是模型上的法线映射,法线映射可以保持不变。如果需要,也可以压缩普通映射,但这与写入普通缓冲区的操作无关。

...and,如果之后,如何在所有片段(而不是顶点上)上使用模型视图矩阵?这不是更多的计算吗?

你的模型的法线是每个顶点计算出来的,并通过栅格化插值到每一个片段。法线映射是每个片段处理的,但这些只是纹理查找,这些映射可以应用于从前面的管道步骤生成的相机空间法线。因此,不再需要视图矩阵。

最后,它们是如何打开的?我知道你可以用毕达哥拉斯得到蓝色的组件,但是它们是如何返回世界空间的呢?

二分量法线与三分量法线的概念是向量震级通常不考虑法线。另外,远离摄像机的法线通常是没有用的。有两个组件,您可以使用模型的半球面对相机。你把它们拆开就像打包一样。

把法线看作是位置。当转换从世界空间(x,y,z)到屏幕空间(x,y,深度),但深度不影响屏幕上的网格被显示。根据屏幕空间将三维向量转换为矢量(通过视图矩阵乘法)。

然后,只要法线是单位向量(因为您可以从其他两个向量导出z),就可以丢弃z分量(与摄像机对齐)。

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

https://computergraphics.stackexchange.com/questions/3942

复制
相关文章

相似问题

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