Jump to content
Korean Random
Pavel3333

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

Recommended Posts

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

Edited by Pavel3333

Share this post


Link to post

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

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

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

 

 

 

(на C++)

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

Edited by Azbuka
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

 

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

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

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

 

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

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

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

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

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

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

 

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


 

 

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

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

Share this post


Link to post

Short link
Share on other sites

 

 

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

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

 

 

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

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

 

 

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

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

 

 

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

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

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

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

dds

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

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

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

Share this post


Link to post

Short link
Share on other sites

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


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

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


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

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

Share this post


Link to post

Short link
Share on other sites

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

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

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

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

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

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

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

Share this post


Link to post

Short link
Share on other sites

 

 

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

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

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

 

 

 

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

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

 

 

 

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

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

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

Share this post


Link to post

Short link
Share on other sites

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

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

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

Share this post


Link to post

Short link
Share on other sites
Буду писать на Плюсах, DirectX.

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

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

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

 

 

 

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

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

Edited by Azbuka

Share this post


Link to post

Short link
Share on other sites

Удачи, LOL!

:heh:

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

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

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

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

>DirectX, OpenGL, Vulkan, OpenGL ES

Edited by Pavel3333

Share this post


Link to post

Short link
Share on other sites

@Pavel3333

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

Share this post


Link to post

Short link
Share on other sites

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

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

Share this post


Link to post

Short link
Share on other sites

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

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

Share this post


Link to post

Short link
Share on other sites

 

 

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

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

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...