SNVampyre
Я вот не понимаю, как так можно фанатеть от GL, при этом так ненавидеть linux?
Dimich
> Я вот не понимаю, как так можно фанатеть от GL, при этом так ненавидеть linux?
А почему ты спрашиваешь об этом меня? Если что, то я не являюсь фанатом OpenGL, просто он безальтернативен и меня забавляют люди, которые зачем-то делают мультирендер.
gammaker
> Не чуть больше, а намного. API сильно отличаются,
По сравнению со всем кодом игры не много. И не надо пытаться сделать один интерфейс. Все равно функционал сильно отличается и будет работать только на одной из платформ. (Ну зачем на телефоне писать заглушки для ДХ11 на GLES?) Надо просто использовать общий достаточно высокоуровневый интерфейс там, где это возможно. И дополнять его специфическим для платформы функционалом, по мере необходимости. Таким образом, их можно частично развязать и выжать максимум из хайенда и не сломать лоуенд. Да, в движке могут появиться 2 класса эффектов, например, один на ГПУ, другой в софте, но они могут использовать один исходный ассет и работать на разных платформах прозрачно для дизайнеров.
SNVampyre
> меня забавляют люди, которые зачем-то делают мультирендер.
Меня тоже.
> Если что, то я не являюсь фанатом OpenGL
Просто тут писали обратное)
>Естественно, если ты на полную катушку будешь пользовать OpenGL, то на D3D уже дороги нет.
Нет, не собираюсь я использовать его на всю катушку. Просто шейдеры, без которых не обойтись в наше время в OpenGL и в DX работают по-разному. В OpenGL надо объединять их в программу, а в DX они раздельны. И приходится либо эмулировать раздельность программ на OpenGL, либо соединять вместе шейдеры на DX и синхронизировать таблицы констант вершинного и фрагментного шейдера, либо взять минимум OpenGL 4.1 с его возможностью делить программы и потерять мобильные платформы. У меня пока реализован 3-й вариант, но я собираюсь добавить первый в зависимости от платформы.
gammaker
Кстати да, с комбинаторным взрывом программ в OpenGL ещё та лажа.
Комитет в версии 4.1 прикрутил возможность через какую-то жопу разделить шейдерные стейджы, что только подчёркивает кривость изначальной орхитектуры
:)
Суссюр
> через какую-то жопу
Обоснуйте, в чём жопа? IMHO, всё выглядит замечательно.
изучение зд нужно начинать с линейной алгебры или как ее там
Суссюр
> Кстати да, с комбинаторным взрывом программ в OpenGL ещё та лажа.
> Комитет в версии 4.1 прикрутил возможность через какую-то жопу разделить
> шейдерные стейджы, что только подчёркивает кривость изначальной орхитектуры
> :)
Какая там ещё лажа ? Разделение сделано как раз для того чтобы упростить портирование с DX :)
Dimich
> Сорцы Wine для Вас.
Это не наш метод :)
Суссюр
Ну и? Из за выкрутасов Microsoft судьба их планшетов и телефонов под большим вопросом. Через год они возьмут и скажут "не, WinRT не торт, у нас теперь будет WinMX!". Зачем это надо есть есть большая доля рынка где живёт OpenGL?
zlos
> Ну и? Из за выкрутасов Microsoft
Это что, вот когда DX выходил бы каждый год новый ( и переписывать нужно было заново ) вот
это было бы весело :)
>Обоснуйте, в чём жопа? IMHO, всё выглядит замечательно.
Ну да, я тоже думаю, что неплохо сделано, если не считать многочисленных багов драйвера, на которые я напарывался. *опа в том, что это только для карт(и драйверов) уровня OpenGL 3.x и выше. А в OpenGL ES этого вообще нет.
zlos
> Через год они возьмут и скажут "не, WinRT не торт, у нас теперь будет WinMX!"
Серьезная контора всегда найдет пару лишних человек на портирование. Остальные могут заюзать готовый движек, если собственная разработка на некоторые платформы не рентабельна.
gammaker
> . *опа в том, что это только для карт(и драйверов) уровня OpenGL 3.x и выше. А
> в OpenGL ES этого вообще нет.
А зачем тебе разделение на уровне выше рендер АПИ? Можно грузить все шейдера из одного ресурса по имени + дефайны. Что-то вроде эффектов в дх. Понятно, что это не самый оптимальный по памяти и скорости метод, но разрабатывать шейдера проще (все в одном файле) и есть возможность легко добавлять вспомогательную информацию или вообще генерить из материала (высокоуровнего шейдера).
Тема в архиве.