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

Ковыряю этот ваш OpenGL. [вопрос в посте #55] (2 стр)

Страницы: 1 2 3 48 Следующая »
#15
20:20, 5 авг. 2016

programina
> В цветовом буфере нет никаких флоатов, там только векторы, поэтому выводить
> нужно вектор, если хочешь что-то увидеть.
Воооот, это объяснение я и надеялся услышать!

Осталось только что бы иннуэнда это дело подтвердил, и тогда я могу быть спокоен:)

#16
20:22, 5 авг. 2016

Synthetic
> а почему не работает вариант с
> layout(location = 0) out float fragmentdepth;
Он работает, если ты пишешь глубину в текстуру глубины, и затем читаешь флоаты из текстуры глубины для получения дистанции.

#17
(Правка: 20:26) 20:24, 5 авг. 2016

Synthetic
> неа, дело было на маках, надеюсь придут отцы и носом ткнут без CodeXL:)
Сомневаюсь. Если кто-то ровно на такие же грабли наступал - то может быть и подскажет.
Я на подобное наступал, но там у меня оказался блендинг включен.
Так то вроде все валидно, но! Есть куча нюансов.
Например валидация шейдера. Если ты её делаешь - то если валидация не прошла, шейдер будет "отключенным" и рендерить не будет. Валидация могла не пройти по многим причинам, например ты сначала забиндил шейдер и сделал валидацию, а потом поменял рендертаргет. А предыдущий рендертаргет был RGBA.

Synthetic
>> glColorMask
> это как так?
Принудительно сказать конвееру, что ты в GBA компоненты рендерить не будешь.

#18
20:25, 5 авг. 2016

programina
> В цветовом буфере нет никаких флоатов, там только векторы, поэтому выводить
> нужно вектор, если хочешь что-то увидеть.
Ты это, давай чтоли пруфы на спецификацию где подобное сказано. :)

#19
20:26, 5 авг. 2016

А он вообще пишет что-нибудь в текстуру, если просто единицу выводить во float?

#20
20:28, 5 авг. 2016

MrShoor
> Принудительно сказать конвееру, что ты в GBA компоненты рендерить не будешь.
я это так делал
glDrawBuffer(GL_NONE);
нормально так? Это оно?

#21
20:29, 5 авг. 2016

lexer42152
> А он вообще пишет что-нибудь в текстуру, если просто единицу выводить во float?
неа, в том то всё и дело.

#22
20:30, 5 авг. 2016

Synthetic
> я это так делал
> glDrawBuffer(GL_NONE);
> нормально так? Это оно?
xDDD. Нет. Ты это делал для варианта layout(location = 0) out float fragmentdepth; ? Вот по этому и не рисовало.

#23
20:31, 5 авг. 2016
glDrawBuffer(GL_NONE);
нормально так? Это оно?

Это вы буферы отрисовки выключили. Думаю, что MrShoor имел ввиду glColorMask
#24
20:32, 5 авг. 2016

Всё! Нашел!

#25
20:34, 5 авг. 2016

Я мудак, обманул на счет блендинга!
Вырубил его теперь уже точно, заработало.
Всем спасибо! Тему не закрываю, можно в ней всякие глупости про OpenGL спрашивать:)

#26
20:37, 5 авг. 2016

Synthetic
> Я мудак, обманул на счет блендинга!
Лол. Ну поздравляю, чо :D

#27
20:52, 5 авг. 2016

MrShoor
> Вот по этому и не рисовало.
не-не-не, эту шляпу я для EarlyZ выключал :)

Интересно, а почему блендинг не дает записать float ?
Ну ладно бы оно значение с альфой попутало, но даже если сетапить туда 1.0, всё равно не рисует.

#28
21:05, 5 авг. 2016

Synthetic
> Интересно, а почему блендинг не дает записать float ?
> Ну ладно бы оно значение с альфой попутало, но даже если сетапить туда 1.0, всё
> равно не рисует.

Наверное альфа по дефолту 0 пишется. Либо просто UB.

#29
(Правка: 21:15) 21:14, 5 авг. 2016
Наверное альфа по дефолту 0 пишется.

да, по дефолту в неприсваемые каналы пишется ноль. Он там только в красный писал...
Страницы: 1 2 3 48 Следующая »
ПрограммированиеФорумГрафика