gpt4 book ai didi

c++ - 如何基于最大值而不是默认合并创建 mipmap?

转载 作者:行者123 更新时间:2023-11-28 01:36:12 24 4
gpt4 key购买 nike

我有一个 3D 纹理。每个纹素在 alpha channel 上包含一个透明度值。

我需要以这样一种方式生成我的 mipmap,它始终采用具有最大 alpha 值的纹素值。

换句话说,如果有 4 个纹素 3 的透明度值为 0,一个纹素的透明度值为 1,则生成的 mipmap 纹素应为 1。

我怎样才能做到这一点?

如果我需要编写自己的着色器,最佳方法是什么?

编辑:

我的问题,更明确地说是:

我是否需要手动创建一个着色器来执行此操作,或者有没有办法使用 opengl 的内置函数来省去麻烦?

最佳答案

为此,您需要使用自定义着色器渲染每个 mipmap 的每一层,该着色器从上层计算最多 8 个样本。这可以通过将渲染的 mipmap 的每一层附加到帧缓冲区(使用 glFramebufferTexture3D),并在着色器中使用 texelFetch(lod 参数指定要从中采样的 mipmap。

关于c++ - 如何基于最大值而不是默认合并创建 mipmap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49164431/

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