Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Ковыряю этот ваш OpenGL. [вопрос в посте #55] (2 стр)

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

Страницы: 1 2 3 4 5 6 7 Следующая »
SyntheticПостоялецwww5 авг. 201620:20#15
programina
> В цветовом буфере нет никаких флоатов, там только векторы, поэтому выводить
> нужно вектор, если хочешь что-то увидеть.
Воооот, это объяснение я и надеялся услышать!
Осталось только что бы иннуэнда это дело подтвердил, и тогда я могу быть спокоен:)
programinaПостоялецwww5 авг. 201620:22#16
Synthetic
> а почему не работает вариант с
> layout(location = 0) out float fragmentdepth;
Он работает, если ты пишешь глубину в текстуру глубины, и затем читаешь флоаты из текстуры глубины для получения дистанции.
MrShoorУчастникwww5 авг. 201620:24#17
Synthetic
> неа, дело было на маках, надеюсь придут отцы и носом ткнут без CodeXL:)
Сомневаюсь. Если кто-то ровно на такие же грабли наступал - то может быть и подскажет.
Я на подобное наступал, но там у меня оказался блендинг включен.
Так то вроде все валидно, но! Есть куча нюансов.
Например валидация шейдера. Если ты её делаешь - то если валидация не прошла, шейдер будет "отключенным" и рендерить не будет. Валидация могла не пройти по многим причинам, например ты сначала забиндил шейдер и сделал валидацию, а потом поменял рендертаргет. А предыдущий рендертаргет был RGBA.

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

Правка: 5 авг. 2016 20:26

MrShoorУчастникwww5 авг. 201620:25#18
programina
> В цветовом буфере нет никаких флоатов, там только векторы, поэтому выводить
> нужно вектор, если хочешь что-то увидеть.
Ты это, давай чтоли пруфы на спецификацию где подобное сказано. :)
lexer42152Постоялецwww5 авг. 201620:26#19
А он вообще пишет что-нибудь в текстуру, если просто единицу выводить во float?
SyntheticПостоялецwww5 авг. 201620:28#20
MrShoor
> Принудительно сказать конвееру, что ты в GBA компоненты рендерить не будешь.
я это так делал
glDrawBuffer(GL_NONE);
нормально так? Это оно?
SyntheticПостоялецwww5 авг. 201620:29#21
lexer42152
> А он вообще пишет что-нибудь в текстуру, если просто единицу выводить во float?
неа, в том то всё и дело.
MrShoorУчастникwww5 авг. 201620:30#22
Synthetic
> я это так делал
> glDrawBuffer(GL_NONE);
> нормально так? Это оно?
xDDD. Нет. Ты это делал для варианта layout(location = 0) out float fragmentdepth; ? Вот по этому и не рисовало.
lexer42152Постоялецwww5 авг. 201620:31#23
glDrawBuffer(GL_NONE);
нормально так? Это оно?

Это вы буферы отрисовки выключили. Думаю, что MrShoor имел ввиду glColorMask
SyntheticПостоялецwww5 авг. 201620:32#24
Всё! Нашел!
SyntheticПостоялецwww5 авг. 201620:34#25
Я мудак, обманул на счет блендинга!
Вырубил его теперь уже точно, заработало.
Всем спасибо! Тему не закрываю, можно в ней всякие глупости про OpenGL спрашивать:)
MrShoorУчастникwww5 авг. 201620:37#26
Synthetic
> Я мудак, обманул на счет блендинга!
Лол. Ну поздравляю, чо :D
SyntheticПостоялецwww5 авг. 201620:52#27
MrShoor
> Вот по этому и не рисовало.
не-не-не, эту шляпу я для EarlyZ выключал :)

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

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

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

lexer42152Постоялецwww5 авг. 201621:14#29
Наверное альфа по дефолту 0 пишется.

да, по дефолту в неприсваемые каналы пишется ноль. Он там только в красный писал...

Правка: 5 авг. 2016 21:15

Страницы: 1 2 3 4 5 6 7 Следующая »

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр