LINUX.ORG.RU

Графические библиотеки для C (3D, 2D)

 , ,


1

5

В общем, что на сегодняшний день релевантно в области графических библиотек (3D, 2D) для C? На данный момент щупаю OpenGL. Может стоит сначала разобраться в OpenGL, а потом переходить на какой-нибудь SDL2 (для 2D, а для 3D оставить OpenGL)

Ответ на: комментарий от next_time

Бессмысленно его рассматривать в теории. Придумай задачку для себя (Да хоть пинпонг) За вечер попробуй его сделать. И уже в процессе поймёшь пригодится ли он тебе или ты забудешь про него навсегда. Вот и всё. Ну там демки позапускай.

LINUX-ORG-RU ()
Ответ на: комментарий от insw

Я это вкусил на всём что пробовал. Есть порт на Rust,Vala,ATS, может ещё есть хз. Но они скорее мертвы чем живы.

Ну, так-то да багов много, если с smd анимацией работать так там вообще всё печально. Надо знать нюансы что бы всё не упало. Или просто запилить как надо, но у меня времени на это нет там надо добротно так переписать всё касаемо скелетов

LINUX-ORG-RU ()
Ответ на: комментарий от LINUX-ORG-RU

Все базовые функции любого современного движка на месте (кроме редактора вестимо) Отложенный рендеринг, перезагрузка ресурсов, простые форматы данных без завистмостей кроме SDL2. Написано так что всё не переплетено, а просто расширяет друг друга, структура проекта такая что легко выкидывать ненужно и дополнять нужное. Всё явно и прозрачно. Ну и сам язык С предрасполагает к этому. Идеален для заточки под что-то конкретное это и плюс и минус. Идеален для изучения работы с 3D, не большой. Интересно его изучать.

Там очень примитивная реализация. Потому и просто читать. Переписывать бесполезно - нужно брать сорцы крупных движков, и уже их дорабатывать.

byko3y ()
Ответ на: комментарий от next_time

К слову о багах вот прямо сейчас спустя хз сколько лет нашли и сразу пофиксили мелкий баг в демке, а вчера пофиксили баг с копипастой которому лет 5 так уж точно. И подобного там туевахуча. Так что используй его если не то что нет страха ковыряться в коде, а если только всячески хочется это делать :D Ибо придётся :D

LINUX-ORG-RU ()
Ответ на: комментарий от byko3y

Там очень примитивная реализация.

Зато понятная. Зачем усложнять ради усложнения? И опять же взял да улучшил под себя. А вот для меня вааааще не разбирающегося в вопросе это был жирный плюс я и разобрался как это деалеться и уже потом поднаблотыкавшись где-то узнал, а где-то придумал как сделать лучше (для меня лучше) и сделал. Всё это было интересно полезно и увлекательно. Я знаю досконально как работают все кишки.

Переписывать бесполезно

Спорно. Я переписываю. Хотя вернее сказать дополняю. Тут надо смотреть какие нужды. Если брать основную цель движка «Экперименты с графикой» то вопросов нет и быть не может. Есть база от которой твори что душе угодно

нужно брать сорцы крупных движков

Ну если делать AAA то без вопросов. А так. Пойди попробуй разберись в коде хотя бы godot. Уже не просто. А что-то более крупное? Сасядешь на доооолго =) Тут вообще тогда легче взять совсем совсем что-то готовое вроде Юнриала и всё делать на полноценном движке, но с возможностью если очень надо модифицировать сам двиг. Но ты код видал? Там уже не филькина грамота надо так сказать погружаться причём основательно. Для не шибко знакомых с графикой это просто будет тупик.

Коранж, прямолинейный это просто кучка «модулей» свзязных с друг другом там много сделано плохо. Но это было единственное что я смог найти (А перелопатил я херову тучу) что позволит узнать кухню из нутри без взрыва мозга. Он хороший для обучения и экспериментов, но в более прямых руках может стать основой для хорошей игры. Ну или личных экспериментов я например пытался свой видеокодек делать простецкий и для визуализации и одновременной простой работой на С лучше варика тупа не нашёл.

Да есть куча всего на десятки голов лучше коранжа. Но он так сказать в нужном состоянии в нужном месте. И не сложный, но и не совсем пустой. И уж точно его нельзя сравнивать с готовыми игровыми движками. Пока что на текущий момент (и так и останется скорее всего) это полигон, а уж что из него будет кто делать дело каждого. Можно выкинуть всё и оставить 2D и на нём делать кастомный интерфейс к примеру или графики визуализировать или ещё чего =)

Ах да, забыл самое важное. Мне его кишочки просто нравки поэтому я Няяяяяяяяя и всячески хвалю. Порой слишком, ну да и ладно Пиууу

LINUX-ORG-RU ()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от next_time

Сети нема :D То что есть чисто для вида. Придётся всё самому делать на SDL_net. 2D Физику либо полностью самому химичить (хитбоксы считать как минимум) либо юзать UI элементы в качестве 2d основы и проверять на вхождение точек в прямоугольник. Ну такое. Можно конечно ui это просто условность.

Хотя есть там демка 2d платформера, можно взять за основу или просто для подумать надо тебе оно или нет, даже уровни можно делать (они в текстовом формате можно по быстрому наколенить редактор).

Ну удачи =) Если будут успехи отпиши. Интересно. Или если выберешь иной двиг тоже будет интересно. Добро пожаловать в семью!

LINUX-ORG-RU ()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от LINUX-ORG-RU

Пойди попробуй разберись в коде хотя бы godot. Уже не просто. А что-то более крупное? Сасядешь на доооолго =) Тут вообще тогда легче взять совсем совсем что-то готовое вроде Юнриала и всё делать на полноценном движке, но с возможностью если очень надо модифицировать сам двиг. Но ты код видал? Там уже не филькина грамота надо так сказать погружаться причём основательно. Для не шибко знакомых с графикой это просто будет тупик.

У UE 4 базовый функционал 40 Мб, у Godot - 20 Мб. Дальше идет редактор и кучу-кучу расширений, которые включены без изменений, в лучших традиция bloatware. Но нужно понимать, что у годота, например, 4 Мб занимают одни модули движков скриптов, еще 1 Мб - код для андроида, еще 2 Мб - сервер. В итоге кода самого движка остается на полляма строк, из них растеры-шейдеры GL ES 2 или 3 занимают всего 800 Кб, то есть где-то 40 тыс строк каждый, что сравнимо с Corange. А UE 4, соответственно, лишь немного больше, и в плане базовых функций, и в плане драйвера Open GL. Да, создатели UE заново реализовывали свои базовые структуры (массивы, списки, ассоциативные массивы), malloc, TLS, локализация одна только на 25 тыс строк - короче, они сделали заново все клиентские либы под все ОС и стандартную либу свою собственную. Соответственно, если ты используешь вместо этого тупо SDL, то внезапно размер необходимого кода скукоживается, как пипирка на морозе. Воспринимай код Godot/UE так же, и тогда внезапно выяснится, что они ненамного больше, чем Corange.

Ну или личных экспериментов я например пытался свой видеокодек делать простецкий и для визуализации и одновременной простой работой на С лучше варика тупа не нашёл.

С каких пор у нас отображение картинки стало большой проблемой? Пользовательский интерфейс для «офисного» софта намного лучше пишется на тех же wx/GTK/Tk/etc.

Ах да, забыл самое важное. Мне его кишочки просто нравки поэтому я Няяяяяяяяя и всячески хвалю. Порой слишком, ну да и ладно Пиууу

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

byko3y ()
Ответ на: комментарий от frugurt

квадратик и играться с ним.

Завывающий пиксельный ветер переплетающий цвета двумерного мира на поверхности великого плато текстурогона - вщщщщщщщ - предвещал только его.

Его чья природа выходила за рамки обыденности. С громом отдающегося в ушах стона разверзающегося пространства прямо по средине текстурогона в мнговение ока появляется экси-турон ,шестиплоскостной монстр водрузивший себя на плато и взирающий своими тетравешинами одной из плоскостей к верху замер.

И замерло всё. И ветер которого и нет. И цвета поблекли. Он ждёт. Когда его семья придёт к нему

Проворная сестра Эна точная как пуля, Брат Дио прямолинейный и целенаправленный. Прекрасная Трия очаровывающая своей формой и острая как пика.

Много тысяч фреймов ждал экси-турон свою семью восседая на плато текстурогона, но фруструм что проливает свет на мир был пуст.

И тут по велению события свыше экси-турон получил силу движения. Будто не сам он, а мир вокруг него получил движение. Однонаправленно взирая вершинами ввысь оставаясь на месте но совершая движение вместе с оком фруструмома экси-турон начал своё странствие снова поднимая под собой на плато пиксельный ветер сменяющих друг друга цветов в надежде и цели найти свою кровь и плоть от отца своего и матери и вместе позволить исполниться прендачертаниями свыше по событиям от великой и могучей клавтиатуре которая как проводник меж этим миром и тем что невозможно понять лишь шлёт закон которому невозможно сопротивляться, а только с гордостью исполнять и повиноваться.

Дриииинь Дрииииинь Звенит телефонная трубка Толик оторвавшись от мониторя тянет свою лапу к трубке.

В трубке - Толик ты сюжетку отписал? Через два часа нам топать показывать

Толик - Написал. Вот сейчас перечитывал. Хз мне кажется норм.

В трубке - Демка я так понимаю тоже готова?

Толик - Эммм. Ты говрил что у них хорошо с фантазией так?

В трубке - Ну да там типа люди искусства инди бывшие и всё такое

Толик томным взглядом смотрит в монитор на котором во весь экран растянута текстура и по середине торчит квадрат который он нажимая поочерёдно на a/d качает в стороны.

Толик - Ну раз инди, ну рас искусство… Демка готова. Пусть готовят бюджет. Ха!

В трубке - Ты уверен?

Толик - Я не уверен, я ТЕТРАГРАМАТОН!

В трубке - Чё?

Толик - Овал через плечё, ща иду

Ту–ту–ту–ту–ту.Ктк.

«В больном уме квадрат подобен миру» Квадратируй короче =)

Сначала квадратик, потом https://www.youtube.com/watch?v=2bE68FB_GaU

LINUX-ORG-RU ()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Сети нема :D То что есть чисто для вида. Придётся всё самому делать на SDL_net.

это-то, кстати нормально

2D Физику либо полностью самому химичить (хитбоксы считать как минимум) либо юзать UI элементы в качестве 2d основы и проверять на вхождение точек в прямоугольник

а вот это уже печалит, ИМХО мастхев функция для любого движка

Или если выберешь иной двиг тоже будет интересно

думаю, придётся другой :( именно, чтобы хитбоксы не считать

next_time ★★★★★ ()
Ответ на: комментарий от next_time

Ну, да видимо придётся другой. Но никто не гарантирует что его не укусил инженер и он уже не имплементирует свою реализацию расчёта 2D коллизий =) или не пишет обёртку для box2D :D Я главное предупредил. А уж там видно будет =) Просто механики 2D игр настолько разные могут быть что я боюсь ванговать какая именно задумка у него. Главное что бы интерес не угасал, остальное дело десятое.

LINUX-ORG-RU ()