Выборка текстуры альфа - PullRequest
       21

Выборка текстуры альфа

0 голосов
/ 10 ноября 2011

Может кто-нибудь сказать мне, как я могу заставить альфа быть установленным в 1 в моем семплере? Я понимаю, что это потребовало бы использования

glSamplerParameteri (arg1, arg2, arg3)

Я не уверен, какими должны быть arg2 и arg3. Я считаю arg1 именем сэмплера.

Ответы [ 2 ]

1 голос
/ 10 ноября 2011

Вы не можете сделать это с объектом сэмплера.То, что вы ищете, это установить текстуру , которая устанавливается на объект текстуры *1003*, а не на объект сэмплера.

Конкретная команда будет выглядеть какследует:

glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_A, GL_ONE);

Для этого требуется реализация, поддерживающая OpenGL 3.3 или выше, или расширение ARB_texture_swizzle.

Если у вас их нет, просто установите их в шейдер.

1 голос
/ 10 ноября 2011

См. : http://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameter.xml, чтобы узнать, как использовать glSamplerParameter.

void glSamplerParameteri(GLuint sampler, GLenum pname, GLint param);

Параметры

сэмплер Задает объект сэмплера, параметр которого нужно изменить.

PNAME Задает символическое имя однозначного параметра сэмплера. PNAME может быть один из следующих:. GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS GL_TEXTURE_COMPARE_MODE или GL_TEXTURE_COMPARE_FUNC

1020 * ПАРАМЕТР * Определяет значение pname.


Однако я не уверен в том, что вы пытаетесь сделать. Вы просто пытаетесь установить альфа-значение некоторых пикселей в сэмплере? Если это так, то это неправильный подход, вы должны просто рисовать с нужными значениями альфа (или очистить всю текстуру с некоторым значением альфа).

...