#2 Minecraft с нуля на C++ - VAO и VBO

  Рет қаралды 21,969

Alex2772

Alex2772

4 жыл бұрын

В этом видео я расскажу о Vertex Array Object и Vertex Buffer Object на примере отрисовки треугольника.
================================
Ссылки
alex2772.ru - мой сайт

Пікірлер: 160
@Alex2772
@Alex2772 4 жыл бұрын
Если возникнут какие-либо проблемы, пожалуйста, пишите сюда: alex2772.ru/forums/
@Alex2772
@Alex2772 4 жыл бұрын
@Beginer Programming Я мог бы сразу игру на юнити сделать и не париться со своим движком. Этот спор можно продолжать до бесконечности.
@Alex2772
@Alex2772 4 жыл бұрын
@Beginer Programming если вылетит исключение, то стандарт C++ гарантирует, что он вызовет деструкторы, а значит, и деинициализацию glfw.
@devvvnull
@devvvnull 4 жыл бұрын
@Beginer Programming Да
@user-no7xn4qt5k
@user-no7xn4qt5k Жыл бұрын
Боже, сколько нужно было посмотреть видеороликов по OpenGL, чтобы услышать внятное объяснение сути VAO и VBO. Спасибо тебе большое!
@4rtemtrickster468
@4rtemtrickster468 4 жыл бұрын
Туторы реально годные! Смотрю тебя с уже оч давно! хотелось бы весь исходный код с иерархией файлов видеть в доступе на твоем сайте
@Alex2772
@Alex2772 4 жыл бұрын
В следующем видосе я скину ссылки на репозиторий с кодом из туториалов + исходный код Craftgame
@illoprin
@illoprin 4 жыл бұрын
Шалом. Тутор как всегда понятный и информативный! Лайк. Кста жду новую версию Craft Game
@Alex2772
@Alex2772 4 жыл бұрын
Благо, их хоть кто-то понимает)
@Oxewow
@Oxewow 4 жыл бұрын
Круто! Продолжай в том же духе
@DOCtorActoAntohich
@DOCtorActoAntohich 4 жыл бұрын
6:38 "двоеточсие-двоеточие-слэш Гэ-Лэ (б-дь)"
@den_in_yt
@den_in_yt 2 жыл бұрын
Какое объявление было у кода: { mWindow = glfwCreateWindow(width, height, title.c_str(), nullptr, nullptr); } просто я пропустил
@atlasua2021
@atlasua2021 3 жыл бұрын
Такой красивый почерк))
@elderlyoparysh2800
@elderlyoparysh2800 3 жыл бұрын
может это я тупой, но лично мне было не просто усваивать новую информацию в таком темпе, а в остальном вообще заебись, спасибо за ролик.
@jemm8363
@jemm8363 4 жыл бұрын
После графической части будешь подключать и синхронить физ. дивиг?
@Alex2772
@Alex2772 4 жыл бұрын
Не для всех игр нужен физический движок
@user-tb7su2nj4b
@user-tb7su2nj4b 3 жыл бұрын
Джентльмены, а почему в 4-ой строке в моменте 6:17 Алекс подключает библиотеку , если в include он закидывал папку GL большими буквами?
@Alex2772
@Alex2772 3 жыл бұрын
Потому что винда нечувствительна к регистру букв, а линуксы и макоси - чувствительны. Вижуалка очень не любит, когда в ней пишут кроссплатформенный код. Я ещё её еле отучил от болезни обратного слеша в путях инклюдов
@justsample8793
@justsample8793 4 жыл бұрын
Я не знаю, задавали ли тебе этот вопрос, но, как ты изучал c++? И вот про это всё, как к этому дошел?. Сам хочу заняться этим, и был бы очень признателен за ответ. И ещё, спасибо за видосы. Жду продолжения.
@Alex2772
@Alex2772 4 жыл бұрын
Все мои девлоги это и есть процесс обучения C++ и OpenGL
@theoctan8569
@theoctan8569 4 жыл бұрын
Надеюсь мы ещё вернёмся к шейдерам) и может никто не спрашивал моего мнения, но как насчёт принципа единственной ответственности для класса VAO, который не только хранит атрибуты, также занимается созданием VBO, так и ещё отрисовкой. Знаю, что всё делалось на скорую руку для быстрой демонстрации. Думаю в будущем разделим обязанности) Надеюсь мой коммент заметят и не сильно осудят за многословие.
@Alex2772
@Alex2772 4 жыл бұрын
Так быстрее и проще. Да, конечно, грамотнее было бы разделить VAO и VBO в отдельные классы, но это неоправданные строчки кода. Пример, как я решил задачу по принадлежности точки к окружности за 150 строк (было 10): gist.github.com/MrLargha/4c9e6de03cb7cd2f30b6aea4097ba7ca
@6556
@6556 5 ай бұрын
Спасибо большое за туторы. Долго на русском языке искал по буферам инфу. Только второй ролик так и не нашел
@torvald3d
@torvald3d 3 жыл бұрын
Что за комбо счётчик справа вверху когда печатаешь? Какой то плагин?
@Alex2772
@Alex2772 3 жыл бұрын
powermode плагин для вижуалки
@channelbarrel
@channelbarrel 4 жыл бұрын
Очень бы хотелось увидеть продолжение туториалов. Планируешь продолжать?
@Alex2772
@Alex2772 4 жыл бұрын
Конечно планирую
@ilnev3738
@ilnev3738 3 жыл бұрын
ряльно полезные уроки
@cppprograms5868
@cppprograms5868 4 жыл бұрын
неплохо!!!
@Ivan-qb7kc
@Ivan-qb7kc 4 жыл бұрын
1:33 - так говоришь, будто это излишняя оптимизация, но ведь ты же вызываешь vector::reserv перед тем, как начать пушить в него элементы, а это тоже самое)
@Alex2772
@Alex2772 4 жыл бұрын
Я не говорю, что оптимизация - это плохо. Речь идёт об усложнении простой задачи новичкам
@user-tp1qn2wt6t
@user-tp1qn2wt6t 3 жыл бұрын
на 1:26 версия опенгл версия 1.0 используется
@eday4490
@eday4490 4 жыл бұрын
Подними ещё тему. О том где взять программиста гейм дизайнеру. К примеру если есть идея игры и Арты, но програмить игру некому.
@Alex2772
@Alex2772 4 жыл бұрын
Сделаю видос на эту тему
@eday4490
@eday4490 4 жыл бұрын
Alex2772 спасибо. Может и игрой займусь)))
@ilnev3738
@ilnev3738 3 жыл бұрын
Ты художник и программист и гемдизайнист )
@ilnev3738
@ilnev3738 3 жыл бұрын
Вот так можно
@ilnev3738
@ilnev3738 3 жыл бұрын
Почему когда я меняю местами вершины этого треугольника он отображается не так как раньше?
@Alex2772
@Alex2772 3 жыл бұрын
Потому что в опенгле у треугольника есть лицевая сторона и обратная сторона. При включённом glCullFace обратная сторона не отображается. Какая сторона лицевая, какая - обратная, определяется при помощи векторного произведения. Видимо, когда ты меняешь местами вершины получается так, что треугольник как бы поворачивается к тебе обратной стороной, которая не отображается.
@ilnev3738
@ilnev3738 3 жыл бұрын
@@Alex2772 нет, треугольник отображается , но не так как до того как я поменял вершины. Например у: vao.AddVertexBufferObjects({ {0, 0.5, 0 }, {-0.5, -0.5, 0}, { 0.5, -0.5, 0} }); и vao.AddVertexBufferObjects({ {0, 0.5, 0 }, { 0.5, -0.5, 0}, {-0.5, -0.5, 0}, }); разные результаты Но почему отображается по разному? Получается это из за того что он повернут не так или из за чего?
@Alex2772
@Alex2772 3 жыл бұрын
@@ilnev3738 Можешь уточнить, чем результаты отличаются?
@ilnev3738
@ilnev3738 3 жыл бұрын
@@Alex2772 треугольники разные по форме
@user-xv4hq9qp4h
@user-xv4hq9qp4h 2 жыл бұрын
Помогите пожалуйста,я написал код все строки но треугольник не отображается где может быть ошибка (2 цикла я тоже написал)заранее спасибо
@Alex2772
@Alex2772 2 жыл бұрын
kzbin.info/www/bejne/pqS4pYucotKnqac
@user-tb7su2nj4b
@user-tb7su2nj4b 3 жыл бұрын
Тут еще вот такая мистическая фигня происходит: Когдая я подключаю сначала glew.h, а потом GL.h, то высвечивается ошибка "gl.h (именно маленькими буквами) included before glew.h", а если подключать их в обратном порядке, то компилятор найдет множество ошибок в файлах glew.h и GL.h. Как выйти из этого порочного круга?
@Alex2772
@Alex2772 3 жыл бұрын
GL/glew.h и GL/GL.h?
@user-tb7su2nj4b
@user-tb7su2nj4b 3 жыл бұрын
@@Alex2772 Да. и . В зависимосте от порядка подключения возникают различные ошибки, описанные выше
@Alex2772
@Alex2772 3 жыл бұрын
@@user-tb7su2nj4b В видео мы создали файл gl.h. Убедись, что ты инклюдишь именно его
@user-tb7su2nj4b
@user-tb7su2nj4b 3 жыл бұрын
@@Alex2772 я создал именно его и подключаю везде именного его. И в зависимости от того, в каком порядке подключаются библиотеки в нем, выскакивают разные ошибки.
@Alex2772
@Alex2772 3 жыл бұрын
@@user-tb7su2nj4b Именно поэтому я стараюсь не добавлять индклюд gl.h в хеадер файлы. Учти, что порядок индклюда может нарушиться от того, что ты инклюдишь хеадер файл, который индклюдит gl.h. Тут очень тонкая грань, нужно смотреть, дерево включаемых файлов и проверять последовательность. Посмотри в гугле, как это делается
@builderNITRO
@builderNITRO 3 жыл бұрын
Что делать как у меня код как у тебя но треугольник не рисуется в консоль ошибок не выдает и может это связано что у меня фон не черный на оранжевый?
@Alex2772
@Alex2772 3 жыл бұрын
kzbin.info/www/bejne/pqS4pYucotKnqac
@builderNITRO
@builderNITRO 3 жыл бұрын
@@Alex2772 Я разобрался в чем проблема я в VAO.cpp в функций addVertexBufferObject() где glVertexAttribPointer вместо 3 написал 1
@user-nk7mt1rn2v
@user-nk7mt1rn2v Жыл бұрын
Алекс почему ты старые видео по-удалял? они очень полезны для новичком, по типу меня
@Alex2772
@Alex2772 Жыл бұрын
Снесу когда сделаю годную альтернативу
@voidptr_t
@voidptr_t 4 жыл бұрын
Когда качаешь всё из nuget и не нужно линковать
@user-tb7su2nj4b
@user-tb7su2nj4b 3 жыл бұрын
С одной стороны много вопросов, но с другой стороны чем больше комментариев тем популярнее видос. Так вот: Пацаны, для полного понимания, скажите, пожалуйста: 1) что за тип данных такой GLuint? 2) Что делают функции glGenVertexArray() и glGenBuffers()? 3) Я правильно понимаю, что в glGenBuffers() первый параметр - номер VAO, к которому мы привязываем создаваемый VBO? Если да, то почему там еденица? Разве нумерация не с нуля начинается?
@Alex2772
@Alex2772 3 жыл бұрын
1) typedef unsigned int GLuint. В сишных библиотеках считается хорошим тоном определять свои типы. 2) glGenVertexArray - создает VAO. glGenBuffers - создает VBO. 3) Нет, первый аргумент - это количество VBO, которое ты хочешь создать. 2м аргументом задаёшь место, где ты будешь хранить номер созданного VBO. с glGenVertexArray работает точно также
@user-tb7su2nj4b
@user-tb7su2nj4b 3 жыл бұрын
​@@Alex2772 Понял. Спасибо. Можно переходить к 3-ей части.
@alex_xplus7135
@alex_xplus7135 4 жыл бұрын
Ясна, гений(не рили крут)
@neyallen949
@neyallen949 4 жыл бұрын
О да, зашёл с нового аккаунта в Ютуб и начал набирать твой канал и увидел что видео у тебя вышло 6 часов назад)))))
@Alex2772
@Alex2772 4 жыл бұрын
)
@stepanbazrov6330
@stepanbazrov6330 3 жыл бұрын
После конструкции VAO v = VAO() Вызов v.Draw() не будет ничего рисовать, потому что все буферы будут удалены деструктором временного объекта.
@Alex2772
@Alex2772 3 жыл бұрын
У тебя не получится так сделать. 5:06, смотри девятую строчку - запрещаю конструктор копирования
@usernameusernamovich8841
@usernameusernamovich8841 4 жыл бұрын
Зачем ты отпугиваешь маслят, от языков программирования?
@Alex2772
@Alex2772 4 жыл бұрын
Чтобы было меньше недокодеров
@usernameusernamovich8841
@usernameusernamovich8841 4 жыл бұрын
@@Alex2772 и как бонус меньше крутых кодеров
@Alex2772
@Alex2772 4 жыл бұрын
Людей, которые хотят стать крутыми кодерами, не отпугнёшь школовидосами на ютубе
@user-tb7su2nj4b
@user-tb7su2nj4b 3 жыл бұрын
Пацаны, у меня компилятор отказывается открывать и . С проблем не возникло. Можете подсказать, в чем может быть проблема?
@Alex2772
@Alex2772 3 жыл бұрын
Добавь папку src в Дополнительные каталоги включаемых файлов. 6:19
@user-tb7su2nj4b
@user-tb7su2nj4b 3 жыл бұрын
@@Alex2772 Разобрался. Там глупая ошибка оказалась. Спасибо за ответ
@Alex2772
@Alex2772 3 жыл бұрын
@@user-tb7su2nj4b нет, не влияет. Убедись, что в дополнительных каталогах включаемых файлов есть файлы GLEW'а. Обрати внимание что, откуда и куда я перетаскиваю на 5:32
@user-tb7su2nj4b
@user-tb7su2nj4b 3 жыл бұрын
@@Alex2772 удалил всё и сделал по-новой, заработало. Фиг его знает, что за магия. В любом случае, огромное спасибо. И за сами ролики, и за ответы на вопросы. За последнее - особенно.
@Alex2772
@Alex2772 3 жыл бұрын
@@user-tb7su2nj4b Рад помочь)
@narzaru
@narzaru Жыл бұрын
Привет со школы 21
@helios8567
@helios8567 4 жыл бұрын
gl.h before glew.h. Делаю точь в точь, не идёт и всё. Поменял всё местами, один фиг. И это только ради вонючего треугольника! Скинь пожалуйста исходники.
@Alex2772
@Alex2772 4 жыл бұрын
github.com/Alex2772/Engine
@KennyTutorials
@KennyTutorials 4 жыл бұрын
За ВАО, ВБО, ГЛ, ГОЛОГЕН = лайк)
@ilnev3738
@ilnev3738 3 жыл бұрын
о привет
@user-pg8ry1tm3t
@user-pg8ry1tm3t Жыл бұрын
Все прекрасно, только мелковатый масштаб для просмотра…
@asx4133
@asx4133 2 жыл бұрын
Так я не понял как vbo привязывается к vao?
@Alex2772
@Alex2772 2 жыл бұрын
функцией glvertexattribpointer. берёт последний бинденный vao, последний бинденный vbo
@asx4133
@asx4133 2 жыл бұрын
@@Alex2772 да спасибо
@Vadim-wi4by
@Vadim-wi4by 4 жыл бұрын
Задел так сказать на будущее. Надеюсь чанк будем сделан одним мешем. Ибо очень халтурно копипастить тройным циклом готовые кубы по карте высот. Давай нормальную генерацию и просчёт коллизии.
@Alex2772
@Alex2772 4 жыл бұрын
При халтурном копипасте кубов фпс проседает до одного уже на 10 чанках, что даже не смешно. И хатурного копипаста кубов уже без меня на ютубе навалом
@Vadim-wi4by
@Vadim-wi4by 4 жыл бұрын
@@Alex2772 супер. То есть будет меш? Вот это интересно смотреть! Кстати, рекомендую начать именно с коллизии. Это довольно важный этап. Сам пробовал, но на C# и со стандартной библой DX на NET 2.0. Там коллизия реализована Mesh.Intersect и этот метод всего лишь пускает луч и даёт тебе индекс треугольника и U V точки. Надеюсь на плючах у тебя будут более доработанные методы для просчёта коллизии.
@Alex2772
@Alex2772 4 жыл бұрын
Меш будет обязательно, а хорошая реализация коллизии у меня есть. Эти два этапа я разделю и выпущу в виде отдельных видосов
@Vadim-wi4by
@Vadim-wi4by 4 жыл бұрын
@@Alex2772 ого. Братан, свяжись со мной пожалуйста. Мне нужно узнать у тебя пару вещей. vk.com/vadim_yek
@KennyTutorials
@KennyTutorials 4 жыл бұрын
Vertex Array и Vertex Buffer Objects уже давно не новинка в Open GL)
@Alex2772
@Alex2772 4 жыл бұрын
Угу. Вот только до сих пор встречаются такие кадры, которые в 2к19 используют glVertex?f для загрузки вершин.
@KennyTutorials
@KennyTutorials 4 жыл бұрын
@@Alex2772Именно это и является проблемой для новичков. Так вот когда я только начал изучать Open Gl, тоже попался на это (это было в начале 18 г), а потом долгое время путался пока не понял, что glBegin glEnd это Fixed Function Pipeline до 3.0, а использование VAO, VBO это New Programable Pipeline 3.0+.
@Alex2772
@Alex2772 4 жыл бұрын
Изначально хотел сказать об этом в видосе. Но чё-то передумал, видимо зря
@stalker6345
@stalker6345 4 жыл бұрын
0:27 УРА БУДУ КОДИТЬ НА C#
@stalker6345
@stalker6345 3 жыл бұрын
@Намыс Чекелеков здесь я и подрузомевал юнити
@Under-Games
@Under-Games 4 жыл бұрын
Давай новый выпуск!
@Alex2772
@Alex2772 4 жыл бұрын
Угу
@user-yf8nk6jf4r
@user-yf8nk6jf4r 4 жыл бұрын
Я так понял ты забил дальше развивать проект?
@Alex2772
@Alex2772 4 жыл бұрын
Какой проект?
@user-yf8nk6jf4r
@user-yf8nk6jf4r 4 жыл бұрын
@@Alex2772 Ну всмысле движок и игру саму
@Alex2772
@Alex2772 4 жыл бұрын
Нет, не забил. Есть ещё учёба и 3 других проекта
@The-DanFed-One
@The-DanFed-One 4 жыл бұрын
ПЗДЦ... Я попробывал делать точь в точь как у тебя и нифига не работает. "gl.h after glew.h" и даже '#pragma_once' не помогает....
@Alex2772
@Alex2772 4 жыл бұрын
А я говорил, что писать #include нужно только ПЕРЕД #include . Кроме того, не стоит включать оба эти файла внутри твоих заголовных файлов, иначе может возникнуть та же ошибка с порядком инклюдов и ты задолбаешься искать эту ошибку. Можешь написать на форум alex2772.ru/forums/
@yltravi0let_880
@yltravi0let_880 4 жыл бұрын
Где видео
@Alex2772
@Alex2772 4 жыл бұрын
У меня форс мажор, извините
@who9899
@who9899 4 жыл бұрын
Где мой урок по шейдерам????? Ибо сам хуй разберусь, да и было бы не плохо видеть урок или тему на форуме по поводу как для одного объекта создать VBO и вписать туда значения, например координаты вершин, координаты нормалей, координаты UV, id текстуры...
@Alex2772
@Alex2772 4 жыл бұрын
Уже его озвучиваю.
@user-pg8ry1tm3t
@user-pg8ry1tm3t Жыл бұрын
И если вы всерьёз думаете, шо сможете обойтись в геймдеве без математики - загуглите термин quaternions…🤪
@voidptr_t
@voidptr_t 3 жыл бұрын
Пишу спустя полтора года. Вообще только биндить вао не безопасно, желательно всегда его "освобождать": glBindVertexArray(0);
@Alex2772
@Alex2772 3 жыл бұрын
Необязательно
@voidptr_t
@voidptr_t 3 жыл бұрын
@@Alex2772 так я сказал "желательно"
@supermole4654
@supermole4654 4 жыл бұрын
Пролетариат требует 3 серию
@Alex2772
@Alex2772 4 жыл бұрын
Когда-нибудь, когда-нибудь ~
@novapc425
@novapc425 4 жыл бұрын
Где минуты с 4-й всё становится непонятно, меньше объясняешь и просто делаешь((
@Alex2772
@Alex2772 4 жыл бұрын
Учту
@user-cs9kg4fb9x
@user-cs9kg4fb9x 4 жыл бұрын
Лично я прошел базовый курс С++ и на этом видосе сиду ебалом щелкаю, где учить дополнительные библиотеки вообще и какие самые востребованые?
@Alex2772
@Alex2772 4 жыл бұрын
В 1 части я рассказал, какие библиотеки будем использовать и какие библиотеки самые востребованные в принципе. Там же говорил, что для понимания происходящего потребуются хорошие знания С++
@ZZZ-tf4tx
@ZZZ-tf4tx 4 жыл бұрын
У тебя есть дискорд?
@Alex2772
@Alex2772 4 жыл бұрын
Есть, но не пользуюсь
@ZZZ-tf4tx
@ZZZ-tf4tx 4 жыл бұрын
@@Alex2772 Можно с тобой поболтать?
@ZZZ-tf4tx
@ZZZ-tf4tx 4 жыл бұрын
Я нашел тебя) чекни лс
@Alex2772
@Alex2772 4 жыл бұрын
Звучит как угроза
@ZZZ-tf4tx
@ZZZ-tf4tx 4 жыл бұрын
@@Alex2772 ты вообще в дс заходишь?
@user-kb8dt1cs4i
@user-kb8dt1cs4i 4 жыл бұрын
На каком языке делать читы на майнкрафт?
@user-og5hn2lc4y
@user-og5hn2lc4y 4 жыл бұрын
тебе не нужно
@user-kb8dt1cs4i
@user-kb8dt1cs4i 4 жыл бұрын
@@user-og5hn2lc4y Просто интересно
@Alex2772
@Alex2772 4 жыл бұрын
Если просто интересно, но на Java. Как и все моды для майна.
@channelbarrel
@channelbarrel 4 жыл бұрын
на HTML
@ilnev3738
@ilnev3738 3 жыл бұрын
На двочином коде
@nikitaserik9938
@nikitaserik9938 4 жыл бұрын
vyt pfitk мне зашел
@user-nd3vv5fn5e
@user-nd3vv5fn5e 4 жыл бұрын
на сколько же SFML проще!
@Alex2772
@Alex2772 4 жыл бұрын
SFML почти всё делает за тебя. Unity+C# ещё проще
@FatherOfPeople
@FatherOfPeople 3 жыл бұрын
Это что я искал на русском языке
@anoona5015
@anoona5015 4 жыл бұрын
Шутка про ассемблер зашла))))) ну там где про прерывания. оказуалили программирование раньше хочешь микропроцессор юзать учи ассемблер ща ардуино. языки тип python java и особенно вэб типо php способны только на лаганое дерьмо. 100% уверен что если заебаться и на ассемблере написать игру с графой 2019 года(это пиздец я ели змейку написал) она на пентиуме пахать будет(возможно преувеличил но оптимизация капитальная)
@Alex2772
@Alex2772 4 жыл бұрын
Графика больше зависит от видеокарты, чем от центрального процессора. Хотя можно, конечно, изучить ассемблер для видеокарт. Но с оказуаливанием программирования согласен. Яркий тому пример - вышеупомянутый веб-уеб. Мне не совсем понятно, почему весь ор по большой нагрузке на железо веб-браузеров идёт на создателей веб-браузеров, а не уеб-разработчиков. Ведь тупорылые одностраничные говносайты лагают именно из-за уеб-разработчиков, которые не хотят ничего делать и используют громоздкие javascript-фреймворки и библиотеки по типу jquery и vue, что только отрицательно сказывается на производительности. А разработчикам веб-браузеров приходится разгребать всё это их дерьмо и писать оптимизации, которые мамкины уеб-разработчики по курсам "за 2 недели" не умеют делать и, что самое страшное, не хотят научиться.
@anoona5015
@anoona5015 4 жыл бұрын
@@Alex2772 могу скинуть пруфы
@Alex2772
@Alex2772 4 жыл бұрын
Я обвиняю уеб-разработчиков, а не JS или нормальных веб-разработчиков. Тут тонкая грань) Пыха тоже нормальный язык. Не станешь же ты писать хоум-пейдж на свой сайт на си. Про передачу аргументов. Тут тоже всё не так просто. Надо смотреть на итоговый код в дизассемблере. Первые четыре аргумента чаще всего передаются через регистры, т.е. память вообще не задействуется. Всё, что не влезет, передаётся через стек. В случае передачи всего через указатель на структуру в любом случае задействует память, что медленнее, чем через регистры. Про движение травы. От процессора требуется только увеличивать какую-либо переменную с каждым кадром, после чего запихивать её в видеокарту. Движение травы просчитывает вершинный шейдер в видеокарте.
@Alex2772
@Alex2772 4 жыл бұрын
При компиляции с оптимизацией стек по максимуму вычищается.
@zergon321
@zergon321 3 жыл бұрын
Если тебе нужны именно компилируемые языки, то можно юзать Go и Rust, а не б-гомерзкий С++.
@Alex2772
@Alex2772 3 жыл бұрын
Дельфи, говорят, тоже компилируемый, и его тоже можно использовать вместо С++
@zergon321
@zergon321 3 жыл бұрын
@@Alex2772 Delphi устарел и его никто не использует, а Go и Rust актуальны.
@Alex2772
@Alex2772 3 жыл бұрын
@@zergon321 ну используй rust или go в этом проекте, я что, тебе запрещать буду что-ли
@ilnev3738
@ilnev3738 3 жыл бұрын
С++ лучше
@zergon321
@zergon321 3 жыл бұрын
@@ilnev3738 чем?
@netjoker1000
@netjoker1000 2 жыл бұрын
как же вы достали начинать и бросать уроки по OGL. ни чо на русском нет( . обидно за державу))
@Alex2772
@Alex2772 2 жыл бұрын
"мы" это кто?
@netjoker1000
@netjoker1000 2 жыл бұрын
@@Alex2772 ты и такие как ты)
@comachine
@comachine 2 жыл бұрын
Согласен, везде что то по типу - 1 Часть: Запускаем окно 2 Часть: Рисуем квадратик/кружочек/треугольник в окне 3 Часть: Подрубаем какую то хуй пойми какую графическую поеботу в код, которая нихуя не делает 4 Часть: Фиксим и оптимизируем - Ну и всё, а "что вы хотели блять, это начало, для новичков, а остальное читать в 9000 страничных книгах по графике, математике и C++"
@netjoker1000
@netjoker1000 2 жыл бұрын
@@comachine да поxyй все равно ютуб закроют наверно(
@comachine
@comachine 2 жыл бұрын
@@netjoker1000 не навсегда.
Vertex Buffer Objects and Vertex Array Objects
8:35
GetIntoGameDev
Рет қаралды 22 М.
Vertex Array Objects // OpenGL Tutorial #17
12:11
OGLDEV
Рет қаралды 13 М.
Glow Stick Secret 😱 #shorts
00:37
Mr DegrEE
Рет қаралды 146 МЛН
格斗裁判暴力执法!#fighting #shorts
00:15
武林之巅
Рет қаралды 85 МЛН
КАХА и Джин 2
00:36
К-Media
Рет қаралды 4 МЛН
#1 Minecraft с нуля на C++ - создание окна
16:42
Изучение C++ для начинающих / #3 - Переменные и типы данных
27:50
Школа itProger / Программирование
Рет қаралды 236 М.
ASMR Programming - Spinning Cube - No Talking
20:45
Servet Gulnaroglu
Рет қаралды 3,5 МЛН
Создание 3d игр на C++: Minecraft
15:34
FamTrinli
Рет қаралды 552 М.
ПРОБЛЕМА МЕХАНИЧЕСКИХ КЛАВИАТУР!🤬
0:59
Корнеич
Рет қаралды 3,4 МЛН