Перейти к содержимому

Фото

Какой движок самый маленький?


  • Чтобы отвечать, сперва войдите на форум
50 ответов в теме

#1 Pavel3333

Pavel3333

    Няффко

  • Пользователь
  • 1 884 сообщений
  • Nick:Buffalo73rus
  • WoT Server:RU (Русский)
  • Skype: pavel.html
  • Город: Москва/Дмитров

Опубликовано 20 Сентябрь 2016 - 15:53

Интересно, во сколько строк кода (C++) обойдется простой графический 3D-движок? Физика - nVidia PhysX.


Изменено: Pavel3333, 20 Сентябрь 2016 - 16:07

  • 0

#2 Azbuka

Azbuka
  • Пользователь
  • 970 сообщений

Опубликовано 20 Сентябрь 2016 - 16:12

Интересно, в сколько строк кода (на C++) обойдется простой графический 3D-движок?

Что подразумевается под простым? Можно и без движка работать - писать сразу для DirectX или OpenGL.

Движок, загружающий модели и текстуры написать совсем не сложно. Строк 500-700, не больше.

 

 

 

(на C++)

Упс, ошибочка вышла. Ну годик-другой уйдет. На изучение C++. 


Изменено: Azbuka, 20 Сентябрь 2016 - 16:12

  • 1

#3 Pavel3333

Pavel3333

    Няффко

  • Пользователь
  • 1 884 сообщений
  • Nick:Buffalo73rus
  • WoT Server:RU (Русский)
  • Skype: pavel.html
  • Город: Москва/Дмитров

Опубликовано 20 Сентябрь 2016 - 16:20

Упс, ошибочка вышла. Ну годик-другой уйдет. На изучение C++. 
 

1 вариант - C++ + windows.h - писать с виндовой библиотекой

2 вариант - C++ + windows.h + DirectX

 

Под простым подразумевалось написание движка, умеющего

1) в физику (хотя бы падение объекта)

2) поддерживающий dds формат текстур

3) умеющий загружать модели вместе с костями и анимацией (анимация загружается сразу с fbx-модели)

4) естественно, свет, хотя бы Omni

5) поддерживающий скрипты на c++/c#

 

Идея чем-то напомнила котовый движок, kotofake вроде звали


На изучение C++. 
 

C++ знаем на уровне консолек. Вы имели ввиду на изучение библиотек, которые я написал выше?


  • 0

#4 Azbuka

Azbuka
  • Пользователь
  • 970 сообщений

Опубликовано 20 Сентябрь 2016 - 16:28

1 вариант - C++ + windows.h - писать с виндовой библиотекой 2 вариант - C++ + windows.h + DirectX

С виндовой библиотекой? DirectX, OpenGL, Vulkan, OpenGL ES и прочее - спецификации для работы с компьютерной графикой. Они позволяют писать приложения, что будут работать на разных видеокартах.

2) поддерживающий dds формат текстур

Текстуры - не проблема. Нужно только поискать библиотеку для загрузки DDS.

3) умеющий загружать модели вместе с костями и анимацией (анимация загружается сразу с fbx-модели)

Сложно. Если загрузить модели можно другой библиотекой, то кости и анимацию нужно реализовывать самостоятельно.

 

4) естественно, свет, хотя бы Omni

Не думаю, что свет станет проблемой.


  • 1

#5 SkepticalFox

SkepticalFox

    ShadowHunterRUS

  • Premium Member
  • 3 491 сообщений
  • Nick:SkepticalFox
  • WoT Server:RU (Русский)
  • Город: Moscow

Опубликовано 20 Сентябрь 2016 - 18:07

Велосипеды наше всё?

dds

почему именно он?

Не думаю, что свет станет проблемой.

Очистка памяти станет главнейшей проблемой.
  • 0

#6 Pavel3333

Pavel3333

    Няффко

  • Пользователь
  • 1 884 сообщений
  • Nick:Buffalo73rus
  • WoT Server:RU (Русский)
  • Skype: pavel.html
  • Город: Москва/Дмитров

Опубликовано 20 Сентябрь 2016 - 18:23

ShadowHunterRUS, намекаете на Питон?
Интерпретаторный же)

почему именно он?

Альфа каналы, DXT сжатие. Да и расшифровывается как DirectDrawSurface image format) +привык к нему)

Очистка памяти станет главнейшей проблемой.

Есть фиксы? Или ручками del[]?)


  • 0

#7 SkepticalFox

SkepticalFox

    ShadowHunterRUS

  • Premium Member
  • 3 491 сообщений
  • Nick:SkepticalFox
  • WoT Server:RU (Русский)
  • Город: Moscow

Опубликовано 20 Сентябрь 2016 - 18:24

намекаете на Питон?

Что? Нет!
Где я такое писал?
Писать новичку на C++ движок, когда есть другие нормальные языки...
Rust вроде норм, но память отъедает...
Вот графический API на ржавчине: https://github.com/gfx-rs/gfx
Там в описании есть примеры движков на этом API

Изменено: ShadowHunterRUS, 20 Сентябрь 2016 - 18:31

  • 0

#8 Pavel3333

Pavel3333

    Няффко

  • Пользователь
  • 1 884 сообщений
  • Nick:Buffalo73rus
  • WoT Server:RU (Русский)
  • Skype: pavel.html
  • Город: Москва/Дмитров

Опубликовано 20 Сентябрь 2016 - 18:30

Rust вроде норм, но память отъедает...

Раст на Юньке. Юньку люблю) 
Кстати, Прикрепленный файл  Безымянный.png   3,94 Кб   0 раз скачано
Ну... Хотя бы без анимации. >3000 строк кода с DX, да?

Вот графический API на ржавчине: https://github.com/gfx-rs/gfx
Там в описании есть примеры движков на этом API

Интересно, почитаю при свободном часике

Изменено: Pavel3333, 20 Сентябрь 2016 - 18:33

  • 0

#9 SkepticalFox

SkepticalFox

    ShadowHunterRUS

  • Premium Member
  • 3 491 сообщений
  • Nick:SkepticalFox
  • WoT Server:RU (Русский)
  • Город: Moscow

Опубликовано 20 Сентябрь 2016 - 18:32

Раст на Юньке. Юньку люблю)

Что?
Rust это не Rust!
Rust это язык программирования.
https://www.rust-lang.org/ru-RU/

Изменено: ShadowHunterRUS, 20 Сентябрь 2016 - 18:33

  • 0

#10 Azbuka

Azbuka
  • Пользователь
  • 970 сообщений

Опубликовано 20 Сентябрь 2016 - 18:37

Есть фиксы? Или ручками del[]?)
 

Ручное управление памятью подразумевает ручное выделение и освобождение памяти. Теоретически, это позволяет писать более эффективные программы, но на деле лишь создаёт проблемы.

Вам нужен язык с автоматическим управлением памятью и сборщиком мусора.

 

Альфа каналы, DXT сжатие. Да и расшифровывается как DirectDrawSurface image format) +привык к нему)

Есть много других форматов, которые ничуть не хуже. Формат нужно подбирать под конкретную задачу.

 

 

Писать новичку на C++ движок, когда есть другие нормальные языки... Rust вроде норм, но память отъедает...

Да и пусть отъедает, если на таком языке можно сразу взять и что-то написать, не изучая его много лет.

Мне вот D нравится.


  • 0

#11 Pavel3333

Pavel3333

    Няффко

  • Пользователь
  • 1 884 сообщений
  • Nick:Buffalo73rus
  • WoT Server:RU (Русский)
  • Skype: pavel.html
  • Город: Москва/Дмитров

Опубликовано 20 Сентябрь 2016 - 18:47

Определился. Буду писать на Плюсах, DirectX. Пока что займусь написанием d3d приложений. 3 октября, когда будут каникулы, буду читать доки по dx.
>Вам нужен язык с автоматическим управлением памятью и сборщиком мусора.
Т.е. С#? Не вариант, dx, имхо, будет криво работать на с#. Не зря же winAPI делали.
  • 0

#12 SkepticalFox

SkepticalFox

    ShadowHunterRUS

  • Premium Member
  • 3 491 сообщений
  • Nick:SkepticalFox
  • WoT Server:RU (Русский)
  • Город: Moscow

Опубликовано 20 Сентябрь 2016 - 18:48

Буду писать на Плюсах, DirectX.

Удачи, LOL!
  • 0

#13 Azbuka

Azbuka
  • Пользователь
  • 970 сообщений

Опубликовано 20 Сентябрь 2016 - 19:00

Буду писать на Плюсах, DirectX.

Зачем торопиться-то? Если не удалось переубедить на счёт языка, то с DirectX'ом ещё не всё потеряно.
Начать стоит с того, что он создан Microsoft, а значит приложение будет работать только на Windows.
В отличии от него OpenGL работает везде.
 

 

 

Т.е. С#? Не вариант, dx, имхо, будет криво работать на с#. Не зря же winAPI делали.

DirectX и так будет криво работать. Вы проведёте много интересных ночей с отладчиком и горячим чаем.


Изменено: Azbuka, 20 Сентябрь 2016 - 19:01

  • 0

#14 Pavel3333

Pavel3333

    Няффко

  • Пользователь
  • 1 884 сообщений
  • Nick:Buffalo73rus
  • WoT Server:RU (Русский)
  • Skype: pavel.html
  • Город: Москва/Дмитров

Опубликовано 20 Сентябрь 2016 - 19:14

Удачи, LOL!

:heh:
Хосспаде, это ж идея) Движок писать - громко сказано, скорее попробовать написать какое-нить приложеньице, способное грузить модельки, размещать их на сцене и хотя бы их рендерить)
На dx или любом другом api работать научиться хочу, одним словом. В прошлом году начал и времени не хватило. Даже книжечки читал)
И не обязательно быстро) Свободное для дел и чтения время - только каникулы.
И еще. Что выбрать из этого?
>DirectX, OpenGL, Vulkan, OpenGL ES

Изменено: Pavel3333, 20 Сентябрь 2016 - 19:15

  • 0

#15 Yupi

Yupi
  • Пользователь
  • 2 454 сообщений

Опубликовано 20 Сентябрь 2016 - 20:00

Pavel3333

  1. Vulkan это современная замена OpenGL + OpenGL ES. Но это не важно, потому что см. п2.
  2. Неправильный подход. Сначала нужно решить что ты делаешь, и какие из этого вытекают требования, а потом уже выбирать средства.

Изменено: TwoPizza, 20 Сентябрь 2016 - 20:00

  • 0

#16 SkepticalFox

SkepticalFox

    ShadowHunterRUS

  • Premium Member
  • 3 491 сообщений
  • Nick:SkepticalFox
  • WoT Server:RU (Русский)
  • Город: Moscow

Опубликовано 20 Сентябрь 2016 - 20:05

И еще. Что выбрать из этого? >DirectX, OpenGL, Vulkan, OpenGL ES

Хороший движок должен поддерживать всё это)

Движок писать - громко сказано

А зачем тогда написал про движок?
  • 0

#17 Pavel3333

Pavel3333

    Няффко

  • Пользователь
  • 1 884 сообщений
  • Nick:Buffalo73rus
  • WoT Server:RU (Русский)
  • Skype: pavel.html
  • Город: Москва/Дмитров

Опубликовано 20 Сентябрь 2016 - 20:07

А зачем тогда написал про движок?

Синонима не нашел. Не то что 3D-редактор, но кагбэ и не совсем движок. Тулза, программа.
  • 0

#18 SkepticalFox

SkepticalFox

    ShadowHunterRUS

  • Premium Member
  • 3 491 сообщений
  • Nick:SkepticalFox
  • WoT Server:RU (Русский)
  • Город: Moscow

Опубликовано 20 Сентябрь 2016 - 20:10

Что выбрать из этого?

Если тебе только модель вывести надо и хочешь сделать это на C++, тогда посмотри в сторону Qt3D...
Пытался на нём Tank Viewer написать, но забил(
http://www.koreanran...1495-/?p=296269
Он изначально поддерживает dds(возможно это заслуга OpenGL) и в него встроен загрзчик из кучи форматов 3D-моделек(Assimp).
Работать с Qt3D удобно, быстро и кода писать немного.

Изменено: ShadowHunterRUS, 20 Сентябрь 2016 - 20:14

  • 0

#19 Pavel3333

Pavel3333

    Няффко

  • Пользователь
  • 1 884 сообщений
  • Nick:Buffalo73rus
  • WoT Server:RU (Русский)
  • Skype: pavel.html
  • Город: Москва/Дмитров

Опубликовано 20 Сентябрь 2016 - 20:13

Пытался на нём Tank Viewer написать, но забил(

Ничоси. А что так? Модельки открывать умеет, текстуры правильно накладывает, дело вроде за малым оставалось, не?
  • 0

#20 Azbuka

Azbuka
  • Пользователь
  • 970 сообщений

Опубликовано 20 Сентябрь 2016 - 20:14

Что выбрать из этого? >DirectX, OpenGL, Vulkan, OpenGL ES

DirectX или OpenGL. Vulkan слишком сырой, OpenGL ES - для встраиваемых систем (телефонов, планшетов).
Выбрать ли DirectX или OpenGL я сказать не могу. И то и другое сложно.
  • 1





0 пользователей читают эту тему

0 зарегистрированных, 0 гостей, 0 невидимых

© Mr 13