Делаю игру песочницу наподобие Майнкрафта или Винтаж стори, однако кубизм откровенно надоел, поэтому ландшафт будет генерироваться как в 7 days to die, и если с генерацией меша проблем нет, быстро со всем разобрался и уже написал основу, то вот с наложением текстур длительный стопор, так как с написанием шейдеров никогда до этого не сталкивался.
Пока только разобрался с мелкими отдельными моментами, но этого явно мало, поэтому возник вопрос, какие темы мне нужно изучить чтобы добиться необходимого результата, а так как это разовая необходимость и писать нечто подобное я больше не собираюсь, то полноценное изучение шейдеров не рассматриваю, ещё как минимум за неимением достаточного количества свободного времени на это.
Также имеется сложность в том, что в будущем количество игровых блоков будет увеличиваться, а сами текстуры я планирую делать 1024х1024, поэтому атлас тут явно мимо. Пока что вскрыл пару скаченных исходников с процедурно-генерируемым воксельным ландшафтом, разобраться в работе их систем текстурирования не получилось, но увидел что шейдеры вроде как хорошо сообщаются с C# скриптами, так как список блоков записывается в генератор мира из папки с блоками при старте, а в их файле типа Scriptable object вместо материалов указываются текстуры для каждой из сторон со всеми картами и указываются настройки (такие как уровень воздействия карт металлики и высот) так же как в шейдерах, это как минимум значит, что шейдер находящийся на мешах чанков получает все нужные параметры и правильно их использует.
Надеюсь найдутся люди которые смогут если и не помочь, то хоть подсказать в какую сторону стоит копать, заранее спасибо.
Для визульного обьяснения что значит "сглажено-воксельного мира" прилагаю скриншоты:
На первом чисто "Майнкрафтовский" генератор, хотя кубы в моем случае естественно тоже будут использоваться, например для стен;
На втором я сгладил эти кубы исходя от октаэдра, однако в будущем такой тип останется только при установке блока игроком, а изначальная генерация будет еще более сглаженной (до трех блоков в длину на метровый подъем, это даст еще 4 возможных угла между 0 и 90 градусами не считая их и 45 градусов).
На данный момент я пытаюсь разобраться в работе шейдера террейна, там вроде нужный принцип, правда только проекцией сверху, поэтому лишь двумерный, но самостоятельно без базы понять это невероятно сложно, в инете я не могу найти ничего подходящего, как минимум пока что, поэтому если кто-нибудь знает, статью или в идеале видео на любом языке мира где пишут кастомный, пусть и слабенький террейн, то прошу поделится ссылкой, я уже там как-нибудь разберусь что к чему. Мне главное понять как можно управлять шейдером из скрипта, а пока что буду ковырять скачанные исходники в котором это как-то работает.