Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / OpenGL Вопросы (24 стр)

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

Поделиться
Страницы: 121 22 23 24 25 26 Следующая »
PA3UJIbПостоялецwww28 ноя. 201710:20#345
war_zes
юниформы с одинаковыми именами в разных шейдерах - у NVIDIA это работает, у AMD - это краш при создании ShaderProgram

Странно, что у меня такого не было (доступны три машины : со встроенной Intel с GL4.3, HD2600XT c GL3.3 и GF770GTX c GL4.5).
innuendoПостоялецwww28 ноя. 201710:40#346
PA3UJIb
> Странно, что у меня такого не было

и я что-то не припомню

barnesПостоялецwww28 ноя. 201715:00#347
бред какойто куча шейдеров с одинаковыми именами униформов, на амд все окей.
PA3UJIbПостоялецwww28 ноя. 201716:32#348
war_zes
а если я решу в шейдере переименовать - то потом надо по всему коду искать это место и там тоже переименовывать

Тут где-то были gl33lessons от Кренделя - так там он позиции атрибутов вершины определял в коде программы макросами, типа
#define VERTEX_ATTRIBUTE_POSITION  0
#define VERTEX_ATTRIBUTE_TEXCOORD  1
#define VERTEX_ATTRIBUTE_NORMAL    2
Потом программно собирал код шейдера с этими же дефайнами по факту делая их макросами уже в шейдере, а уже эти их подставлял в
layout ( location = VERTEX_ATTRIBUTE_POSITION ) in vec3 vertex_position;

Т.е. один раз задал макросом положение атрибута и пользуешься.

Добавлено спустя полсекунды

Кстати, вопрос. Тут в Superbible 5 вычитал, что атрибуты вершины всегда передаются как vec4, независимо как мы их обозначаем в шейдере. Так что пусть мы пишем vec2 texcoord, придет всё равно vec4, только при создании переменной она уже обрезается. Так ли это?

Правка: 28 ноя. 2017 16:37

dayllengerНовичокwww29 ноя. 201716:57#349
PA3UJIb
По сути это означает то, что 1 location есть ровно 1 vec4 (с doubl'ами чуть по-другому). Так как location'ов у нас ограниченное число, то атрибуты можно при необходимости паковать. Вершинный шейдер берёт данные из массива вида vec4[MAX_VERTEX_ATTRIBS], но это спецификация, вряд ли в реализациях там что-то вначале "передаётся", а потом "обрезается".
0xc0deПостоялецwww29 ноя. 201717:10#350
dayllenger
> По сути это означает то, что 1 location есть ровно 1 vec4

Где вы такое нашли?

dayllengerНовичокwww29 ноя. 201720:10#351
0xc0de
В части 11.1.1 core спецификации, - там рассказано, как одном location'е передавать несколько атрибутов и как матрицы и массивы занимают несколько индексов.
neumondПостоялецwww4 дек. 201722:37#352
Какую версию GL сегодня имеет смысл изучать/использовать в коде?
MrShoorУчастникwww4 дек. 201723:04#353
neumond
> Какую версию GL сегодня имеет смысл изучать/использовать в коде?
GL версии Vulkan. Если вулкан сильно хардово, то GL4.5
/A\Постоялецwww4 дек. 201723:47#354
neumond
Нвидиа и амд поддерживают 4.5, интел осилил только 4.4, а под маком только 4.2 есть, насчет линукса не в курсе, вроде 4.х тянет.
Под мобилки 3.1 достаточно близок к 3.3-4.5
innuendoПостоялецwww5 дек. 20170:44#355
neumond
> Какую версию GL сегодня имеет смысл изучать/использовать в коде?
какие цели преследуете ?
SuslikМодераторwww5 дек. 20170:55#356
innuendo
> какие цели преследуете ?
ему константы в шейдер передавать

neumond
> Какую версию GL сегодня имеет смысл изучать/использовать в коде?
все новые версии похожие. разница между 3.3 и 4.5, например, гораздо меньше, чем разница между 2.0 и 3.3.

DampireПостоялецwww5 дек. 20179:33#357
Suslik
Ога. DSA очень похоже на 3.3. Прям идентично. И куча explicit штук в 4.2 шейдерах тоже. Прям никакой разницы.
innuendoПостоялецwww5 дек. 20179:33#358
Suslik
> > какие цели преследуете ?
> ему константы в шейдер передавать

а как без этого, а так 4.0 на пару лет за глаза :)

war_zesПостоялецwww5 дек. 20179:41#359
innuendo
> а как без этого, а так 4.0 на пару лет за глаза :)
а чегой ты на меня наезжал за OpenGL в моем фреймворке? (ну я забыл сказать что 4.3)
Страницы: 121 22 23 24 25 26 Следующая »

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

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