Форум программистов, компьютерный форум, киберфорум
Наши страницы
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 Движок
Просмотров 633 Комментарии 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 вне форума
  16. Старый комментарий
    Аватар для 8Observer8
    Цитата:
    Какая разница когда он был написан??? Что вы прицепились к этим датам.
    Важно не то когда он был написан, а то как он был написан и как он работает!!!
    На Википедии https://en.wikipedia.org/wiki/Tao_Framework написано, что стабильная версия Tao вышла 9 лет назад. Там же написано "Tao Framework has been superseded by OpenTK", то есть "Tao Framework был заменён на OpenTK". На официальной страничке Tao написано, что "Superseded by OpenTK", то есть "заменён на OpenTK". Если посмотреть в исходники Tao на github, то во всех папках последний раз исправляли ошибки 10-11 лет назад (и только в одной папке Tao.FreeType исправляли 7 лет назад). Судя по всему, Tao заброшен. В нём не исправлялись ошибки 10 лет. Не бывает идеального ПО, оно должно развиваться, как, наприер, OpenTK. Сами разработчики написали на Википедии и на официальной странице для скачки, что Тао заменён на OpenTK.

    Похоже, что единственная популярная библиотека для связи C# и OpenGL - это OpenTK. Посмотрите активность на GitHub: https://github.com/opentk/opentk. OpenTK используют Xamarin и MonoGame. Почему бы вместо Tao не взять OpenTK? Это, конечно, ваше личное дело. Я просто хотел помочь.
    Запись от 8Observer8 размещена 28.11.2017 в 20:04 8Observer8 вне форума
  17. Старый комментарий
    Почему бы и не OpenGL?
    Почему бы и не deprecated/legacy?
    [пафосное троеточие]
    Запись от 532235 размещена 28.11.2017 в 20:52 532235 вне форума
  18. Старый комментарий
    Аватар для 8Observer8
    Цитата:
    Сообщение от 532235 Просмотреть комментарий
    Почему бы и не OpenGL?
    Почему бы и не deprecated/legacy?
    [пафосное троеточие]
    Разработчик продаёт копии своего движка. В группе vk висит ценник - $27. Мне, как потенциальному покупателю, интересны подробности. В одном месте я узнал, что движок пишется на C#, что меня удивило, потому что я думал, что игрвые движки пишутся на C++. Здесь я узнал, что он использует Tao для доступа к OpenGL. Я узнал достаточно. Моё любопытство удовлетворено.
    Запись от 8Observer8 размещена 28.11.2017 в 21:46 8Observer8 вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru