Войти
ПрограммированиеФорумГрафика

OpenGL Вопросы (30 стр)

Страницы: 125 26 27 28 29 30
#435
10:48, 7 апр. 2020

Suslik
> разные версии d3dcompiler'а совершенно неиллюзорно могут по-разному компилить
> (или нет) один и тот же шейдер.
И после таких приколов говорят, что gl гофно?)))

#436
(Правка: 11:43) 11:40, 7 апр. 2020

barnes
> И после таких приколов говорят, что gl гофно?)))
А чему удивляться если все пишут люди одними и теми же руками, за тех кто писал до этого. Даже личный код каждого на костылях.

#437
13:58, 16 апр. 2020

Вопрос про текстурный swizzle.

Допустим нужно поменять, чтобы при сэмплинге в шейдере текстура с одним красным каналом сэмплилась не как vec4(r,0,0,0), а как vec4(r,r,r,r). Есть такая хренотень:

glTexParameteri(target, GL_TEXTURE_SWIZZLE_R, GL_RED);
glTexParameteri(target, GL_TEXTURE_SWIZZLE_G, GL_RED);
glTexParameteri(target, GL_TEXTURE_SWIZZLE_B, GL_RED);
glTexParameteri(target, GL_TEXTURE_SWIZZLE_A, GL_RED);

У меня вопрос, API скрыто создаст четырехканальную текстуру с продублированным красным каналом или swizzle влияет только на сэмплинг?

Если на сэмплинг, то почему я не могу выставить swizzle в настройки сэмплера?

glSamplerParameteri( id, GL_TEXTURE_SWIZZLE_R,  ....
выдаст GL_INVALID_ENUM.

#438
14:52, 16 апр. 2020

barnes
> И после таких приколов говорят, что gl гофно?)))

дх на гл идеален :)

#439
14:54, 16 апр. 2020

programina
> glTexParameteri ты просто говоришь как записать данные изображения в текстуру.

Это не так.

https://www.khronos.org/opengl/wiki/GLAPI/glTexParameter

GL_TEXTURE_SWIZZLE_R
Sets the swizzle that will be applied to the r component of a texel before it is returned to the shader. Valid values for param​ are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_ZERO and GL_ONE. If GL_TEXTURE_SWIZZLE_R is GL_RED, the value for r will be taken from the first channel of the fetched texel. If GL_TEXTURE_SWIZZLE_R is GL_GREEN, the value for r will be taken from the second channel of the fetched texel. If GL_TEXTURE_SWIZZLE_R is GL_BLUE, the value for r will be taken from the third channel of the fetched texel. If GL_TEXTURE_SWIZZLE_R is GL_ALPHA, the value for r will be taken from the fourth channel of the fetched texel. If GL_TEXTURE_SWIZZLE_R is GL_ZERO, the value for r will be substituted with 0.0. If GL_TEXTURE_SWIZZLE_R is GL_ONE, the value for r will be substituted with 1.0. The initial value is GL_RED.

#440
(Правка: 14:57) 14:56, 16 апр. 2020

0xc0de
> Это не так
да
0xc0de
> swizzle влияет только на сэмплинг?
да
0xc0de
> почему я не могу выставить swizzle в настройки сэмплера?
потому что API не позволяет это (https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glSampl… rameter.xhtml)

#441
15:03, 16 апр. 2020

programina
> потому что API не позволяет это

Спасибо, кэп :) Хотелось бы узнать почему API не позволяет это, разобраться на более низком уровне. Возможно это аппаратный ограничения, хотя я не вижу в чем может быть проблема реализовать это даже софтварно на уровне API/драйвера.

#442
18:48, 16 апр. 2020

0xc0de

min/max фильтрует

Страницы: 125 26 27 28 29 30
ПрограммированиеФорумГрафика