Alexey Davydov

+62
с 2020
9 подписчиков
24 подписки

Очень многие не понимают всей мощи текстурных массивов. Я использую тайлящиеся текстуры в них, а для меша используя два UV, на одном UV собственно развёртка, а на другом те же самые UV- островки размещены в соответствующих тайлах-квадратиках. В шейдере таким образом вычисляется, какую именно текстуру - тайл накладывать на данный островок. А вторая развёртка говорит как накладывать. На удивление мало кто пользуется texture array и вообще знает о них.

Да там не сказать, что что-то ценное. К тому же я пока ещё подбираю материалы в этот массив текстур, поэтому всё меняется. И та демка уже не актуальна и стёрта. Да и хвастаться там в плане визуала особо не чем. Важно только то, что это один материал.

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

3

Сорри за задержку, не слежу уже за этой темой.
А что тогда непонятно, если с шейдерами и двумя UV всё ясно?
В блендере не будет использоваться фильтрация, так что в нодах текстур надо поставить фильтр "closest". Это даст некоторую пикселизацию, как негативный эффект.

Шейдер для блендера нарисован выше. Его выходы надо подключить на UV-входы нод для текстур.

@ Есть подозрение, что ни на сколько. Кому-то так просто удобнее.=)@
Тут не соглашусь, так как это не прихоть годота, а стандартное решение OpenGL.

2 UV, в отличии от кастомных ид, позволяет мне не использовать ни плагинов, ни ЦПУ. Просто работает.
В вулкане есть bindless текстуры, они, по идее ещё лучше, но я туда пока не копал, меня более чем устраивает текстур аррей.

Фильтрация может писаться в две строки, но обычно в этой строке довольно дорогостоящая процедура чтения соседнего пикселя из текстуры.

Анимация, запечённая в текстуры, вещь интересная, конечно.

Для того, кому интересно, как сделать атлас с материалами так, чтобы была возможность тайлинга, репитинга и скейлинга каждого из материалов по отдельности.
Потому что обычно в атласе материалов, чтобы повторить или масштабировать материал, приходится создавать новую геометрию. Например, чтобы получилась стена в два раза больше, надо тратить не один квад-полигон, а четыре. С моим же подходом удобство работы с атласом практически сводится к удобству работы с разными материалами. И даже более удобно, так как нет путаницы и все материалы на виду. В моём случае это 64 разных материала 512Х512 в одной текстуре 4096Х4096. Но можно использовать 16 штук 1024Х1024. Ну и, конечно, всё ради того, чтобы получить один материал вместо 64, пусть и с мелкими текстурками.
А не для русских патриотов и ценителей русского языка.

Спасибо. Нор это не применяет, чтобы применить, надо ещё edge split модификатор заюзать.

Я сейчас всё равно просто делаю вручную edge split там, где считаю нужным, вручную. Посмотрим, не будет ли рвать сетку в движке при компрессии мешей.

Тогда пиши компьютер на английском.
Лично мне просто переключать раскладку.
Этот текст не рассчитан на того, кому нужно гуглить драуколлы.

1

Мне нужно ещё иметь удобный рабочий процесс и 2 UV подходят как нельзя лучше. Насколько я знаю, в годот нельзя получить в шейдерах доступ к кастомным ид и прочим прелестям. Вертекс колор у меня уже занят. Да и, повторюсь, рабочий процесс с двумя UV  в блендере интуитивно понятен и прост.
Технически можно всё запихнуть в 1 UV, если сильно нужно. Например, номер тайла записать в целую часть, а сама UV не должна выходить за рамки 0...1 (этого хватит, так как один тайл до этих рамок можно масштабировать аж в 8 раз). Но это лениво и лишние движения при импорте.

Да, идея перенести расчёт смещения в вертексный шейдер более правильная. Спасибо, у себя перенёс.
Первую часть про константы просто не понял.

Наверное, вы про то, что я в шейдере для блендера сначала умножаю, а потом делю на 8. А делить непроизводительно. Но шейдер для блендера не имеет требований по производительности. А в шейдере для годота используются текстур аррей. Для которого делений не нужно. Впрочем, не совсем ясно насколько эффективен текстур аррей по сравнению с обычной текстурой.

Если же в годоте использовать просто текстуру, то это убьёт мипмаппинг и фильтрацию. И ничего с этим не поделать. Можно попытаться использовать вручную сгенерированные мипмапы, но стоит ли игра свеч?

Спасибо, когда-то ковырял yavne, но не получилось освоить. Надеюсь, нет проблем с экспортом. Поидее это просто нормали, даже в obj должны корректно сохраняться.

1

Не за что. Надеюсь на уменьшение драуколов. У себя собираюсь таким образом домики в городе сделать, чтобы на улице был только материал ландшафта и этот.

1

Спасибо, буду копать. Пока что у меня с ними не очень получалось.

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

Честно говоря, без дополнительных лупов, да и с ними, у меня получалось не очень. К тому же были некоторые проблемы с экспортом даже при autosmooth.
Конечно, надо осиливать yavne и модификаторы по этой теме.
Вообще маловато видеоуроков по данной теме.

Терпи. Английский язык продолжает доминировать над русским в технической сфере. Заимствования неизбежны.

2

Ну да, фаски снимают большинство вопросов с шейдингом.

Кроме фасок ещё нужно много дополнительных лупов для корректного шейдинга. Ели есть нормалка с хайполи, то она вытянет шейдинг. Это когда на модели непонятные тени тд и тп. Но да, основные вопросы с шейдингом снимаются фасками.

Без неё нужно очень постараться и добавить много геометрии. По поводу использования чистых материалов особо не сталкивался. В основном такое практикуют в визе. Так, конечно, такое имеет место быть, но не очень оптимально. А смешивать в несколько слоёв - это работа шейдера. То есть материал один, просто несколько чтений из разных текстур. А меньше материалов, меньше драуколов, насколько я понимаю.

Завидую, я свою лень победить не могу. Успехов в разработке!

1

Любой способ победить лень достоин внимания. Молодец!

1

Стиль всё лучше и лучше. Удивительно, как удалось на годоте добиться нормальной производительности для андроид. Значит, годот лучше, чем я думал.

1

Такой вопрос. Если умудрился сохранить шейдинг на лоупольке, то нафига хайполька нужна? А если запекать нормали с хайполи, то не лучше ли лоупольку ещё урезать в полигонах до практически блокаута?

ЗЫ. Модель хороша, даже не представляю, как удалось такой клёвый шейдинг сделать. На сетке куча треугольников, они у меня на smooth - режиме обычно предательски ужасающе ломают шейдинг. Вот как пример на боковине телефона, где железный рычаг из корпуса выдавлен.

Круто, заранее отрендеренная карта, в общем. Её можно сделать и стилизованной.