仅高细节渲染屏幕的一部分


11

如果以较大的视角渲染图形(例如,非常大的电视或VR头戴式受话器),则观看者实际上无法将注意力集中在整个图像上,而只是整个图像的一部分。(实际上,常规尺寸的屏幕也是如此。)

结合跟踪观众眼睛的方式(我想这在VR中几乎是可行的),您可以在理论上加以利用,并通过逐渐减少细节和分辨率来使图形远离观众焦点,从而获得性能,而不会损失感知质量。

今天有没有可用的或正在开发的技术?


这是一个有趣的想法,但我想它是不可行的,因为大多数显示器都没有眼动仪。我还认为,以眼睛移动的速度切换几何形状可能会对性能产生负面影响。当然,您可以通过以下方式设计您的关卡/场景:鼓励玩家查看特定的兴趣点,并在其中使用高品质的网格物体,同时在周围使用质量较低的资产……
bummzack 2014年

1
查阅Siggraph 2014论文:graphics.cs.cmu.edu/projects/multirate。我还没有时间阅读它,但是它描述了一种以小于“每像素1x片段着色器”执行效果着色图像并仍然获得合理图像的方法。也许他们概述的任何算法或想法都可以用来降低屏幕边缘的采样率并提高性能。
TravisG 2014年


现在,这就是所谓的“中心渲染”。roadtovr.com/…–
巴特·范·

Answers:


7

您在许多游戏中都谈到了这种效果的例子。首先,存在景深,使远处的物体看起来模糊,就像相机在仅聚焦在靠近它的物体上一样,如本例所示。您可以在DirectX SDK包中探索与此相关的更多示例-它们中也有示例代码。对于OpenGL,如果您进行搜索,则将它们放在网上。

在此处输入图片说明

您可能想看到的第二件事是所谓的“ 几何MipMaping”或“渐进网格”,正如其名称所示,它类似于纹理mip贴图,但用于几何。随着物体离摄像机的距离越来越远,网格中多边形的数量会减少。这有助于提高性能。在D3D中,存在一个有助于自动生成渐进式网格的功能。这里是:

HRESULT WINAPI D3DXGeneratePMesh(
                                  LPD3DXMESH pMesh,
                                  const DWORD *pAdjacency,
                                 const D3DXATTRIBUTEWEIGHTS *pVertexAttributeWeights,             
                                  const FLOAT *pVertexWeights,
                                  DWORD MinValue,
                                  DWORD Options,
                                  LPD3DXPMESH *ppPMesh
                                 );

这是一个例子:

在此处输入图片说明

编辑: 考虑以下图像- 在此处输入图片说明

这是相机的剔除视锥。穿过中间的线是LookAt向量。现在,假设玩家将始终要聚焦在屏幕中心,则定义角度x。将以大于确定的x的角度定位的任何对象都将具有低分辨率渲染,而位于该角度内的对象将被渲染细节。这样,屏幕中央的对象将比侧面的对象更详细。因为如果玩家没有注视中心,则只需将中心线调整到玩家注视的方向即可。(或者将整个相机旋转到该方向)。


尽管我怀疑您可以通过实现自由度来提高性能。
badweasel14年

@badweasel好吧,是的。DOF不能提高性能,但是值得一提。它使您可以隐藏低矮的,粗大的几何图形,有时可能会在远处弹出。
The Light Spark

我投票赞成你的答案。这是一个很好的答案。我只是想指出一点,因为这是他的问题的一部分。
badweasel14年

这些技术使用的是距相机的z距离,但我的意思是距用户正在查看的屏幕上的点的x / y距离。我想他们可以这样修改。
Bart van Heukelom 2014年

1
@BartvanHeukelom为什么,如果玩家没有将注意力集中在中心,您就会使相机转向以使他对焦点产生的关注。听起来很有趣。
The Light Spark 2014年

2

是的,Fovated Rendering利用眼动追踪仅以高细节渲染用户正在观看的内容。其他所有内容都可以以较低的细节呈现。

在此处输入图片说明

虽然在观看这样的屏幕快照时相当明显,但据报道它在VR中对用户不可见。

现有的主流耳机尚不包括眼动追踪功能,但是有一些售后解决方案可增加眼动追踪功能。此外,渲染过程需要少量的附加处理。但是,好处是巨大的。实施中心凹型渲染后,只需要一小部分FOV即可进行高细节渲染,这可以显着提高帧速率。确切的数字取决于实现方式。

此外,这甚至不限于VR耳机。它也可以在台式机显示器上使用(附加了眼动追踪功能,效果有限)。


1

扩展Byte56的答案,是的,这种事情正在行业中开发。固定凹坑渲染是Valve在其机器人维修演示(https://youtu.be/DdL3WC_oBO4?t=769)和一些商业游戏中使用的一种技术(想到了PSVR的《生化危机7》)。固定的中心渲染不使用眼动追踪功能,但这意味着它可以与当前版本的VR头戴式显示器配合使用,而当前版本尚不具备任何眼动追踪功能。尽管目前Vive应该会提供眼动追踪的升级套件,所以您可能会看到一些AAA VR游戏正在使用该套件。

您不会找到许多与此类事情相关的代码示例,但是Nvidia确实有一些硬件扩展已得到了很好的记录。多分辨率已得到很好的解释,但与硬件相关联。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.