代码之家  ›  专栏  ›  技术社区  ›  Statement

是否可以使用Xna在一次过程中将场景渲染为多个纹理?

  •  0
  • Statement  · 技术社区  · 14 年前

    我想知道是否有可能渲染一个场景,以多个渲染目标在一个单一的过程(或任何比通过客户端代码绘制几次更快的事情)。我想优化一些代码,这些代码被渲染成不同尺寸的纹理(例如512×512、256×256、128×128和64×64)。

    我意识到我可以使用从原始目标得到的mip贴图,但我不想混合颜色。我怀疑mip映射将从几个texel中取平均值,但是出于我的目的,我只想要未触及的渲染,就像由图形卡渲染的那样。如果mipmap有任何设置允许这样做,那么它也是一个可行的解决方案。

    另一方面,有人知道mipmap是在CPU还是GPU上生成的吗?

    谢谢你的阅读。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Ethan    14 年前

    你的问题没有可能的解决办法。MRT不能以不同的分辨率工作。mipmapping无法生成与原始纹理完全相同的较小纹理。实际上,绝对没有办法这么做。有了新的图形卡,mipmap就可以在GPU上生成。 一个问题:为什么要渲染方形目标?

        2
  •  0
  •   Andrew Russell    14 年前

    如果您关心缩小mipmaps比例时发生的混合,为什么不使用渲染目标并将其(在“全屏”四边形上)渲染到另一个渲染目标 point sampling ? (然后对你想要的每种尺寸重复这个步骤。)


    添加了以下注释:

    如果您所做的工作涉及深度(或类似于深度的数据),并且您需要知道每像素的最大(或最小)深度,并且每次都要将图像的分辨率减半:

    (我将把获取样本所需的数学作为练习。)