使用TextureArray优于纹理数组的性能优势?

矢田

假设我有nbFramesAnimation * 3 float4 Texture2D我想传递给我的GPU,并且:

  • 我不需要在纹理之间进行插值;
  • 纹理具有相同的大小。
  • 我不知道它是否相关,但是我没有任何mip-map。

我将这些纹理用作G缓冲区,在上面应用了一些后期效果。因此,我可能必须使用非文字形式的索引来访问它们。此外,因为我将它们用作G缓冲区,所以必须经常加载它们。它们为我提供了需要精确定位的位置和法线信息,以及UV + IndexObject(因此实际上仅使用了4个浮点中的3个)。

到目前为止,在每个帧渲染时,我都使用SetResource分别加载三个纹理。它非常慢,而且与实时性相差甚远。

我想知道是否:

  • 拥有一个Texture2DArrays数组的效率更高,每个Texture2dArray具有三个纹理(在我的示例中),并且在每个帧处传递一个Texture2DArray。
  • 还是和传递3个单独的Texture2D一样?
  • 做几个nbFramesAnimation / X * 3纹理的Texture2DArray并在每个X帧中加载其中一个会更有效吗?

我也希望对如何进一步优化此转移有任何见解。

艾琳·加拉克(Elim Garak)

Texture2DArray引入s是为了简化具有相同目的的多个纹理的绑定,这些纹理在一起但不表示整体(如体积)(换句话说,不需要三线性插值)。深度索引用于访问数组的不同部分。

就像使用C ++(或空中其他语言)中的数组的概念一样,其目的是允许动态索引,而使用多个单独的索引则无法实现。性能方面的考虑并不超出将元素绑定到管道的成本,这是方便的问题,并且不要占用绑定点。

使用DirectX 12时,引入了无绑定模型和诸如描述符堆之类的东西,从而消除了最后一个考虑因素,在其中可以通过预先计算的根签名交换一吨的吨几乎所有资源映射到着色器。HLSL Shader Model 5.1还引入了“无限”描述符范围和动态索引。好玩的东西。

无论如何,不​​要太担心两者之间的性能。担心工作的优雅。如果将所有东西放在一起,并且您的设计需要在某个时间对所有它们进行采样,则将它们分组在内Texture2DArray

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

索引器优于对象数组的优势?

来自分类Dev

使用MutableLiveData <String>优于String的优势?

来自分类Dev

在查询中使用NVL优于OR的优势

来自分类Dev

现代WebGL的2次幂纹理性能优势

来自分类Dev

UDP优于TCP的优势?

来自分类Dev

定义优于租用的优势

来自分类Dev

getPost优于$ _POST的优势

来自分类Dev

getPost优于$ _POST的优势

来自分类Dev

使用Moo(se)优于Perl OO的真正优势

来自分类Dev

使用IBM MQ资源适配器优于RemoteJMSProvider的优势?

来自分类Dev

创建意图时使用命名意图优于类的优势

来自分类Dev

静态空数组实例的性能优势

来自分类Dev

使用127.0.0.1有性能优势吗?

来自分类Dev

函数指针数组相对于if块的性能优势

来自分类Dev

使用的纹理数量会影响性能吗?

来自分类Dev

ember-cli优于grunt / Yeoman的优势

来自分类Dev

标签分发优于常规过载解析的优势

来自分类Dev

Ray Marching优于栅格化的优势

来自分类Dev

Braintree宝石优于ActiveMerchant Braintree宝石的优势

来自分类Dev

如果grep优于egrep,有什么优势?

来自分类Dev

缓存是Spark优于map-reduce的唯一优势吗?

来自分类Dev

Scala中上界优于子类型化的优势

来自分类Dev

avg_over_time(rate())本身优于rate()的优势?

来自分类Dev

Windows 8应用程序优于桌面程序的优势

来自分类Dev

SVGKit的性能,是否应该优于PNG?

来自分类Dev

在Django中,.get()的性能是否优于.first()?

来自分类Dev

大型SSD的性能是否优于小型SSD?

来自分类Dev

非集群连接的性能优于集群连接

来自分类Dev

SVGKit的性能,是否应该优于PNG?