3D рендеринг текстур с использованием 2D текстур - PullRequest
0 голосов
/ 24 сентября 2019

Я хочу визуализировать 3d текстуру в среде OpenGL es 2.0.Поэтому я делаю данные трехмерной текстуры на 2d текстуру.

3d texture (256 * 256 * 100) -> 2d texture(2560 * 2560) 

Я думаю, что два смещения одинаковы.

offset = z3 * 256 * 256 + y3 * 256 + x3      
offset = y2 * 2560 + x2    

Но результат не очень хороший.

vec3 size3 = vec3(256.0, 256.0, 100.0);
vec2 size2 = vec2(2560.0, 2560.0);

vec2 calc3dTo2d(vec3 coords) {
    vec3 offset3 = vec3(coords.x * size3.x, coords.y * size3.y, coords.z * size3.z);

    float offset = offset3.z * size3.x * size3.y + offset3.y * size3.x + offset3.x;

    float y = floor(offset / size2.x) / size2.y;
    float x = fract(offset / size2.x);

    return vec2(x, y);
}

Чего мне не хватает?

...