Можем ли мы написать нашу собственную логику выборки и переноса в шейдере? в чем может быть проблема?

#unity3d #shader #fragment-shader #texture-mapping #cg

#unity3d #шейдер #фрагмент-шейдер #отображение текстур #cg

Вопрос:

Есть несколько идей, которые я хотел бы реализовать в шейдере, которые требуют от меня создания странной топологии текстур, например, упаковки текстурного атласа. Они не могут быть обернуты с помощью режима common wrap, это приведет к сбою или кровотечению на краю УФ-шва

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

Возможно ли это и в чем может быть проблема или недостаток этого метода?

Ответ №1:

Да, это возможно и распространено. Вам нужно будет установить фильтр и / или режим переноса самого текстурного ресурса в проекте. (при использовании shader graph у вас есть возможность указать пользовательское состояние выборки внутри самого шейдера). Вы, конечно, можете изменить UV-координаты, переданные вашему шейдеру, и использовать эти измененные значения для выборки текстур.