В моем коде GLSL у меня есть большие функции, вызываемые несколько раз.
Например, внутри моей функции перлин-шума я запускаю хэш-функцию много раз.
float perlinNoise (...) {
...
float x0y0z0 = pcgUnit3(seedminX,seedminY,seedminZ);
float x0y0z1 = pcgUnit3(seedminX,seedminY,seedmaxZ);
float x0y1z0 = pcgUnit3(seedminX,seedmaxY,seedminZ);
float x0y1z1 = pcgUnit3(seedminX,seedmaxY,seedmaxZ);
float x1y0z0 = pcgUnit3(seedmaxX,seedminY,seedminZ);
float x1y0z1 = pcgUnit3(seedmaxX,seedminY,seedmaxZ);
float x1y1z0 = pcgUnit3(seedmaxX,seedmaxY,seedminZ);
float x1y1z1 = pcgUnit3(seedmaxX,seedmaxY,seedmaxZ);
...
}
InВ моем алгоритме процедурной генерации я вызываю функцию шума Perlin несколько раз.
Я замечаю, что каждый раз, когда я добавляю вызов функции шума Perlin, время компиляции для шейдеров занимает больше времени.Я думаю, что проблема в том, что glsl встроил вызовы функций, и, таким образом, код шейдера становится очень большим.
Правильно ли я по поводу встраивания, и если да, как я могу предотвратить это?