Да там не сказать, что что-то ценное. К тому же я пока ещё подбираю материалы в этот массив текстур, поэтому всё меняется. И та демка уже не актуальна и стёрта. Да и хвастаться там в плане визуала особо не чем. Важно только то, что это один материал.
Имхо, надо ввести подсказки за просмотр рекламы, тогда решится проблема со сложностью головоломок. Или даже скип головоломок.
А кто не скипает и честно решает - тому достижение.
Добавлю ещё способ совмещения атласов и тайлов в одной текстуре через Texture Array.
Пользуюсь для себя этим методом.
https://dtf.ru/gamedev/725696-atlas-i-tayling-odin-material-chtoby-pravit-draukolami
Сорри за задержку, не слежу уже за этой темой.
А что тогда непонятно, если с шейдерами и двумя UV всё ясно?
В блендере не будет использоваться фильтрация, так что в нодах текстур надо поставить фильтр "closest". Это даст некоторую пикселизацию, как негативный эффект.
Шейдер для блендера нарисован выше. Его выходы надо подключить на UV-входы нод для текстур.
Семплирование разве не чтение из текстуры?
@ Есть подозрение, что ни на сколько. Кому-то так просто удобнее.=)@
Тут не соглашусь, так как это не прихоть годота, а стандартное решение OpenGL.
2 UV, в отличии от кастомных ид, позволяет мне не использовать ни плагинов, ни ЦПУ. Просто работает.
В вулкане есть bindless текстуры, они, по идее ещё лучше, но я туда пока не копал, меня более чем устраивает текстур аррей.
Фильтрация может писаться в две строки, но обычно в этой строке довольно дорогостоящая процедура чтения соседнего пикселя из текстуры.
Анимация, запечённая в текстуры, вещь интересная, конечно.
Тут ключевые слова атлас и тайлинг.
Для того, кому интересно, как сделать атлас с материалами так, чтобы была возможность тайлинга, репитинга и скейлинга каждого из материалов по отдельности.
Потому что обычно в атласе материалов, чтобы повторить или масштабировать материал, приходится создавать новую геометрию. Например, чтобы получилась стена в два раза больше, надо тратить не один квад-полигон, а четыре. С моим же подходом удобство работы с атласом практически сводится к удобству работы с разными материалами. И даже более удобно, так как нет путаницы и все материалы на виду. В моём случае это 64 разных материала 512Х512 в одной текстуре 4096Х4096. Но можно использовать 16 штук 1024Х1024. Ну и, конечно, всё ради того, чтобы получить один материал вместо 64, пусть и с мелкими текстурками.
А не для русских патриотов и ценителей русского языка.
Пофиг. Терпи.
Спасибо. Нор это не применяет, чтобы применить, надо ещё edge split модификатор заюзать.
Я сейчас всё равно просто делаю вручную edge split там, где считаю нужным, вручную. Посмотрим, не будет ли рвать сетку в движке при компрессии мешей.
Тогда пиши компьютер на английском.
Лично мне просто переключать раскладку.
Этот текст не рассчитан на того, кому нужно гуглить драуколлы.
Мне нужно ещё иметь удобный рабочий процесс и 2 UV подходят как нельзя лучше. Насколько я знаю, в годот нельзя получить в шейдерах доступ к кастомным ид и прочим прелестям. Вертекс колор у меня уже занят. Да и, повторюсь, рабочий процесс с двумя UV в блендере интуитивно понятен и прост.
Технически можно всё запихнуть в 1 UV, если сильно нужно. Например, номер тайла записать в целую часть, а сама UV не должна выходить за рамки 0...1 (этого хватит, так как один тайл до этих рамок можно масштабировать аж в 8 раз). Но это лениво и лишние движения при импорте.
Да, идея перенести расчёт смещения в вертексный шейдер более правильная. Спасибо, у себя перенёс.
Первую часть про константы просто не понял.
Наверное, вы про то, что я в шейдере для блендера сначала умножаю, а потом делю на 8. А делить непроизводительно. Но шейдер для блендера не имеет требований по производительности. А в шейдере для годота используются текстур аррей. Для которого делений не нужно. Впрочем, не совсем ясно насколько эффективен текстур аррей по сравнению с обычной текстурой.
Если же в годоте использовать просто текстуру, то это убьёт мипмаппинг и фильтрацию. И ничего с этим не поделать. Можно попытаться использовать вручную сгенерированные мипмапы, но стоит ли игра свеч?
Спасибо, когда-то ковырял yavne, но не получилось освоить. Надеюсь, нет проблем с экспортом. Поидее это просто нормали, даже в obj должны корректно сохраняться.
Не за что. Надеюсь на уменьшение драуколов. У себя собираюсь таким образом домики в городе сделать, чтобы на улице был только материал ландшафта и этот.
Спасибо, буду копать. Пока что у меня с ними не очень получалось.
А чем пользуетесь для этого, если не секрет?
Добавлю также, что формально без дополнительных вершин как раз шейдинг поменять сложно, так как в основном используется как раз разрыв сетки и создание такой же вершины с другой нормалью. Но без дополнительных полигонов, да. Тем не менее это не совсем уж бесплатный в плане производительности способ.
Честно говоря, без дополнительных лупов, да и с ними, у меня получалось не очень. К тому же были некоторые проблемы с экспортом даже при autosmooth.
Конечно, надо осиливать yavne и модификаторы по этой теме.
Вообще маловато видеоуроков по данной теме.
Терпи. Английский язык продолжает доминировать над русским в технической сфере. Заимствования неизбежны.
Ну да, фаски снимают большинство вопросов с шейдингом.
Кроме фасок ещё нужно много дополнительных лупов для корректного шейдинга. Ели есть нормалка с хайполи, то она вытянет шейдинг. Это когда на модели непонятные тени тд и тп. Но да, основные вопросы с шейдингом снимаются фасками.
Без неё нужно очень постараться и добавить много геометрии. По поводу использования чистых материалов особо не сталкивался. В основном такое практикуют в визе. Так, конечно, такое имеет место быть, но не очень оптимально. А смешивать в несколько слоёв - это работа шейдера. То есть материал один, просто несколько чтений из разных текстур. А меньше материалов, меньше драуколов, насколько я понимаю.
случайный дубль.
Завидую, я свою лень победить не могу. Успехов в разработке!
Любой способ победить лень достоин внимания. Молодец!
Успехов!
Стиль всё лучше и лучше. Удивительно, как удалось на годоте добиться нормальной производительности для андроид. Значит, годот лучше, чем я думал.
Такой вопрос. Если умудрился сохранить шейдинг на лоупольке, то нафига хайполька нужна? А если запекать нормали с хайполи, то не лучше ли лоупольку ещё урезать в полигонах до практически блокаута?
ЗЫ. Модель хороша, даже не представляю, как удалось такой клёвый шейдинг сделать. На сетке куча треугольников, они у меня на smooth - режиме обычно предательски ужасающе ломают шейдинг. Вот как пример на боковине телефона, где железный рычаг из корпуса выдавлен.
Круто, заранее отрендеренная карта, в общем. Её можно сделать и стилизованной.
В любом случае спасибо за ценную статью.
Очень многие не понимают всей мощи текстурных массивов. Я использую тайлящиеся текстуры в них, а для меша используя два UV, на одном UV собственно развёртка, а на другом те же самые UV- островки размещены в соответствующих тайлах-квадратиках. В шейдере таким образом вычисляется, какую именно текстуру - тайл накладывать на данный островок. А вторая развёртка говорит как накладывать. На удивление мало кто пользуется texture array и вообще знает о них.