24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Буду делать что-то на опенгл(Очередной треугольник)
Решил завести небольшой тредик, и стараться отписываться по мере того как появится прогресс. Ну типа для мотивации, если вы понимаете о чем я. На данный момент настроено только окружение для кодинга. Пытаюсь загрузить треугольник.
>>463684 Пока буферы наименьшая из проблем, для разработки был выбран старенький легкий ноут, для того чтоб мог лежать закутавшись в пледик. Но убил час, а может и больше на то чтобы понять что он не поддерживает выше 3.0 ГЛ, следовательно вершинные массивы и прочие плюшки не доступны.
Есть другой ноут, там должно запуститься, наверное, скрещу пальцы и перенусу туда.
Пока в планах нарисовать хоть какой нибудь треугольник. Точно не помню, но вроде ненужны шейдеры, чтоб отрендрить простой треугольник без цвета.
>>463771 >не поддерживает выше 3.0 ГЛ, следовательно вершинные массивы и прочие плюшки не доступны >вершинные массивы Они же вроде были до 2.0 даже ещё.
>>463771 Посмотри простые ексемплы в книге Краснова, как делать простейшие примтвы, точку, грань, вершину, полигон и пр. И заучи их наизусть. Затем попробуй не подглядывая написать простенькие колы для отрисовки треугольника вершины и пр. Учи всё полностью, даже функции которые отвечают за инициализации контекста GL
>>463772 Все исправил, дело было в последовательности инициализации gl'a. Но вроде у меня старый ноут не сможет поддерживать шейдеры выше 130 или как то так. Так что рано или поздно придется перекатываться на что то посовременнее.
Здравствуйте, я не ОП, но можно я буду тут с ОПом параллельно пилить свои душевные велосипеды?
Я думаю нам вместе по пути, потому что я тоже пишу на чистом си. У меня уже имеется загрузка модели, но пока без освещения. Начал изучать орепГЛ ещё в мае и там же забросил. Сейчас снова раскопал то, что тогда накодил и решил продолжить. Пока рефакторю.
Собственно у меня имеется пара вопросов.
Что посоветуете в качестве формата сцен и моделей, чтобы была открытая спецификация формата и при этом легко и без глюков экспортировалось из блендера? Сейчас есть самописный загрузчик wavefront'овского obj формата, по мне он достаточно удобен.
В openGL имеется возможность рендеринга не только треугольных полигонов? Блендер сам их генерирует и спокойно рендерит, в связи с чем приходится насильно все полигоны приводить к треугольным, а из-за этого модель выглядит уже не так, как с многоугольными полигонами. Что по этому поводу погуглить?
>>464559 Хуением, сам опенгл, и вообще рендер и физика не так сложны. Всякие компиляторы постоянно ошибки выдают. И хуй пойми откуда и почему, туториалы типа как нарисовать сову вообще нихуя не проясняют. Инструменты сделаные макаками с руками растущими из жёпы, ими вообще невозможно пользоваться. Сука уже 4 языка пробывал, думаешь что стало проблемой опенгл? может матрицы поворота? может оптимизация? хуев тебе на ротан. Постоянно какие то ошибки компиляторов, среды, иде, сборщиков, операционной системы, драйверов, железа, памяти, неба и аллаха. Хах опенгл сложно, да что ты знаешь о сложности
>>464602 >Постоянно какие то ошибки компиляторов, среды, иде, сборщиков, операционной системы, драйверов, железа, памяти, неба >Хах опенгл сложно, да что ты знаешь о сложности У тебя шизофазия.
>>464602 Люто, бешено, неистово удваиваю. Только что четыре часа подряд ебался с подключением GLUT. Ведь в каждой книжке-мнишке сразу пишут НУ ТУТ ЕТА КАРОЧИ ОЧИНЬ УДОБНАЯ ЛИБА БИРИ БАЗАРЮ ЕЩЁ ЗАХОЧЕШ АТВИЧЯЮ ОЧИНЬ УДОБНА. И ты добавляешь ещё один слой абстракции, где всё может сломаться. Как будто у нас мало мест, где может сломаться, надо добавить ещё. Ещё, ещё, моар говна, промежуточная компиляция, УДОБНЫЕ библиотеки, клёвые макросы, переворачивающие всё с ног на голову (привет, GTK), различные версии различных библиотек, баги, неявное поведение, больше, ещё больше дерьма, нерелевантного выполняемой задаче! Больше технической бюрократии, а то жизнь слишком лёгкая! Треугольников он захотел нарисовать, ишь!
>>464708 согласен, но ты же сука все понял? где шизофазия, где то самое "нихуя не понятно". Но ты не понял другое, не на одну иде, а на десяток иде. Это не разовый случай. Так постоянно и ошибок все больше, чем сложнее функционал. Таких, что ни в гугле, ни в доках не описано. И проблема не в кривой установке, если делаешь по туториалу все заябись, шаг влево, шаг вправо и пизда, ты нихуя не разберешься. Это блять легитимное бомбление.
А я тем временем отказался от формата wavefront (.obj) и начал делать парсер формата COLLADA (.dae). На данный момент парсит только геометрию, да и то текстурный маппинг проебался, да и то пока непонятно где -- в парсере или при экспорте из блендера.
>>464715 Если ты про GLUT, то я не использую GLUT. Я использую GLFW и GLEW (не очень пока понимаю что это всё такое), настроенные по описанию на https://learnopengl.com/
>>464730 Нет, ты падажжи! Есть ведь ещё просто SDL! Ещё есть GLUT, GLU, WGL! Это очень удобные библиотеки! Они так всё упрощают! Так легко с ними! Обязательно попробуй!
>>464732 sdl2 заменяет glfw. glew дает доступ к опенгл функционалу находит их в памяти. Остальное от лукавого. Ну, а вообще тру конечно на винапи окно создавать с hdc, потом через getprocaddress биндидь все функции от гла. И никаких прослоек хуеек.
Оп здесь, вообщем пробую директх. Чо я так привязался к этому глу, не знаю. Как чо получится напишу тут. Не буду никаких движков использовать и тд, винапи и либы директикса.
>>466797 Надеюсь ты не разочаруешься. DirectX всё-такие не самый кросплатформенный и открытый инструмент, хотя я с ним не знаком.
А я на правах безнаказанности поделюсь своим прогрессом. Продолжаю делать загрузяик сцены формата Collada. Сделал загрузку всех моделей из файла, но без текстур. Следующим шагом планирую сделать загрузку матриц трансформации каждого объекта. Так же для удобства изучения сделал оси и отдельный шейдер для них. Теперь нужно понять, насколько они правильные.
>>464283 >Что посоветуете в качестве формата сцен и моделей, чтобы была открытая спецификация формата и при этом легко и без глюков экспортировалось из блендера? ГОРАЗДО проще и быстрее написать экспортер в свой формат. В блендере все достаточно просто в этом плане. У меня экспорт меша - функция в 200 строк. >Блендер сам их генерирует и спокойно рендерит Внутри у него все равно треугольники, которые можно получить через calc_tessface()/tessfaces
>>467220 > проще и быстрее написать экспортер в свой формат Я думаю без опыта с трёхмерными сценами это был бы большой, колючий кактус, который я бы постоянно переписывал и перестраивал туда-сюда со всех сторон с каждой добавленой фичей. Может быть я в конце концов сделаю свой формат, который будет удобнее, но пока остановился на колладе, которая может содержать огромное количество типов объектов и разных параметров, описывая одну сцену. Пока разбираюсь какие объекты (камеры, свет, меши, NURBS и т.д.) вообще бывают, какие у них могут быть параметры и как некоторые из них преобразовывать в нужные мне.
>>467245 >Я думаю без опыта с трёхмерными сценами это был бы большой, колючий кактус Так зачем что-то сложное изобретать для сцены? Сложность будет только с сетками, потому что в блендере они сложно устроены: группы вершин со своими материалами, наборы текстурных координат, веса для костей. Но с этим можно разобраться за неделю, зато потом использовать по-максимуму. Для объектов сцены ничего сложнее простого XML обычно не нужно. Тупо иерархия, тип, матрица и свойства объекта как в блендере. Все, сцена готова.
Продолжаю пилить парсер коллады. Прикрутил какое-никакое тестирование, ибо кода там уже за 1000 с лишним строк перевалило, при том что это только парсинг геометрий. Надеюсь переехать на TDD насколько это возможно в сях. Около половины почти всего времени уходит на поддержание структурированности проекта и хоть какой-то чистоты кода, потому что опыта разработки ПО у меня мало. Вторая половина уходит на ковыряние в парсере. Остальную маленькую часть я потратил на изучение самого OpenGL - подробно изучил как пользоваться VBO и IBO, что значит каждая функция, использующаяся от их генерации, до рендеринга и их удаления, пытался понять как работает весь автомат состояний OpenGL'а, но естественно до конца его понимания ещё очень далеко.
Есть в планах подробно поковырятся в шейдерах как 4к-интро-разработчики - сделать ливлоадинг шейдеров и развлекаться с тригонометрией. Но это когда я до света дойду, а свет в планах стразу после парсинга материалов и загрузки текстур. Теперь это мой тред-дневник
>>469544 А как ещё сцены загружать? Понятно, что в конце разработки у меня будет свой бинарный формат. А пока посижу на колладе, вон блендер из коробки с ней дружит.
>>469592 У тебя есть положительный опыт работы с ней именно на си? Удобная вещь? Месяцев восемь назад я отказался от неё так и не попробовав, потому что она крестовая. Тогда это был мой сильно выраженный юношеский максимализм в сторону минимализма в ПО. Сейчас подотпустило слегка, но тем не менее я всё ещё велосипедист. Кресты не знаю и не планировал изучать ни тогда ни сейчас. Сейчас снова открыл сайтик assimp'а и там вся документация крестовая. Неудобно получается, хотя вроде есть биндинги в си.
>>470230 Добро пожаловать! Только я тут, похоже, пока один. ОП почти две недели назад ушёл осваивать винапи и DirectX (>>466797). Надеюсь с ним всё хорошо и он ещё не передумал, а то молчит, не делится результатами.
>>470250 ОП здесь. Пока желания нету. Застрял на написании структур данных для загрузки и хранения вершин, желание дальше пилить пропало. Пытался найти под си более менее адекватные либы для структур, в итоге один glib который надо собирать красноглазой магией, поэтому в топку глиб. Переходить на язык уровнем повыше не интересно. Поэтому пока нахожусь в стагнации, открываю разок в день проект, смотрю на эти малоки реалоки, меня отпускает, и закрываю.
>>470255 По поводу директа, то что я пока узнал про него, в его пользу. Сразу шейдеры, звук работа с вводом и еще много всего интересного до чего я пока не дошел. Подключается все, почти что само. После гла это как бальзам на душу. Документация и инфы в сети куда больше про директ. Никто не посылает читать швятой штандарт написанный кросплатформенными трансегндерами, а дает примеры из доков.
Вообщем, такие дела. Писать стукрурки данных это наискучнейшее занятие, убивающее весь кайф от кодинга.
>>470828 Что у тебя там за структуры такие сложные? До материалов уже дошёл что ли? Для этого всё-равно таких типов в glib нет, самому писать придётся. А на модель всего-то полей шесть надо. И никаких списков и хэшмэпов - двухмерных массивов хватает с головой. Тот же String куда проще держать в виде указателя на указатель типа char, чем делать указателем на структуру, о чём я немного жалею и только самописный условный деструктор меня в этом радует.
>>470836 не стрктуры а структуры данных, связанный список, хэш таблица типа и так далее. Это надо для самописного загрущика обж модели. Типа чтоб динамически доавлять элементы в массив и тд. В жлиб оно есть
Ты же все равно на DX перешел и зашкварился об неверный ООП, так что хуячь уже на плюсах со стандартной библиотекой и не еби мозг.
Алсо, самое главное преимущество DX - ОХУЕННЫЙ отладчик GPU и относительно стабильная работа драйверов (хотя и там бывают косяки, но по сравнению с говноГЛ - небо и земля).
С говногла ты вовремя ушел - ты бы там еще навернул сладкого хлеба вида "вот тут кор-функция не работает, но работает делающая тоже самое ARB, а тут нужно в зависимости от платформы или NV_ или AMD_ использовать".
>>470888 А я кому то тут мозги ебу? Не хочу стандартное говно плюсовое использовать.
Я не особо умею в ооп, если бы умел и дрочил на это все, сразу писал бы с полиспермизмом соследованием инкончиляцией.
А так буду сидеть просто ждать вдохновения.
Кстати ты столько всего описал, что могет дх, но я пока до таких глубин не опустился. Но то что видел, позволило предположить, если не сильно углублятся в зависимости гла или дха, вполне портировать можно с одно на другой и обратно. Достаточно выделить лишь слой для работы с глом и дхом.
Я как то полгода назад интересовался вебглом, вполне забавная вещь, но проиграл когда понял что вао туда еще не завезли. Либо я чето не так понял. Я к чему это, если рассматривать вегл для прототипирования гл приложения и проверки-дебага шейдеров, очень даже интересно выглядит.
Спасибо за внимание.