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

Кросплатформенность GAPI (.Net) (2 стр)

Страницы: 1 2
#15
3:07, 21 мая 2012

ALTAIR
> Интерфейс это весьма определенное понятие. В ООП.
То есть ты предлагаешь завести общий интерфейс Render'a + несколько его имплементаций для каждого GAPI?

> не бойся этого
Сам по себе этот пункт не повод отказаться, но остальное, что я написал про него никуда не делось.
У меня сейчас проект на XNA и я с ним порядочно намучился.

#16
3:35, 21 мая 2012

Ignis
> Ну во первых он рабочий и с 3Д работает только ограниченно
Stable версия с 3D есть? Использовать бету — нет, спасибо.

> уже очень скоро допилят
Вот как допилят, так и посмотрим.

> умельцы смогли перенести например Террарию на Линукс без изменений
Это офигеть как сложно было сделать. Для той игры достаточно DrawSprite уметь делать и всё.

Они на OpenTK повторяют функционал XNA. Классно, но я лучше своё напишу.
Разве что исходники глянуть, как у них мультирендер XNA/OpenTK сделан.

#17
4:05, 21 мая 2012

Alprog
> То есть ты предлагаешь завести общий интерфейс Render'a + несколько его
> имплементаций для каждого GAPI?
не только рендера - математику ещё тудаже

#18
9:55, 21 мая 2012

Alprog
> А вот насчёт современного 3D, тем более, насчёт враперов для .Net/Mono, я в
> растерянности: кокретное API слишком глубоко вростает в код.

Ну в этом и есть так сказать вызов и челлендж. =)
Надо аккуратно вычленить, распихать по сущностям (классам), то да сё, полностью изолировав игровой код от конкретики.
Ничего, у UE получалось, так что можно надеятся на лучшее.
Современная модель мне только не нравится в этом смысле шейдерами - как ни крути, а например D3D шейдер в OGL шейдер не залезет, поэтому в папках игры будут разные подпапки с разными шейдерами. Так, впрочем, уже делали тоже.

#19
11:52, 21 мая 2012

Да и ещë в DirectX шейдеры подключаются по-отдельности и имеют свой набор констант, а в OpenGL они линкуются в одну программу и имеют общие uniform'ы. А это очень сильно влияет на архитектуру движка, усложняя изоляцию этих API в движке. Конечно, в OpenGL 4.1 появилась возможность разделения шейдеров, но их пока не все видеокарты поддерживают и требуются последние драйвера.
А шейдеры можно спарсить и самому, языки похожи. Правда, ООП в шейдерах DX11 надо как-то преобразовывать в процедурные шейдеры GLSL.

#20
13:50, 21 мая 2012

gammaker
> но их пока не все видеокарты поддерживают
Так разве это не в драйвере должно быть реализовано?

#21
20:24, 21 мая 2012

>Так разве это не в драйвере должно быть реализовано?
Ну да, но только их реализуют в видеокартах уровня DX10 и в GeForce'ах от 6000. Да и в старых видеокартах вряд ли эти драйвера будут стоять.

#22
21:01, 21 мая 2012

gammaker
Изображение

#23
9:36, 22 мая 2012

Я знаю, что существует Cg, просто мои религиозные соображения не дают использовать сторонние библиотеки.
Кстати, как он реализован? Он разделяет шейдеры или тоже объединяет в одну программу? Как он обходит ограничения API?

Страницы: 1 2
ПрограммированиеФорумГрафика

Тема в архиве.