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