Я рендеринг следующей текстуры на WebGLRenderTarget в ThreeJS с помощью Ashima's GLSL noise:Три JS: Перемещение вершин через текстуры, ограниченные 256 значениями?
Я тогда чтение RGB каналов текстуры, чтобы смещать вершины несколько сеток в XYZ осей со следующим кодом GLSL :
vec4 fluctuation = texture2D(fluxTexture, uv);
curPos.y += (fluctuation.r - 0.5) * 40.0;
curPos.x += (fluctuation.g - 0.5) * 20.0;
curPos.z += (fluctuation.b - 0.5) * 20.0;
Однако, поскольку движение является очень тонким, я заметил, что вершины перепрыгнуть несколько пикселей для каждого шага при изменении значения RGB. Я приписываю этот артефакт каждому ограничению цвета до 256 значений за штуку. Есть ли способ изменить глубину бит текстуры до 16 или 32 бит, чтобы я мог получить больше точности из каналов RGB?
Возможно, вы внесете свой код в отношении создания цели webgl. Вы также можете кодировать другую точность в 8-битной текстуре или нескольких 8-битных текстурах. У трех есть метод pack/unpack в шейдерах. – pailhead