- Видео 12
- Просмотров 171 459
Mimocake
Россия
Добавлен 30 май 2023
Какой-то семнадцатилетний анимешник пытается не написать говнокод (получается не очень).
Памятные даты:
1 000 просмотров - 11.08.23
50 000 просмотров - 03.05.24
250 000 просмотров - ???
1 000 000 просмотров - ???
100 подписчиков - 25.08.23
500 подписчиков - 14.10.23
1 000 подписчиков - 11.05.24
5 000 подписчиков - ???
10 000 подписчиков - ???
Памятные даты:
1 000 просмотров - 11.08.23
50 000 просмотров - 03.05.24
250 000 просмотров - ???
1 000 000 просмотров - ???
100 подписчиков - 25.08.23
500 подписчиков - 14.10.23
1 000 подписчиков - 11.05.24
5 000 подписчиков - ???
10 000 подписчиков - ???
Как работает 3D графика? | Написал свой 3D движок с нуля
Всем привет! Сегодня я решил рассказать вам о том, как работает 3д графика, и как написать свой небольшой 3д движок с нуля!
Туториал, которым я сам пользовался: ruclips.net/video/ih20l3pJoeU/видео.html
Github: github.com/MimocakeYT/3D-Engine
Заходи в мой телеграм: t.me/mimocaketg
Music:
massobeats - mango tea
massobeats - floral
Last Stop - Karl Casey
На момент загрузки 1776 подписчиков
Эпизоды:
0:00 Интро
0:54 Как все началось
1:51 Как нарисовать 3Д модель?
2:41 Векторы
3:38 Проецирование точки
7:33 Матрицы
10:45 Первое изображение
12:04 Повороты
13:17 Векторное и скалярное произведения
16:23 Освещение
18:04 Управление камерой
21:03 Клиппинг
23:44 Импортирование готовых моделей
27:19 Проблемы движка
29:17 Издев...
Туториал, которым я сам пользовался: ruclips.net/video/ih20l3pJoeU/видео.html
Github: github.com/MimocakeYT/3D-Engine
Заходи в мой телеграм: t.me/mimocaketg
Music:
massobeats - mango tea
massobeats - floral
Last Stop - Karl Casey
На момент загрузки 1776 подписчиков
Эпизоды:
0:00 Интро
0:54 Как все началось
1:51 Как нарисовать 3Д модель?
2:41 Векторы
3:38 Проецирование точки
7:33 Матрицы
10:45 Первое изображение
12:04 Повороты
13:17 Векторное и скалярное произведения
16:23 Освещение
18:04 Управление камерой
21:03 Клиппинг
23:44 Импортирование готовых моделей
27:19 Проблемы движка
29:17 Издев...
Просмотров: 27 528
Видео
АИМБОТ против ТЕСТА НА СКОРОСТЬ РЕАКЦИИ и не только | Human Benchmark
Просмотров 5 тыс.6 месяцев назад
Сегодня я решил сделать программу, которая ставит мировые рекорды на сайте humanbenchmark.com, где собраны различные тесты на скорость, реакцию, память и т.д. А именно Время реакции (Reaction time), Тренировка аима (Aim trainer), Зрительная память (Visual memory), Память последовательностей (Sequence memory) Телеграм: t.me/mimocaketg Rutube для ПАТРИОТОВ: rutube.ru/channel/38701753/ GitHub: git...
Компьютер рисует ИДЕАЛЬНЫЙ круг в игре на NEAL.FUN
Просмотров 5 тыс.6 месяцев назад
В этом видео я решил обыграть игру, где надо нарисовать идеальный круг, с помощью программирования Telegram: t.me/mimocaketg Music: massobeats - gingersweet На момент загрузки 1175 подписчиков #nealfun #python #coding #программирование
Написал НЕПОБЕДИМЫЙ ИИ для Крестиков Ноликов (на C++)
Просмотров 4,6 тыс.9 месяцев назад
В этом видео я решил написать НЕПОБЕДИМЫЙ ИИ для крестиков ноликов. Видео про минимакс: ruclips.net/video/l-hh51ncgDI/видео.html GitHub: github.com/MimocakeYT/TicTacToeAI Заходи в мой телеграм! t.me/mimocaketg Music: ruclips.net/video/Rxae3UZv_zI/видео.html На момент загрузки 726 подписчиков
Всё об указателях в C++ за 20 минут
Просмотров 37 тыс.9 месяцев назад
Сегодня я расскажу о такой важной теме языка С , как указатели. Если это видео вам понравится, то обязательно ставьте лайки и подписывайтесь на канал: вам не сложно, а мне приятно. 90% информации взято из книги Р. Лафоре Телеграм: t.me/mimocaketg #C #указатели #программирование На момент загрузки 604 подписчика
Отрицательная индексация массива в С++ как в Python?
Просмотров 2,7 тыс.Год назад
Сегодня поговорим об отрицательной индексации массива в c как в python Telegram: t.me/mimocaketg #программирование #cpp На момент загрузки ок. 200 подписчиков
ХУДШИЙ ЯЗЫК ПРОГРАММИРОВАНИЯ - Brainf**k | Обзор языка
Просмотров 12 тыс.Год назад
Как вы думаете, какой самый плохой язык программирования? Может JS из-за его странного приведения типов? Или питон из-за его медлительности? Или же С из-за его небезопасности. А что, если я вам скажу, что существуют эзотерические языки программирования, которые были созданы специально, чтобы программисты страдали во время работы с ними. Наверное самым известным таким языком является Brainf k. Н...
ИИ УЧИТСЯ ИГРАТЬ В 2048
Просмотров 4,5 тыс.Год назад
В этом видео я попробовал написать ИИ для популярной игры 2048. GitHub: github.com/Mimocake/AI-learns-to-play-2048 Статья про метод Монте-Карло: habr.com/ru/companies/edison/articles/437118/ #программирование #2048 #искусственныйинтеллект #cpp
Сделал СИМУЛЯТОР ГРАВИТАЦИИ | Программирование C++ / SFML
Просмотров 9 тыс.Год назад
В этом ролике я сделал симулятор гравитации за день на языке программирования C с помощью библиотеки SFML. Полезные ссылочки: SFML: www.sfml-dev.org/ Как я разобрался с SFML: www.sfml-dev.org/tutorials/2.5/ GitHub: github.com/MimocakeYT/GravitationSimulation Ссылки на видео Онигири и foo52ru в закрепленном комментарии #C #программирование #sfml
Mono шрифты: просто существуют
Почему ты сидишь в моем левом ухе
бро прощу выпускай видосы по чаще особенно про с++ туториалы по типу этого
Только левое ухо понял
7:25 я ничего не понимаю
Ты мог бы проскипать множество совсем низкоуровневых тонкостей, если бы использовал в качестве графического апи DirectX, в нем уже есть готовая векторная и матричная математика, а также есть примеры написания своего движка на каждой версии апи в старом DirectX SDK и в интернете в принципе (К слову SFML не создана для 3д графики, лучше переписать движок на DX, OGL или Vulkan)
9:05 переменная i размещается на стеке, имеет автоматическое время жизни (для статического размещения нужно добавить ключевое слово static). Еще есть неточность про статическое время жизни и невозможность записи другого значения. Пример - обычная глобальная (не const) переменная.
Люди я не понял всё понял про ссылки и указатели
Сплагиатил у Айвена Сазерленда
попробуй сделать загрузчик 3d моделей в формате fbx
Попробуйте Malbolge
Ура, наконец-то движок игры на котором потянет мой пк!
А я покакал сегодня
-Ухо
А это… Как ты вычислил все эти примеры
Племянник вектозавра?
оказывается матеша еще как нужна в программировании...
На следующий элемент и предыдущий, если я не ошибаюсь. Я про list
2 канал вектозавра?
Капец! мне 40+ и только сейчас я узнаю, а где использовать в жизни синусы, косинусы, матрицы.., которые преподавали в учебных заведениях, и естественно уже ничего не помнишь. Спасибо за видосики ) Большинство (95%) пользователей, открыв в браузере 3Д игрушку на юнити, или в телефончике, даже не подозревают сколько и каких вычислений производит их устроиство что бы бабочка хлопала крылышками
я тебя шокирую, но в том же анрил энджине вообще адская математика и физика, чтобы добиться настолько реалистичной картинки и физики
КОмментаторы, которые пишут про плагиат, дурачки, которые не шарят за программирование. С такой точки зрения игры и все программы, это ВСЕ Плагиат каких то истоков (Надеюсь они с ними не в одной комнате, эти истоки) Те же кнопки, тумблеры, скроллеры, выборы файлов... Те же буквы в коде. Не обращай внимания!
6:41 можно использовать тригонометрические тождества
Вырос с нуля
Как же весело было делать примерно такой-же движок в mindusrty, без классов, без функций, без многомерных массивов! А какое удовольствие было писать все матричные переходы, мммм!
Превью здесь это имба
не думал что 1 курс мат. анализа так пригодится)
Рассказать про принцип работы, но не показать поэтапно как всё работает - классика. Никто из новичков не поймёт как на практике достичь твоего результата. Спасибо я могу сказать только лишь тому англоязычному программисту, на чьё видео по созданию 3D движка я однажды как и ты наткнулся, шедевральный человек с умной головой, его гайды - лучшее что есть в ютубе и вообще в интернете.
Он скопировал онигири
шешес
Бро, во-первых sfml не лучшая библиотека для 3d. Используй GLFW + GLEW. Также используй щейдеры на GLSL. Opengl это не конкретная библиотека, а лишь api, к нему есть разные реализации
Не в полной мере раскрыта тема однородных координат (векторов на 4 элемента, где ты просто единичку добавил) Идея заключается в том, что мы ставим 1 если это точка и 0 если это направление, потому что такие операции как перемещение, например нужно применять к точке но не нужно применять к направлению. В случае с растеризацией это может играть роль при работе с нормалями для создания эффектов затенения. Лучше не городить огрод, а использовать готовые матрицы из библиотеки glm
Продолжай в том же духе, у тебя отлично получается. В ютубе на русском по с++ мало кто снимает, Winderton и еще пару, но ты делаешь лучше их в плане визуализации, с такими примерами как этот 2:32, наааа много лучше понять.👍
Спасибо за видео, классно объяснил👏🏻
Как-то писал свой софтверный рендер на SDL + C, могу скинуть репу если нужно. В целом у тебя получилось намного лучше, у меня же какие-то траблы с растеризацией и попиксельной заливкой SDL, из-за чего фпс падает до пары единиц) Изменено: а ну да, ещё загрузку моделей не делал, только одинокий кубик
Братан, го на Vulkan как и я
А Дум уже запускали в консоли🧐
Типичные фанаты онигири: нифига не шарят в коде и технической составляющей как таковой, а сравнивают лишь по обложке
музыка в интро: kupla - lavender
Блин, здесь если на x2 смотреть непонятно ничего(
ты моооооооооооооощь!!
Здравствуйте, @Mimocake! У меня возник следующий вопрос: в приложении microsoft visual studio я создал проект на с++ с использование библиотеки SFML; как мне скомпилировать данный проект в EXE файл, чтобы он работал на других ПК под управлением Windows.В моем случае, если я переношу этот EXE на другой ПК, то при запуске этого файла на экране выходят множества ошибок типа: не хватает файлов dll для дальнейшей работы...
Как логичный вариант: попробуй упаковать .exe файл вместе с .dll файлами относящимися к sfml, однако тут надо подумать Изменено: но тип я за c++ не очень шарю
Тут надо либо линковать библиотеку статически, то есть без dll'ов, либо надо вместе с ехе и dll скопировать в ту же папку. А сами длл можно скачать вместе с библиотекой. Можете в интернете и почитать, как эту библиотеку подключить, там буквально первая статья на хабре хорошая
Почитай про динамическую и статическую линковку библиотек
@@rubiks7196 огромное спасибо!!!
@mimocake огромное спасибо!!!
О я тоже делал решатель для этой игры. Только я делал на rust и использовал алгоритм минимакс с альфа-бета отсечением. Без этих ваших новомодных нейросетей. Я тоже придумал делать слияние к одной стороне, только использовал лево. Ведь тогда операция делится на элементарные транспонирование матрицы, отзеркаливание и сталкивания массива из 4 всегда влево. Тогда можно обойтись только комбинацией из 2х операций, а не несколькими последовательными поворотами. А таких комбинаций массивов ограниченное количество и их тоже можно закешировать. Ещё одной особенностью является то что все числа представляют собой степени двойки, а значит можно хранить не сами числа, а только их степени, что позволяет в один int64 положить всю позицию доски. Ты про это я так вижу ничего не упомянул. Зачем мучаться с графикой, если можно было написать просто на ncurses в консоли. Хотя было весело послушать твои приключения. Я хотел написать идеальный алгоритм, а не стохастический монте-карло. Дальше я так понял у тебя возникли трудности с evaluation функцией. Так нужно подобрать правильные коэффициенты для монотонности, максимального счёта, максимальной плитки и других факторов. Я подобрал на глаз и оно не плохо справлялось, доходило до 8 и 16 тысяч уже сейчас не помню точно, но зависит от рандома иногда и до 1 не доходит. Но проблема в том что граф растёт очень быстро. Может занимать несколько гигабайт даже не не очень глубоких полуходах. И в один поток, потому что минимакс плохо параллелится. На каждый рандомный ход это может быть до 30 ветвлений, если учитывать все двойки и четвёрки. Поэтому без альфа-бета отсечения память ПК кончается очень быстро. И тут даже не особо помогает оптимизация хранения доски в видел int64. Потом, так как позиции бывают повторяются, я ещё хотел сделать LRU Cache и даже сравнить какой лучше подходит FIFO или LIFO. Чтобы хранить в нём вычисленные значения функции и не пересчитывать заново. Дальше я хотел подобрать параметры используя генетический алгоритм для поиска градиентного спуска. Так же запускать несколько игр, находить лучшие их скрещивать и мутировать их коэффициенты. Но это уже не дописал, так как сначала были другие дела, а потом уже и забыл. По всему этому даже хотел написать статью на хабр. Но я подзабросил на этапе с генетическим алгоритмом и поэтому не стал делать. Так как не люблю не причёсанный код показывать. Но первая версия с постоянным коэффициентом есть на гитхабе.
9:58 матрицы используют для ускорения расчетов. Тригонометрические функции sin , cos, tg и т.д вычисляются на порядок медленнее, чем сложение с умножением, поэтому с помощью тригонометрии один раз вычисляется матрица трансформации, а потом она умножается на вектора любого нужного количества точек. Умножение вектора на матрицу - это всего лишь десяток умножений и сложений, что вычисляется очень быстро. А на современных GPU такие операции еще и можно делать одновременно для нескольких точек.
прекарсное объяснение применения на практике
А реально ли как-то выкинуть 4 измерение в матричном умножении?
Почему не понятно, всё же понятно. Особенно когда добавить переносы строк. Машина Тьюринга, а поверх можно написать код чтобы там были и переменные и функции. А поверх построить любой язык программирования. Я видел это язык даже реально применяют, один известный любитель который сам создал свой компьютер на электромагнитных реле. Да и у тебя вышел интерпретатор, а не компилятор.
То что сортировка граней в чайнике глючит может потому что нужно для сортировки использовать центр треугольника или в сортировку попадают треугольники которые надо скрыть из-за нормали больше 90. Может попробовать сделать отрисовку и векторную математику на OpenGL или даже лучше Vulkan для скорости. Ведь мы из всей библиотеки я так понял используем только функции отрисовки линий и полигонов. Так же вот эти деления, нормализации и пропорции выглядят страшно их бы как-нибудь в функции вынести из основного кода. Ещё одна особенность движка, это то что предметы на границе поле зрения вытягиваются. Да это всё точно верно по векторным проекциям, но человеческий глаз видит не так. Там нужно делать какую-то поправку на это, я видел в другом видео. Иначе, например, забор из панелей вытянутый вдоль горизонта будет выпуклый, хотя все линии в нём прямые. То есть получается вроде эффекта камеры рыбьего глаза. То же интересно понять математику этой поправки.
Я таким баловался, когда читал книгу Е.В.Шикин, А.В.Боресков. Компьютерная графика. Динамика, реалистические изображения. Там даже ray-tracing есть.
Брат, контент пушка, но ты хотя бы музыку поменяй, а то у вас одинаковые с онигири)
это так было задумано))
Очень круто, ждем движок на DirectX))
По OpenGL мне очень помог плейлист одного американца на Ютубе- Jamie King 3D Computer Graphics Using OpenGL. Несмотря на английский (можно включить автоперевод) очень доступно и понятно. И OpеnGL рассматривается версии > 3, что уже похоже на современное программирование графики.
спасибо за рекомендации. Я еще начинал смотреть плейлист The Cherno, но забил потом, у него тоже все понятно, и еще на сайте learnopengl много инфы есть.
@mimocake Тут немного другое. Он бубнит, рычит, иногда что-то невнятно и колоритно рассказывает, но.... Прям при тебе все рисует, на уровне первого класса показывает. Как-то зашло )))
Всё-таки использование для решения дифференциальных уравнений метода Эйлера первого порядка будет давать не самый точный результат. Лучше использовать хотя бы метод второго порядка, также известный как метод средней точки. Или использовать альтернативные способы повышения точности, вроде метода прыгающей лягушки.