Substance Painter. Как отключить отображение обратной стороны при рендере?

Автор
Сообщение
На сайте c 24.07.2018
Сообщений: 28

Перепробовал все шейдеры, при любом шейдере Iray рендерит обратные стороны модели. Во вьюпорте некоторые шейдеры отображают обратную сторону (pbr-metal-rough-with-alpha-blending) некоторые не отображают (pbr-metal-rough), но при рендерbнге Iray рендерит обратную сторону в любом случае.

Кто-нибудь знает как таки отключить обратную сторону (backface cull) при рендеринге Iray?

Нашёл в конфигах шейдеров такой параметр:

//: state cull_face on

Но влияет он только на отображение обратных сторон во вьюпорте. При рендере, и при off, и при on - обратная сторона рендерится :(

Ещё в Shader API есть такой момент:

facing : an integer indicating rendered faces (-1: back faces, 0: undefined, 1: front faces)

//: param auto facing

uniform int uniform_facing;

Судя по всему это оно и есть. Пробовал прописывать и так:

uniform int uniform_facing;

и так:

uniform int uniform_facing = 1;

Результата не дало. Если я правильно понимаю эту переменную ещё в void shade(V2F inputs){} какой-нибудь функции надо передать. Кто-нибудь ковырял Shader API? Может хоть какие то идеи будут?

На сайте c 11.12.2022
Сообщений: 25


мульт

Дата выдачи:
06.08.2024 17:58:08


Пожизненный бан

можно и так шутки ради:

но по идее – да, если она просто объявлена даже глобальной, но в соответствующем методе не задействована, то как бы и его потенциальный оверлоад исполняется по дефолту – в сигнатурах перегруженных функций надо ведь явно указывать аргументы для выбора соотв. варианта.

* это пока умозрительно, я на смарте, можно ли код шейдера в txt > в облако, если не затруднит?

На сайте c 24.07.2018
Сообщений: 28
Цитата inherit:
это пока умозрительно, я на смарте, можно ли код шейдера в txt > в облако, если не затруднит?

http://file.sampo.ru/z3fqnk/ 

На сайте c 11.12.2022
Сообщений: 25


мульт

Дата выдачи:
06.08.2024 17:58:08


Пожизненный бан

Volaner, спасибо. ну да, - его там по ходу вообще нету, т.е. entry point – это как main ( ), в теле которой { } должен присутствовать метод вроде тех же для рафнес, металлика и т.п., который и должен выполнить действие над переменной, определяющей способ шейдинга.

надо нырнуть в доки, чтобы выяснить, как именно он зовётся, добавить его в энтри-поинт где-нибудь в пределах { } и указать значение. возможно, он не сильно и отличается от уже упомянутой в api переменной. я погуглю мануал, если что-то найду – маякну

upd: посмотрел, - функция кулинга нигде не упоминается и о get/set для неё – ни слова. впечатление, что она наглухо инкапсулирована в привате (как говорят разрабы – они предоставляют лишь часть кода шейдера, доступного для редактирования) и доступна для твика только посредством параметра, объявляемого той самой строкой:

//: param auto facing

uniform int uniform_facing;

которая, очевидно, призвана вывести доп.виджет в палитру свойств, в которой и будет доступен выбор значений -1, 0, 1

* надо внимательно посмотреть, появляется ли после добавления этого заклинания соответствующее поле в свитке настроек шейдера

На сайте c 24.07.2018
Сообщений: 28
Цитата inherit:

Volaner, спасибо. ну да, - его там по ходу вообще нету, т.е. entry point – это как main ( ), в теле которой { } должен присутствовать метод вроде тех же для рафнес, металлика и т.п., который и должен выполнить действие над переменной, определяющей способ шейдинга.

надо нырнуть в доки, чтобы выяснить, как именно он зовётся, добавить его в энтри-поинт где-нибудь в пределах { } и указать значение. возможно, он не сильно и отличается от уже упомянутой в api переменной. я погуглю мануал, если что-то найду – маякну

upd: посмотрел, - функция кулинга нигде не упоминается и о get/set для неё – ни слова. впечатление, что она наглухо инкапсулирована в привате (как говорят разрабы – они предоставляют лишь часть кода шейдера, доступного для редактирования) и доступна для твика только посредством параметра, объявляемого той самой строкой:

//: param auto facing

uniform int uniform_facing;

которая, очевидно, призвана вывести доп.виджет в палитру свойств, в которой и будет доступен выбор значений -1, 0, 1

* надо внимательно посмотреть, появляется ли после добавления этого заклинания соответствующее поле в свитке настроек шейдера

Ну документация у них просто отличная. Что толку от списка переменных, если не понятно, какой функции их передавать

На сайте c 11.12.2022
Сообщений: 25


мульт

Дата выдачи:
06.08.2024 17:58:08


Пожизненный бан

Volaner, велкам ту проприетарный адоб, как говорится ) может удастся что-нибудь в хелпе нарыть, у меня пока нет возможности клацнуть по f-1

вообще, напоминает макрос-обвес для вывода поля в блюпринт. в привате, думаю, нечто подобное замутили:

if (!uniform_facing) return; else {и понеслась... т.е. отсутствие объявленной переменной гарантирует выход без исполнения, а присутствие – запускает сценарий и, хайли лайкли, в нём предусмотрен вывод ползунка с -1, 0, 1 в свойства. иначе пока эту шараду не объяснить )

Читают эту тему: