gpt4 book ai didi

opengl - ATI 显卡上的 GLSL 3D 噪声实现

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

我尝试了很多不同的策略来获得可用的噪声功能,但都没有奏效。那么,如何在 GLSL 中的 ATI 显卡上实现 perlin 噪声呢?

以下是我尝试过的方法:
我尝试将排列和渐变数据放入 GL_RGBA 1D 纹理并调用 texture1D 函数。但是,对这种噪声实现的一次调用会导致 12 次纹理调用并降低帧率。

我尝试将排列和梯度数据上传到统一的 vec4 数组中,但编译器不会让我在数组中获取元素,除非索引是常量。例如:

int i = 10;
vec4 a = noise_data[i];

将给出这样的编译器错误:

错误:0:43:使用临时数组间接索引时不支持。

这意味着我只能检索这样的数据:
vec4 a = noise_data[10];

我也尝试将数组直接编程到着色器中,但我遇到了相同的索引问题。我听说 NVIDIA 显卡实际上允许这种方法,但 ATI 不会。

我尝试创建一个函数,根据输入索引返回特定的硬编码数据点,但是该函数被调用 12 次并且有 64 个 if 语句,使得链接时间难以忍受。

ATI 不支持 glsl 的“内置”噪声函数,我不能预先计算噪声并将其作为纹理导入,因为我正在处理分形。这意味着我需要在运行时计算噪声的无限精度。

所以首要问题是......

如何?

最佳答案

为了更好地分配随机值,我推荐这些非常好的文章:

  • Pseudo Random Number Generator in GLSL
  • Lumina noise GLSL tutorial

  • 有随机的乐趣!!!

    关于opengl - ATI 显卡上的 GLSL 3D 噪声实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3589158/

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