Сделал 3D в консоли с нуля | трассировка лучей
HTML-код
- Опубликовано: 18 ноя 2021
- Стань разработчиком игр на Unity в Skillfactory: clc.to/W3YcAA и получи возможность зарабатывать 120 000 руб/мес
Скидка 50% на обучение по промокоду ONIGIRI и 14-недельный курс “Soft Skills для digital-менеджеров“ в подарок при покупке до 30.11.2021
VK: onigiriscience
Twitch: / artem_onigiri
Telegram: t.me/onigiriScience
Код: github.com/ArtemOnigiri/Conso...
В этом видео я делаю 3D-графику в консоли с нуля. При этом использую трассировку лучей и другие методы - Наука
Онигири: Я не очень разбираюсь в C++, потому написал там свою 3д графику с рейтрейсингом
Да чтобы я так не разбирался в чём-то
Это не так сложно. Просто скучное занятие
@@onlyonly7640 какой же ты убогий, ахах
@@volodyayanush2625 Это потому-что ты не умеешь также?
@@nakidai заскамил мамонта
@@nakidai да нет, просто я это это вижу как: чувак зашёл на видео в его ленте, пролистал комментарии под этим видосом, нашёл комментарий, где человек восхваляет автора и такой:
"А скажу ка я что на самом деле достижения автора не достижения вовсе. Напишу как будто то, что сделал автор ничего не стоит и я могу так же, просто мне типа скучно это делать. И вообще видосы бы я смог такие же записывать, просто мне это всё скучно"
По этому и написал, что убогий, так как причины написать этот коммент кроме как "сказать себе, что я могу так же, и это все очень легко, я просто не хочу" я не нашел
Трехмерные пончики, отрисованные символами - загляденье!
Дагон явно фанат Анигири)
Мне кажется, вам пора коллаб
Нужно полить шоколадными эмодзи и присыпать запятыми
У
Удивительно увидить Дагона в такого рода ютуб-канала. Оно и к лучшему :D
RTX который нам по карману.))
RTX который может себе позволить даже рустам
Консоль, которая нам по карману :)
@@tmpsnt3322 Не все поймут.
@@tmpsnt3322 для этого рустаму нужен ноут, но у него его нет
@@markin_slava677 Дай ссылку плз
13:03 - «Можно рисовать фракталы» - это самое важное! :D
Мы за фракталы!
Востанние Андроидов
Нет ничего важнее фракталов
хахха, это как у артура парадоксы
@@Derk89 На андроидах такое же качество картинки
Онигири в начале: Рассказывает и показывает какие-то азы.
Онигири в конце: Ну быстро добавляем направление луча и позицию камеры, тут просто пишем вот эту функцию, заменяем рейкастинг и спокойно рисуем фрактал
Классное видео, но с момента добавления в код самой собственно 3д графики становится мало что понятно
Видео не про 3д графику а про имплементацию её под консоль.
@@MetaJamm а, блин, не заметил, спасибо тебе, что объяснил
Если других авторов можно смотреть с х2, то Онигири надо смотреть на 0,25 , чтобы успевать все понимать. Хотя тогда потеряется этот чарующий голос))
@@dafter6454 Обращайся! Капитан всегда на страже покоя галактики!
Там школьная геометрия ведь
Я: мама, я хочу новую консоль
Мама: у тебя есть консоль дома
Консоль дома:
Зато с поддержкой рэйтрейсинга :0
@@erzish Более того, с поддержкой рейкастинга! Ни Плейстейшн, ни Иксбокс его не поддерживают!
Слишком много комментариев в виде диалога.. когда уже отпустит людей. Надоело
@@erzish RTX ON!
@@s.n.9855 Ответы ждать долго.
Но ведь можно поискать происхождение этого мема.
Первые демосцены напомнило.
А ты здесь откуда? Думал тут пирамиды рекламируют? А не тут то было) (моя твой подписчик)
Ясно, Дениска ошибся видосом.
Просто Дениска не мог пройти мимо пончика. Кулинарное образование, однако )
Я не поня
@@runoff9317 заблудился походу
Как же я обожаю смотреть, как кто-то из пустого cpp файла создает что-то, что 50 лет назад назвали бы технологическим прорывом. Хочу больше графики из ничего! :)
"создаёт что-то, что 20 лет назад называли бы технологическим прорывом"
Он не создал ничего, что 20 лет назад было бы технологическим прорывом
Он пользовался стандартом плюсов, библиотеками из стд и виндовс, которые 20 лет назад действительно бы стали прорывом
Ну а у него просто код, который демонстрирует возможности этого прорыва
@@n42 25 лет назад уже был человек, который "собрал" нужные функции в кучку и назвал это DirectX. А весь функционал был ооочень задолго до него, даже консольки и игровые автоматы 70-х выполняют все тот-же "прорыв"
Так он работает абстрактно на плюсах используя стандартные методы ввода и вывода, которые не лыком шиты. Из ничего, это когда нет ни операционной системы, ни компа, чтобы хоть как то прошить контролёр и ты переключателями и кнопками прошиваешь память и все реализуешь на таком уровне.
Я понял про что ты, но называть это технологическим прорывом язык не повернется, как минимум из-за того, что ресурсы тратятся в пустую на отрисовку символов в консоль. Проще, намного проще и менее затратнее выводить в пустое окно
20 лет назад могли всё то же самое, ничего прорывного тут нет. Разница лишь в том, что на железе 20 летней давности, подобная 3д сцена с рэйкастингом шевелилась бы в полтора фрейма в секунду, а то и еще медленней.
Как же здесь душно! Срочно откройте окно
Как всегда, сначала понятно, но ближе к концу начинается какая-то магия) Отражения сферы от куба восхитительны для консоли. КРУТО!!
Писать на джаве программку, чтобы оценить по таблице в Экселе яркость символов из консоли с++, в которой делаешь 3д графику...
(Нормальный программист всегда идёт в обход. Он почему такой злой был? Потому что у него велосипеда не изобреталось)
Он почему такой злой был? Потому что у него велосипед из трактора собран.
Потому что велосипед без седла был
Потому что велосипед указывал на null
очееь глубоко указывал
Просто велосипед не из фракталов был
Опять магия вне Хогвартса
К сожалению, у программистов ограничения ещё более жёсткие, у них следует не слом палочки и стирание палочки свидетелям, хуже, они под постоянным Империусом, чтобы не могли запускать программы в реальности, тёмные повелители матриц и векторов не дремлют...
А если серьёзно, то мне за это всегда программирование и нравилось, чувствуешь себя, кхм, Богом, или скорее творцом-демиургом, создавая из чистого файла целый мир. (В левой руке Один, в правой руке Наль, мой пиар менеджер - Блез Паскаль. Кхм, прошу прощения, чего-то у меня настроение слишком хорошее, видимо соседи опять варят мет)
Привет
Когда видос?
@@Phantom-wt6sh Ещё немного занят разработкой игры. Доделываем Альфу Ant Colony 2.
После апдейта сразу смогу заняться
@@Capskiy Понял, ждем
Удачи с разработкой!
@@dikunav так и есть друг
"она на просто находится по теореме пифагора"
Математичка: "А вы не верили. Пригодилось же.".
Как по мне, математичка сошла бы с ума от
x=2;
y=3;
x=y
@@gametvdonets8036 так это же не знак равенства, а оператор присваивания. Они просто похожи
Береги себя, ты крут, ты нам нужен! :3
Классное видео, очень красивое и вдохновляющее)
Сегодня у меня праздник , Onigiri выпустил видео 😎✌️
Поздравляю
у моего папы был день рождения
@@sweetm4723 у меня был праздник и из-за этого тоже !)
Я делал 3д в консоли по твоему видео про рейкастинг, но я сделал изображение цветным. Пришлось писать отдельный движок, который отрисовывает цветные кадры по кусочкам с одинаковым цветом и оптимизирует их количество. А освещение сделал наложением белых и чёрных shade символов ░▒▓ на цветной фон. Видосы классные, объясняешь очень интересно
ты большой молодец
было бы круто увидеть репозиторий :>
А ты жосткий, прям настолько заморочится
Кстати да, публикация на GitHub была бы не лишней
А он без символов таких он же говорил
Ты реально сделал трёхмерное множество Мандельброта с отражениями в консоли? Моё уважение
Вроде не было. Где увидел?
@@malejeeck 12:43
Нет, скрин был не его. Так делали лет 30 назад, когда компы по другому не умели.
Это офигенно=) Всегда восхищаюсь твоими видосами и с нетерпением жду следующий, тем более тема обещает быть интересной=)
лойс авансом, вечерком за ужином посмотрю :) спасибо за контент )
Я даже не знаю, что может отвлечь лучше, чем твоё видео. Спасибо, продолжай развиваться🙏
Как всегда, круто! Выпускай почаще :)
Боже, да ты "больной", в хорошем смысле)) Я поражаюсь твоему энтузиазму и умениям, что ты делаешь это просто шикарно, смотреть абсолютное удовольствие!
С каждым новым твоим видео поражаюсь твоим навыкам, продолжай в том же духе
Ничего нового чего бы я не знал и такой потрясающий результат. Прямо вдохновил! Спасибо за такие видео. Пожалуйста продолжай.
Спасибо автору, за чудесное видео! Люблю такую подачу, которая наталкивает на новые идеи!
И как у тебя это удается?))
Красавчик! Одно удовольствие смотреть эти видео, потому что у тебя получается показать программирование как шикарное развлечение и как всесильную магию. А попутно еще и математику с физикой преподносишь не в теоретическом, а в прикладном ключе (как оно и должно быть).
10:22 попутно изобретём свой собственный glm с векторами и матрицами.
С++ ))
@@avazart614 Нет уж, я лучше Rust использую.
ха, я тоже написал работу с векторами и интегрировал это всё со своими особыми методами из мат библиотеки.
Я также написал много собственных шустрых и эффективных рандомайзеров.
А glm... это конечно круто... но... что-то в ней отвращает меня от её использования.
А ещё Rust *слишком душный*
@@ivangor1997 А чем в данном случае Rust сильно лучше?
@@Derk89 Потому, что он быстрый как C/C++. Нет необходимости использовать си-подобные указатели (хотя они там есть), как следствие отсутствует риск получить segfault (если не использовать unsafe). Кучу ошибок можно отследить на этапе компиляции. При любой ошибке во время выполнения можно получить трассировку стека без отладчика. Помимо этого там одна своя система сборки и нет зоопарка частично несовместимых друг с другом компиляторов.
Фрактал получился - загляденье! Спасибо за прекрасное видео~
Как всегда - восхитительно!) Спасибо!)
Блин офигенно, всегда хотелось позаниматься такими приколю хами, но обычно на это нет времени и пилишь то за то что платят деньги) Рад что есть те у кого есть время вот на подобные опыты, так хоть можно посмотреть ) Пусть и дальше у тебя будет время, деньги и возможности что бы радовать других такими вот вещами.
Ура! Новый видос от онигири! Обожаю этого малого!) А ещё следующий видос про мои любимые нейронки... Ммм... Прекрасно!)) День начался на позитивной ноту) Благодарю)
Спасибо большое!!! Сразу лайк! Долгожданное видео!
нужна цветокоррекция с использованием массива символов и массива яркости, а также бинарным поиском с учётом промежутков.
А ещё можно корректировать за счёт соседей, если они по яркости в среднем ниже половины шага квантования между двумя значениями яркости, то берётся более яркий пиксель (округление вверх) для данного нашего пикселя.
Минуточку. Чуть по медленнее. Я запису'ю
Сумасшедший!! Спасибо за контент! Очень интересно и познавательно.
Онигири, ты гений. Сперва не хотел смотреть... какая-то ересь про СИ... но таки глянул и -- это СУПЕР!!!!
вау, я рад что на этом канале есть как и физика, так и контент по программированию, и даже код вполне ясный
Офигенно, у тебя суперский прогресс
Я сам учился программировать и забросил на некоторые неопределенное время. И сейчас глядя на это думаю насколько моих навыков и знаний мало в этой области, я даже глядя видос и слушая его объяснения почти не понял как это делать. Это великолепно
Тут больше математики и геометрии, нежели использования возможностей языка программирования.
@@Asmaddeus поэтому даже не начинал толком программировать, хотя знаю азы и структуру, на тематических форумах набрасывал "скелеты кода", методологию и что они делают, знатоки реализовывали и благодарили, включая непосредственный геймдев и моддинг. А вот такие моменты с отсылкой к математике на практике были камнем преткновения, и от рекламы всяких курсов ни чего кроме ироничной улыбки не вызывает, обещающих научить программировать всех кухарок. Ну не улавливаю я математику, зато биофизику и биологию чисто по конспектам без повторения сдаю, обидно ппц!
Респект и уважение! 11:10 очень годно выглядит даже в таком малом разрешении.
Очень интересно, спасибо за такие видео!
Видео бомбическое!!! Просто маста!)
12:45 Множество Мандельброта, в 3D, на консоли - идеально
Как только пошел код мой мозг умер) Видео крутое, ты очень хорошо в этом шаришь.
Прям вдохновил снова сесть за студию. Респект
Так быстро закончилось видео, буду ждать новых видосов, тем-более про нейросеть)))
Это невероятно!
Нужно отдельное 10тиминутное видео просто консольной 3д графики! Просто загляденье!
Круто ты все это сделал, молодец!
Отличное качество видео, супер спасибо
Ура новое видео)
бегу смотреть.
А, я был на стриме когда ты тыкал это.
стримы на этом канале идут?
@@erzish я по уведу зашел, насколько помню
@@Vorono4ka спасибо
Вооот, вот в консоли можно уже и попробовать повторить, то что ты делаешь, а то все предыдущие видео как будто из другой вселенной) Для новичков как раз такой контент нужен.
в конце вообще кайф для глаз
ты мой любимый ютубер по программированию и подобному
Как всегда, бомбически!
После дейли возьму вкусняшек и посмотрю этот шедевр
Вот тот человек, который сейчас меня замотивировал открыть Visual Studio в столь поздний час!
Наконец то новое видео, очень интересно
потрясающе! один из лучших ютуб каналов
Есть 2 мастера своего дела - Onigiri и HamsterTime
Супер круто когда авторы максимально хорошо разбираются в теме, а не просто пилят видео чтобы забить эфир.
foo52 посмотри ещё
Ну у них просто есть навык преподносить информацию, может кто-то разбирается лучше, но не умеет это объяснять другим.
Jdh свой собственный процессор собирал и писал свою ОС
@@restsheets2962кто кто, найти не могу
В какой-то момент я поймал себя на том что легко понимаю абсолютно каждое слово. Пора что-то менять в своей жизни.
Ну а видос топ 👍
Ого!!! спасибо, было очень интересно послушать!
Ура, видео от онигири! 🔥🔥🔥
спасибо Дикому математику что посоветовал!
С 1000-7 я что-то прям в голос, не ожидал такого
Хоть кто то заметил!
ahahahah dadada
это просто магия! Так мотивирует продолжать учиться
Как всегда - ОГОНЬ!
Вот ты голова! Из всего этого я понял только слово пончик 🍩
Получил истинное наслаждение от созерцания данной красоты. 💪❤️😍
классно!) особенно с отражениями)
Незнаю как это папало в мою ленту, но посмотрел на одном дыхании и даже захотел повторить на консоли дома. Офигеть круто, хотелось бы чуть больше объяснений сложных концептов ближе к концу видоса, но по факту, всё очень наглядно. Спасибо.
Воу. Вот я такой сижу, пишу скрипты с 3д графикой на Space Engineers, и тут вдруг вот эта красота...
Когда кое-что такое уже делал, можно даже уследить за тем, что происходит (если часто жать на паузу)).
Подход с камерой немного отличается от всего, что я делал, зато теперь знаю, как сделать рейтрейсинг (Вау!)
В общем, спасибо, буду экспериментировать.
Обалдеть, ты гений , дай Боже мне суметь написать такое с нуля самому, горжусь и восхищаюсь
пока ты веришь в бога ты не напишешь
@@isakneuman9995 Докажу со временем обратное.
@@DMITRII-ov3dq моли своего бога чтоб дал тебе мозги
@@isakneuman9995 Грубо, вера это дела каждого. А у парня есть цель, а что у тебя?
@@piramirin5698 Как будто цель это что-то значимое. Любой дурак может взять и поставить себе "цель". А вот избавиться от вирусов в своей голове, в виде тех же религий, видимо не всем под силу.
Как всегда самый интересный контент
видео - просто бомбини. спасибо
0:24 Дед инсайд программист. Приглядитесь.
Онигири, у тебя есть видео, где ты о себе рассказываешь? Было бы очень интересно послушать твою биографию и как ты пришёл к таким вещам
у вас очень приятный голос, спасибо за ваши видео!!!
Как всегда шикарно
Теперь я могу хвастаться перед друзьями, что мой Pentium с интегрированной графикой обрабатывает трассировку лучей 😁
недавно начал ходить на курсы по пргораммированию на си языках, какой же это кайф)
Интересно чем ты руководствуешься когда выбираешь курсы по Си языкам. Курсачам лиж бы че продать...)
Честно говоря, я пробовал писать что-то на Си и у меня сложилось противоположное впечатление (вот он с++, не радость, а мука), хотя если вы имели в виду с#, то ладно, он почти как джава, ничего сложного
@@egorovsa да не, вполне доброкачественные курсы. Коммент написал, совсем не задумываясь, в поддержу видоса)
@@dikunav Шарпик няшный да!
@@dikunav пока не на си++ и не на си#, а на просто си)
Твой канал лучший,спасибо за видосы
Круто! Нужно тоже попробовать сделать))
Я, как человек, немного больше года изучающий C++, могу посоветовать:
1. Не использовать C-style cast (в скобках тип), в C++ есть 4 безопасных (относительно сишного каста) способов преобразовния типов. Здесь лучше подошел бы static_cast
2. vec2 и vec3 сделать классами, в операторах обращаться к переменным класса через this (это даже улучшает понимание, где какой объект)
3. Использовать класс std::array для статических массивов
5:52 sonic.exe би лайк
супер, по больше бы таких видео))
Хорошее видео получилось, очень интересно
Лайк!
Реклама скиллфактори полна радужных ожиданий для хомячков. А решение выбора яркости точно подчеркивает нестандартность мышления. И применение теории игр - максимин - тоже 👍
Ну, clamp к теории игр не очень относится. Минимакс/максимин - это про другое.
Шик. На выходных повторю. 👍
Просто превосходно, может и я когда-то научусь из ничего делать что-то
Размер символа можно задать в свойствах консоли. Нужно было задать самый маленький - смотрелось бы ещё круче.
тогда нужно было бы увеличивать размер круга, а в конце видео видно, что printf немного медленный для такого
@@kdx3119 ещё в конце видео видно, что можно использовать другой метод вывода
@@backer01 все равно равно, мне кажется, что консоль слишком медленная для такого
Так-то - да, разница в написании есть, когда пишешь не просто пончики, а закладываешь архитектуру в проект
Очень красиво!
Большое спасибо за труд !!!
Небольшие замечания:
1. Изначально функция clamp не нужна, так как значение sqrt не может быть отрицательным само по себе -
достаточно max(value, mx) { min(value, mx) }
2. при коррекции координат необходимо делить на (width - 1) и (height - 1)
3. можно работать только с Vec3, если рассмотреть Vec2 как частный случай Vec3 при z=0
3-е хз, как-то сомнительно, зачем лишнюю память под одно число занимать
Круто, но очень не сбалансировано)) 2/3 видео поясняешь элементарные вещи, а потом за пару минут все самое интересное
Это было просто супер!
Ты крут, на сердецко💜
Даёшь лингвистическую нейронку для написания сценариев!
И написание программ автомонтажа, автосоздания программ для съёмки ролика
Спасибо. Плиз больше видео про AI, в том числе нейросети
Будут
Не досмотрел, но знаю, что будет очень интересно и круто
Гениально.Все довольно просто.Спасибо