Форум программистов, компьютерный форум, киберфорум
Наши страницы
gyrgen
Войти
Регистрация
Восстановить пароль
В данном блоге я буду вести записи о состоянии компашки ProFire ( https://vk.com/profirecommunity ) // группа в ВК
Рейтинг: 5.00. Голосов: 1.

Почему OpenGL

Запись от gyrgen размещена 20.11.2017 в 22:38

Почему же OpenGL?

Мы посчитали что OpenGl самый распространённый в рунете и имеет больше информации в освоении, так же наша компания провела небольшой опыт (краштест) и по итогам оказалось что OpenGl более устойчива по FPS (да сам fps у неё ниже чем у DirectX, но при больших нагрузках fps держится стабильнее).

Возможно некоторые задались вопросом -"Можно ли будет пересесть на DirectX?", наш ответ -"Да, можно. В будущем мы планируем добавить функцию переключения этого режима, но это будет возможно только в поздних версиях движка. В первую очередь будет доступна компиляция сцены в DirectX, а затем уже и выбор в редактора в самом движке".
Размещено в ProEngine Движок
Просмотров 608 Комментарии 18
Всего комментариев 18
Комментарии
  1. Старый комментарий
    Аватар для 8Observer8
    Почему вы выбрали именно C# для написания движка, а не Си или C++? Ваша компания проводила какие-нибудь краштесты по этой теме?
    Запись от 8Observer8 размещена 25.11.2017 в 10:08 8Observer8 вне форума
  2. Старый комментарий
    Аватар для gyrgen

    Сравнивание

    Цитата:
    Сообщение от 8Observer8 Просмотреть комментарий
    Почему вы выбрали именно C# для написания движка, а не Си или C++? Ваша компания проводила какие-нибудь краштесты по этой теме?
    В будущем мы будем использовать не только C#, а ещё и C++, но об этом я буду рассказывать чуть позже.

    Скорее всего вы знакомы с 3ds Max, Maya, Unity и другим некоторые программы, так вот эти программы включают в себя C#.
    Точной информацией о том как написана хоть одна из этих программ я не обладаю, но есть разные предположения. Знаю точно я только то, что 3ds Max использует SharpDX для отображения трёхмерной графики. В будущих версиях мы тоже собираемся его внедрить в интерфейс программы (WPF)

    Следовательно раз такие популярные программы используют этот язык, значит он практичен и хорош в своём деле. Это нам очень хорошо показывает 3ds max, у которого при огромном количестве полигонов сохраняется приличный fps.

    Этим комментарием я не хотел обидеть другие языки, мы просто имеем своё личное мнение об CSharp
    Запись от gyrgen размещена 25.11.2017 в 14:40 gyrgen вне форума
  3. Старый комментарий
    Аватар для 8Observer8
    На Википедии 3ds Max справа написано: Написана на C++. Откуда у вас информация, что 3ds Max написан на C#?

    Цитата:
    Сообщение от gyrgen Просмотреть комментарий
    Точной информацией о том как написана хоть одна из этих программ я не обладаю
    На Википедии по Unity написано: Written in C, C++ (Runtime) C# (Unity API)
    На Википедии по Maya написано: C++, MEL, Python, C#

    Да, они включают в себя C#, но они включают так же C++ и это, скорее всего, неслучайно. Можно только гадать, для чего используется C++ в этих программах. Да, CryEngine 5 включает в себя C#, да и Unity включает, но только для написания игровых скриптов и вспомогательных плагинов (расширений движка). Но это нельзя проверить. Может CryEngine 5 использует C# и в своём ядре. C# - это язык со сборщиком мусора и это одна из причин его более медленной работы по сравнению с Си и C++. Языки Си и C++ традиционно считаются языками для написания игровых движков AAA класса и 3D пакетов моделирования, то есть там где нужна очень высокая производительность, то есть скорость. Я не знаю ни одного игрового движка AAA класса, который был бы полностью написан на C#. Может вам лучше сразу писать на Си или C++, а для скриптинга взять C#, Python или Lua?

    Стоит ли использовать SharpDX? На github видно, что он не обновлялся с марта 2016, то есть почти 2 года (1 год и 9 месяцев)
    Запись от 8Observer8 размещена 25.11.2017 в 16:26 8Observer8 вне форума
    Обновил(-а) 8Observer8 25.11.2017 в 16:31
  4. Старый комментарий
    Аватар для gyrgen
    Цитата:
    Сообщение от 8Observer8 Просмотреть комментарий
    Стоит ли использовать SharpDX? На github видно, что он не обновлялся с марта 2016, то есть почти 2 года (1 год и 9 месяцев)
    Ну 3ds max работает же, и служит как проффесиональный инструмент для моделирования.

    Писать можно на чём угодно, главное что бы руки откуда надо росли
    Запись от gyrgen размещена 25.11.2017 в 16:54 gyrgen вне форума
  5. Старый комментарий
    Аватар для 8Observer8
    Цитата:
    Сообщение от gyrgen Просмотреть комментарий
    Ну 3ds max работает же, и служит как проффесиональный инструмент для моделирования.
    3ds Max написана на C++, как указано в Википедии (хотя на вики бывает ложная информация). Я не знаю, где вы нашли, что он использует SharpDX, потому что похоже SharpDX давно заброшен. Если бы 3ds Max её использовала, то библиотека SharpDX бы развивалась активно. Я ещё поверю, что для пользовательского интерфейса 3ds Max использует WPF, но всё остальное должно быть написано на С++, это логично. Но даже информации, что 3ds Max использует WPF нигде нет.

    Цитата:
    Сообщение от gyrgen Просмотреть комментарий
    Писать можно на чём угодно, главное что бы руки откуда надо росли
    Не могу с вами согласиться. Возьмём для сравнения три языка: Python, C# и C++. Представьте себе три команды, которым дали задание написать коммерческие игровые движки AAA класса. Одна пишет без C++, только на Python, вторая только на C#, а третья использует только C++, как в Unreal Engine 4 (да, там есть скриптовый язык Blueprint, но там можно всё писать на C++). При прочих равных движок написанный на C++ будет работать быстрее, чем движки на Python или C#. Или всё-таки есть игровые движки AAA класса уровня Frostbite/CryEngine/UE4, которые написаны на чистом C#?
    Запись от 8Observer8 размещена 25.11.2017 в 17:54 8Observer8 вне форума
    Обновил(-а) 8Observer8 25.11.2017 в 18:02
  6. Старый комментарий
    Аватар для gyrgen

    Всё гениальное просто

    Цитата:
    Сообщение от 8Observer8 Просмотреть комментарий
    Я не знаю, где вы нашли, что он использует SharpDX, потому что похоже SharpDX давно заброшен.
    Я рылся по библиотекам в самой программе. Установите 3dsmax и сразу в первой папке с exe'шником будут нужные библиотеки, то есть SharpDX Скрин . Вот в 2017 и 2016 версии используется точно, проверял лично.

    По поводу различного быстродействия C++ и C# я не знаю, но слухи такие слышал не раз. Сам работал с Java'ой и C# и разницы производительности не заметил
    Ну да конечно если брать Pascal и C# сравнивать, то конечно куда быстрее будет C#, хотя и Pascal можно тоже заточить что бы он всё быстро обрабатывал. Даже если и есть разница в скорости у C# и C++, то я не думаю что она будет большой, т.к. всё таки это продвинутые языки и большое количество программистов на их пишет. Возможно я не прав, но это моё личное мнение. Как говориться люди учатся на ошибках, а лучше всего на своих.
    Запись от gyrgen размещена 25.11.2017 в 21:27 gyrgen вне форума
  7. Старый комментарий
    Аватар для 8Observer8
    Цитата:
    Сообщение от gyrgen Просмотреть комментарий
    Даже если и есть разница в скорости у C# и C++, то я не думаю что она будет большой
    Для бизнес приложений не только нет разницы между C# и C++, но её уже нет даже между C++, Python, JavaScript и т.д. Другое дело - игры, где особые требования к времени выполнения алгоритмов и потреблению памяти. Между двумя кадрами за 16 мсек (1000мсек/60fps) нужно успеть выполнить возможные алгоритмы: пересчёт путей по A* (A стар), просчёт столкновений, сортировки и т.д. Может C# с запасом будет справляться, а может нет. Ещё один вопрос открыт для меня - это потребление памяти и как оно будет влиять на скорость работы алгоритмов. В C++ полный контроль над управлением памяти, в C# памятью занимается сборщик мусора. Мне неизвестно, какие проблемы могут быть со сборщиком мусора, как он влияет на потребление памяти и на время выполнения алгоритмов. В работе CLR я не разбирался. Рихтера не читал. Если будете проводить краштесты по сравнению времени выполнения алгоритмов (и потреблению памяти) на C# и C++, то напишите в своём блоге о результатах. Желательно, с указанием сложности алгоритмов по О-большому. В общем, подробно насколько это будет возможно. Может, действительно, C# не имеет проблем, как язык для написания движков ААА класса и зря его используют только как язык скриптинга игровой логики и для плагинов. Я думаю, лучше на раннем этапе выяснить этот вопрос выбора: C# или C++ для игрового движка.
    Запись от 8Observer8 размещена 25.11.2017 в 22:24 8Observer8 вне форума
  8. Старый комментарий
    Аватар для 8Observer8
    С помощью какой библиотеки вы получаете доступ к OpenGL из C#? OpenTK?
    Запись от 8Observer8 размещена 26.11.2017 в 07:32 8Observer8 вне форума
  9. Старый комментарий
    Аватар для gyrgen
    Цитата:
    Сообщение от 8Observer8 Просмотреть комментарий
    С помощью какой библиотеки вы получаете доступ к OpenGL из C#? OpenTK?
    TaoFramework
    Запись от gyrgen размещена 26.11.2017 в 11:18 gyrgen вне форума
  10. Старый комментарий
    Аватар для 8Observer8
    Это репозитарий TaoFramework? https://github.com/mono/tao
    Запись от 8Observer8 размещена 26.11.2017 в 11:32 8Observer8 вне форума
  11. Старый комментарий
    Аватар для 8Observer8
    Цитата:
    Сообщение от 8Observer8 Просмотреть комментарий
    Это репозитарий TaoFramework? https://github.com/mono/tao
    Последняя активность на репозитарии была 7 лет назад. Другого репозитария с Tao я не нашёл.
    Запись от 8Observer8 размещена 26.11.2017 в 11:50 8Observer8 вне форума
  12. Старый комментарий
    Аватар для gyrgen
    Цитата:
    Сообщение от 8Observer8 Просмотреть комментарий
    Последняя активность на репозитарии была 7 лет назад. Другого репозитария с Tao я не нашёл.
    Какая разница когда он был написан??? Что вы прицепились к этим датам.
    Важно не то когда он был написан, а то как он был написан и как он работает!!!
    Запись от gyrgen размещена 26.11.2017 в 18:22 gyrgen вне форума
  13. Старый комментарий
    Аватар для 8Observer8
    Какую версию OpenGL вы используете? Какая версия GLSL?
    Запись от 8Observer8 размещена 26.11.2017 в 19:38 8Observer8 вне форума
    Обновил(-а) 8Observer8 26.11.2017 в 19:40
  14. Старый комментарий
    Аватар для 8Observer8
    Цитата:
    Мы посчитали что OpenGl самый распространённый в рунете и имеет больше информации в освоении, так же наша компания провела небольшой опыт (краштест) и по итогам оказалось что OpenGl более устойчива по FPS (да сам fps у неё ниже чем у DirectX, но при больших нагрузках fps держится стабильнее).
    Какие версии OpenGL и DirectX вы сравнивали? Я, надеюсь: OpenGL 3 и DirectX 11. По моим наблюдениям это самые распространённые версии. По ним больше всего туториалов. Надеюсь, вы не используете какую-нибудь устаревшую нешейдерную версию OpenGL? Которую ещё называют deprecated/legacy.
    Запись от 8Observer8 размещена 27.11.2017 в 11:30 8Observer8 вне форума
    Обновил(-а) 8Observer8 27.11.2017 в 11:39
  15. Старый комментарий
    Аватар для gyrgen
    Цитата:
    Сообщение от 8Observer8 Просмотреть комментарий
    Надеюсь, вы не используете какую-нибудь устаревшую нешейдерную версию OpenGL? Которую ещё называют deprecated/legacy.
    Нет
    Запись от gyrgen размещена 28.11.2017 в 19:21 gyrgen вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru