Для какой версии OpenGL/Direct3D я должен быть нацелен для оптимальной совместимости? [закрытый]

8
задан Cœur 22 December 2017 в 06:15
поделиться

3 ответа

OpenGL 2.1 - хороший вариант. Более новый OpenGL 3 не предлагает гораздо большей функциональности. В любом случае вы должны проверить наличие всех расширений OpenGL, чтобы не сильно потерять, придерживаясь версии 2.1.

Для DirectX: используйте DirectX 9c . Это последняя версия, которая все еще работает на WindowsXP. Драйвера стабильные и очень зрелые. DirectX 10 предлагает больше функций, но вы заблокируете базу пользователей, которая по-прежнему работает с WindowsXP.

О совместимости для не-геймеров: Графические карты, которые не поддерживают эти API (по крайней мере, в некоторой степени), вымерли более пяти лет назад. Учитывая типичный жизненный цикл ПК, можно быть уверенным, что ни у кого не возникнет проблем.

Если какой-либо пользователь жалуется, что программное обеспечение не работает на его 10-летней карте matrox-parhelia, ему следует просто купить самую дешевую графическую карту, которую он может получить. Он будет работать намного быстрее и будет стоить небольшую часть программного обеспечения.

6
ответ дан 5 December 2019 в 12:57
поделиться

Я настоятельно рекомендую проверить структуру сериализации. Это даже не близко к производительности базы данных, но, если вы не говорите о большом количестве данных, это имеет примерно на 100% меньше накладных расходов. Сериализация объектов в файл в .net - это игра ребенка:

XmlSerializer serializer = new XmlSerializer(typeof(myObjectType));

using(FileStream stream = new FileStream("file", FileMode.Create, FileAccess.Write)
{
   serializer.Serialize(stream, myObject);        
}

Все!

Чтение назад в значительной степени наоборот. LINQ предоставляет еще больше возможностей. Опять же, это даже не близко к БД с точки зрения производительности, но я видел много, много реализаций, в которых база данных была чрезвычайно переполнена для объема хранимых данных. Очевидно, что если у вас есть явная необходимость масштабировать и т.д., вы захотите спланировать это. Правильный инструмент для правильной проблемы и все такое.

-121--2663110-

Объект Page.CleyScript имеет значение RegisterOnSubmitStatement Это происходит после отправки формы любыми входными данными. Это может быть то, что вы ищете, но я использовал его для уведомления пользователя о несохраненных изменениях в редактируемых формах.

Преимущество использования этого параметра по сравнению с RegisterStartupScript состоит в том, что при использовании RegisterOnSubmitStatement, если пользователь переходит из браузера и обратно, любой сценарий, введенный с помощью RegisterStartupScript, может быть запущен снова, тогда как RegisterOnSubmitStatement будет выполняться только в том случае, если пользователь отправил форму.

-121--2585262-

Фрагментация рынка для трехмерного оборудования всегда была огромной проблемой. Простого ответа нет.

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

Фрагментация рынка значительно хуже с OpenGL, чем с DirectX. Официальные стандартные требования от Khronos Group все хорошо и хорошо. Но поставщики оборудования, как правило, очень медленно обновляют свои драйверы в соответствии со стандартом. Многие функции требуются спецификацией GL, но реализованы только в резервном пути программного обеспечения, который абсолютно непригоден для использования в коммерческом программном обеспечении. Новая спецификация OpenGL 3.1 пытается улучшить эту ситуацию, удаляя поддержку большинства старых, плохо поддерживаемых функций. Но если вам нужно поддерживать аппаратное обеспечение более двух лет назад (или большинство современных интегрированных графических процессоров Intel), то GL 3.1 будет стремиться слишком высоко.

Хорошим местом для начала общего использования оборудования среди покупателей игр является Steam Hardware Опроса ( http://store.steampowered.com/hwsurvey ). Steam - самый популярный сервис распространения цифровых игр, который охватывает разнообразные игры от случайных до основных. Они периодически сбрасывают номера, чтобы сохранить их в актуальном состоянии. В прошлом году они сообщили, что у них 25 миллионов активных пользователей, поэтому выборка населения довольно хорошая.

Поэтому вам, вероятно, нужно больше сужать целевую группу клиентов. Я бы рекомендовал выбрать некоторые последние конкурирующие приложения, которые вы считаете, чтобы иметь аналогичную клиентскую базу с вашим и базировать ваше целевое оборудование на том, что они требуют.

7
ответ дан 5 December 2019 в 12:57
поделиться

Это зависит от временных рамок проекта на стороне DirectX.

Если проект должен быть готов через несколько месяцев, следуйте совету Нильса. ЕСЛИ время больше года, я бы пересмотрел ограничение на DirectX9, поскольку машины XP становятся все меньше и меньше с время. DirectX11 был бы хорошей идеей, особенно с ретро-совместимостью до уровня функций 9.0.

0
ответ дан 5 December 2019 в 12:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: