Связать текстуру в режиме повтора - PullRequest
2 голосов
/ 04 августа 2011

Я пытаюсь сохранить октре в 3D-текстуре в OpenGL для использования на GPU с использованием Cg, из главы в Gem 2 для GPU, найденной здесь http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter37.html. Однако полученные результаты неверны. Я думаю, это из-за того, как я создаю октре.

В приложении к этой главе говорится: «Если мы свяжем текстуру пула косвенного обращения (текстуру октодерева) в режиме повтора (GL_REPEAT) ...».

Означает ли это просто установить фильтры и упаковку для повторения, или мне нужно сделать что-то еще? Это мой код до сих пор

glGenTextures(1, &octree_texture);
glBindTexture(GL_TEXTURE_3D, octree_texture);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_REPEAT);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_REPEAT);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, GL_REPEAT);
glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA, WIDTH, HEIGHT, DEPTH, 0, GL_RGBA, GL_UNSIGNED_BYTE, octreeData);

Спасибо за помощь:)

1 Ответ

3 голосов
/ 04 августа 2011

Фильтры не могут повторяться, что приведет к ошибке GL, только GL_REPEAT может быть только режим обтекания, и это, вероятно, означает книга.

...