小编Fam*_*amZ的帖子

使用计算着色器进行 Mipmap

我有我的体素化场景的颜色、法线和其他数据的 3D 纹理,因为其中一些数据不能只是平均,我需要自己计算 mip 级别。3D 纹理大小为 (128+64) x 128 x 128,额外的 64 x 128 x 128 用于 mip 级别。

因此,当我取第一个 mip 级别,即 (0, 0, 0) 大小为 128 x 128 x 128 并将体素复制到第二级时,即 (128, 0, 0) 数据出现在那里,但是一旦我将 (128, 0, 0) 的第二级复制到 (128, 0, 64) 的第三级,数据就不会出现在第三级。

着色器代码:

#version 450 core

layout (local_size_x = 1,
        local_size_y = 1,
        local_size_z = 1) in;

layout (location = 0) uniform unsigned int resolution;
layout (binding = 0, rgba32f) uniform image3D voxel_texture;

void main()
{
    ivec3 index …
Run Code Online (Sandbox Code Playgroud)

c++ opengl compute-shader

5
推荐指数
1
解决办法
5726
查看次数

标签 统计

c++ ×1

compute-shader ×1

opengl ×1