⛏️Minecraft на Unity3D, шейдер для мира (часть 4)

preview_player
Показать описание
Четвётрое видео из плейлиста по созданию клона Minecraft в Unity 3D. В этом проекте мы разберёмся с генерацией 3D моделей из кода, шейдерами, оптимизацией, и ещё множеством аспектов разработки игр. В этом видео напишем хитрый шейдер, с помощью которого будем текстурировать мир нашей игры

Содержание:
0:00 - Вступление
0:33 - Текстура без шейдера
4:40 - Что за шейдер
5:25 - Начинаем делать шейдер
12:59 - Боковые грани
16:01 - Разные типы блоков
20:25 - Заключение

На этом канале регулярно появляются новые видео, которые позволят тебе научиться создавать игры, или подарят новые идеи и вдохновение, если ты уже умеешь. Подписывайся!

Остались какие-то вопросы, пожелания, или идеи для других видео? Смело пиши в комментарии под видео

Поддержать канал:
btc: bc1q5mycq8x9jr7s0r63xx00xt50tjepflyhlzc09q
eth/usdt(erc20): 0xa30F22fb9898fdc8801703723cd77BE7E678ee13
Комментарии
Автор

Я просто не могу, твои видео настолько интересные, что аж грустно. Они пролетают почти мгновенно. Очень полезные видео!

Voronoka
Автор

Очень круто! Было бы интересно увидеть вашу реализацию дня и ночи и возможно, вид от первого лица

VursPZ
Автор

Много условий для нахождения blockType, это, конечно, весело, но можно ведь айдишники блоков использовать и их порядок на большой текстуре, чтобы без условий, через остатки от деления (на кол-во блоков в одном ряду текстуры) прибавлять нужный uv в зависимости от id блока и его позиции на текстуре. Так мы обойдёмся одной простенькой функцией, и не нужно будет отдельно проверять каждый вид блока

kirh_YT
Автор

Привет. Хотелось бы добавить, что для определения позиций блоков лучше пользоваться не относительно разрешения текстуры и пикселей, а относительно сетки. Тогда можно будет легко изменять код, если разрешение текстуры меняется или сетка

alexey
Автор

больше шейдеров умоляю, однозначно на ютубе ты лучший по ним

sagrgywejhxcvx
Автор

Очень подробный разбор игрушки, спасибо

KoliaBoroda
Автор

приятно видеть, что ты не забросил канал. Спасибо😘

ko-ko-ko-la
Автор

Спасибо за отличные видео! Жду с нетерпением новую серию!

fralid
Автор

Очень жду следующую серию.
Спасибо за контент!

weekend
Автор

Очень познавательно и очень интересно, не останавливайся!

asteria_os
Автор

Почему бы для типа блока из еnum использовать полноценный объект.
Например
Grass = {upUv: {x: 32, y: 16}, sideUv: {x: 16, y: 16}}
Тогда создатель координат не будет думать о типе координат просто прочтёт из объекта который ему дали.

В остальном спасибо что напомнил про щейдеры :)
Когда то я тоже с ними игрался. Только вот аудитории это очень плохо заходит.
Программирование шейдеров похоже на магию.

smarthedgehog
Автор

Спасибо за интересные ролики по разработке)

neiton
Автор

У масштаба в таком виде проблема: боковая текстура травы относительно верхушки правильно рисуется только каждые 4 блока. В остальных случаях там рисуется та часть, которая больше похожа на землю. Возможно, могут возникнуть проблемы и с другими блоками, где разные стороны имеют разные текстуры

uniowl
Автор

Спасибо за все что ты делаешь. Обожаю смотреть тебя

iamderlencer
Автор

Очень мощный и плотный урок по изучение шейдеров. Да еще и на реальном примере. Я как то смотрел как именно программируют шейдеры, но там было что то невероятно сложное и непонятное для моего уровня. Тем более когда в шкиле прогуливал геометрию и математику. Да и в институте тоже прогуливал, хотя почему то очень нравилось теория вероятностей. В общем не математического склада ума. После этого опыта шейдеры всегда обходил стороной. Но после этого материала понял, что все же стоит изучить эту тему, и научиться писать шейдеры. Весьма полезно и интересно. Плюс видимо есть много готовых решений для изучения. Еще раз благодарствую и низкий Одзиги.

RimuruDev
Автор

Ця гра нагадує мені таку гру, як Scrap Mechanic(За механікою маленьких блоків).
Эта игра напоминает мне такую игру как Scrap Mechanic (За механикой маленьких блоков).
Спасибо за интересные видео ^>^

goansichishig
Автор

Спасибо за видео.
Можешь добавить USDT в TRC20 или в BEP20 кошелёк в описание, а то очень неприятно платить комиссию в 3.2 USDT.

И немного по поводу блоков - не знаю будешь ли ты менять это потом или нет, но я бы убрал нафиг enum и добавил бы класс блока, в котором лежало бы его название и текстуры на все его стороны, а то сейчас нельзя добавить блок с уникальными сторонами ну и получается, что нам для каждого блока надо прописывать магические цифры отступа в коде (лучше их всё-таки в инспекторе прописывать)

И часть 4, а не 3)

stmihan_
Автор

Лучшее видео! Я подписался! Уже хочу поиграть в альфу как в манйркафте!😄

milkiskis
Автор

Сделай возможность ставить площадь блоков сразу как в скрепмеханик🥰

foxoros
Автор

Интересная задумка, но проще и красивее по стандарту использовать цельные текстуры для цельных блоков, но просто перерисовать их в соответствии с желаемым масштабом. Например, 4х4 текстура и блоки в 4 раза меньше в коде (хотя проще размер персонажа увеличить в 4 раза). Так и вычислений на видеокарту меньше ложится, и код везде понятнее, и боковая текстура травы адекватнее выглядит, и видеопамяти меньше занято. В идеале вообще наслайсить текстуры в Texture2DArray, чтобы не вычислять uv каждой текстуры, а просто передавать индекс текстуры через uv2. В шейдере благодаря встроенным функциям Unity это требует замены лишь нескольких строк кода, зато удобства привносит - хоть отбавляй.

proleternal