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

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

Рекомендуемые сообщения

(изменено)

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

Изменено пользователем Pavel3333

Поделиться сообщением


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

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

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

 

 

 

(на C++)

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

Изменено пользователем Azbuka
  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

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

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

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

 

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

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

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

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

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

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

 

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


 

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

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

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

 

 

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

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

 

 

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

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

 

 

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

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

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

dds

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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


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

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


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Что? Нет!

Где я такое писал?

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

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

Вот графический API на ржавчине: https://github.com/gfx-rs/gfx

Там в описании есть примеры движков на этом API

Изменено пользователем ShadowHunterRUS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Кстати, post-18657-0-97583700-1474392551.png

Ну... Хотя бы без анимации. >3000 строк кода с DX, да?

Вот графический API на ржавчине: https://github.com/gfx-rs/gfx

Там в описании есть примеры движков на этом API

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Что?

Rust это не Rust!

Rust это язык программирования.

https://www.rust-lang.org/ru-RU/

Изменено пользователем ShadowHunterRUS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

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

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

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

 

 

 

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

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

 

 

 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Определился. Буду писать на Плюсах, DirectX. Пока что займусь написанием d3d приложений. 3 октября, когда будут каникулы, буду читать доки по dx.

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Удачи, LOL!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Буду писать на Плюсах, DirectX.

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

Начать стоит с того, что он создан Microsoft, а значит приложение будет работать только на Windows.

В отличии от него OpenGL работает везде.

 

 

 

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

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

Изменено пользователем Azbuka

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Удачи, LOL!

:heh:

Хосспаде, это ж идея) Движок писать - громко сказано, скорее попробовать написать какое-нить приложеньице, способное грузить модельки, размещать их на сцене и хотя бы их рендерить)

На dx или любом другом api работать научиться хочу, одним словом. В прошлом году начал и времени не хватило. Даже книжечки читал)

И не обязательно быстро) Свободное для дел и чтения время - только каникулы.

И еще. Что выбрать из этого?

>DirectX, OpenGL, Vulkan, OpenGL ES

Изменено пользователем Pavel3333

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Pavel3333

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Если тебе только модель вывести надо и хочешь сделать это на C++, тогда посмотри в сторону Qt3D...

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

http://www.koreanrandom.com/forum/topic/1495-/?p=296269

Он изначально поддерживает dds(возможно это заслуга OpenGL) и в него встроен загрзчик из кучи форматов 3D-моделек(Assimp).

Работать с Qt3D удобно, быстро и кода писать немного.

Изменено пользователем ShadowHunterRUS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×