gpt4 book ai didi

algorithm - 使用计算着色器计算 mipmaps,已经完成了吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:20:16 25 4
gpt4 key购买 nike

我使用计算着色器手动生成 mipmap,因为我不是简单地过滤而是在其中进行一些计算。

直接的方法是,对于级别 1 的每个纹素,读取它在级别 0 中对应的四个纹素,进行过滤,然后写入纹素。对整个级别执行此操作,然后对下一个级别重复。

但必须有一种更快的方法 :) 而不是读取 0 级,编写 1 级,然后再次读取 1 级,编写 2 级等。它可能更有效,例如读取 0 级的图 block ,然后在同一个调度调用中迭代地写入接下来几个级别的所有值。这样,最多可以保存一半的读数。

我的问题是,这已经完成了吗?我对已证明有效的更详细的算法感兴趣。

具体来说,我正在实现一个推拉算法,该算法首先从最大到最小计算这些 miplevel。在第二步中,它会细化 miplevel,从倒数第二个开始,使用原始纹素或 较粗糙 miplevel 中的四个周围纹素的插值。我也希望看到对此的高效计算方案,但无法通过谷歌搜索找到任何方案。

最佳答案

我没有意识到这基本上是一个带有一些约束的并行归约。对于并行缩减,NVIDIA 提供了一份不错的白皮书,其中包含许多可能也适用于此的优化策略:https://docs.nvidia.com/cuda/samples/6_Advanced/reduction/doc/reduction.pdf

另外,我在这里找到了一个使用计算着色器进行缩减的示例实现:https://mynameismjp.wordpress.com/2011/08/10/average-luminance-compute-shader/尽管它有点过时,但他例如明确尝试向量化指令。

关于algorithm - 使用计算着色器计算 mipmaps,已经完成了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38678156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com