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

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

Страницы: 1 2 Следующая »
#0
17:17, 18 мая 2012

При работе с SharpDX предлагается свой набор классов и структур, таких как Vector, Matrix, VertexBuffer, Texture.
В OpenTK свой собственный набор для того же самого, в XNA — третий, и так далее.

Интерфейсы работы с ними отличаются, но хочется, чтобы движок не видел разницы.
Как обычно поступают при написании кросс-платформерного рендера? Оборачивают в MyVertexBuffer и MyTexture?

#1
17:24, 18 мая 2012

Alprog

Кроссплатформенность в .NET??? Я не ошибся? Там же единственный второй "клиент" это Mono под линукс, который на 100%-ов не совместим.
О чём речь вообще?

#2
17:34, 18 мая 2012

=A=L=X=
> Там же единственный второй "клиент" это Mono под линукс
.Net Framework:
Windows (MDX, SlimDX, ShardDX, XNA, OpenTK)
Windows Phone (XNA)
XBox 360 (XNA)

Mono:
Mac (OpenTK)
Linux (OpenTK)
Android (OpenTK)
iOS (OpenTK)

Но вообще вопрос в том, как сделать хотя бы на винде мультирендер DX/OGL (SharpDX/OpenTK).

#3
17:42, 18 мая 2012

Alprog

Ага, значит по существу выбор у тебя между XNA/OpenTK.
Ну пиши мультирендер. Для этого полностью изучи обе платформы и их капризы, а далее уже пишешь по обычной схеме мультирендер - все базовые примитивные классы - свои - остальные - реализации обобщенных интерфейсов над всеми платформами. Раньше так делали.

#4
17:57, 18 мая 2012

=A=L=X=
Ну вот, например, Vector. Функции каждого из GAPI всюду принимают свой вектор. Писать MyVector?
А как насчёт VertexBuffer?

И посоветуйте что-нить почитать про мультирендер в общем.

#5
18:05, 18 мая 2012

Alprog
> И посоветуйте что-нить почитать про мультирендер в общем.

Довольно интересно... Лет 10-15 назад все кто писал рендер изначально в 90% случаев писали именно мультирендер. Ибо в то время это было круто. Ибо все передовые на то время движки (Quake/HL/Unreal) были мультирендеровые и вопросов вообще не возникало КАК надо писать.
Сейчас да, как то отошли совсем от идей мультирендеровости в широких массах. Т.е. вроде даже делают одну игру под XBox/PC/PS, но как то их уже называют "портами" (а оно и правильно - процы то и ОС разные) и вопрос мульти-* не возникает, возникает вопрос "портируемо ли"-*. Да.
Ну в общем совсет как оно делать я уже выше дал - сперва изучить обе (в твоём случае) архитектуры и понять какие места надо выделить как обобщения а какие как надстройки. Шейдеры конечно будут уже в ногах путаться, да, но иначе реально никак в современном мире.
Ну а что касается старых движков. Конечно там одна была забота - триангл отсамплить с некими параметрами освещения и текстурирования. КОнечно любое API (OGL/D3D/Glide) в своё время это позволяло.

#6
18:51, 18 мая 2012

=A=L=X=
Шейдеры — вроде, cg нас спасёт.
Старые и 2D движки — тоже, вроде, всё понятно.

А вот насчёт современного 3D, тем более, насчёт враперов для .Net/Mono, я в растерянности: кокретное API слишком глубоко вростает в код.
Как вычленить и на каком уровне абстракции от API это делать — не понятно.

#7
22:05, 18 мая 2012

есть MonoGame это кроссплатформенное XNA

#8
3:36, 19 мая 2012

Ignis
Оно не умеет нормально 3D.
Да и вообще, XNA не самый лучший выбор,
тем более его Mono-переделка.

#9
17:16, 19 мая 2012

Alprog
Нууу, да, с 3D косяк там. Не доделали еще. Просто XNA в этом случае будет нейтральной территорией. Так как использует DirectX на Винде и ОpenGL и OpenGL ES на других устройствах.

#10
23:01, 19 мая 2012

подключай либы через интерфейс
Alprog
> Да и вообще, XNA не самый лучший выбор
чем он тебе не угодил?

#11
23:03, 19 мая 2012

А MonoGame уже в юзабельном состоянии? Когда я последний раз смотрел, было не очень.

#12
15:01, 20 мая 2012

Ignis
> Нууу, да, с 3D косяк там.
Да, у нашего самолёта пока с полётами косяк — не летает... но в целом уже хорошая штука, да.

Dimich
> А MonoGame уже в юзабельном состоянии?
Нет.

ALTAIR
> подключай либы через интерфейс
А как их можно по-другому подключать? Интерфейс — слишком общее слово. О чём ты?

> чем он тебе не угодил?
Он простые вещи делает проще, а сложные — сложнее.
Он тянет ран-тайм. Он легаси.

#13
2:50, 21 мая 2012

Alprog
> Интерфейс — слишком общее слово
Интерфейс это весьма определенное понятие. В ООП.
> Он тянет ран-тайм.
ты про Хна редистрибьютбл? Он может быть включен в установщик. Директ тоже кстате тянет свои либы, физикс тянет, и многое многое другое - не бойся этого.

#14
3:05, 21 мая 2012

Alprog
Ну во первых он рабочий и с 3Д работает только ограниченно и уже очень скоро допилят, во вторых уже в юзабильном состоянии посмотрите в разделе проектов + даже умельцы смогли перенести например Террарию на Линукс без изменений, только при правке либ. В общем ты что-то слушал но не знаешь где

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

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