Есть ли способ сравнить два атрибута "bump" из разных шейдеров?
Я пытаюсь сделать плагин, который берет выбранный шейдер и создает еще один из выбранного типа (из списка всех шейдеров).
Это не проблема создать новый шейдер и дать ему имя, а также заменить его на объекте, но я также пытаюсь восстановить все его атрибуты, и там у меня есть реальная проблема.
Если исходный шейдер Phong
и тип цели Blinn
нет проблем восстановить все их общие атрибуты (я перечислил все атрибуты моего целевого шейдера с помощью цикла в цикле, я сравнил их все и попытался соединиться, если есть похожие).
За Blinn
а также Phong
атрибут bump называется: .normalCamera
,
Но моя проблема заключается в следующем:
для
PxrDisney
Например, атрибут bump называется:.bumpNormal
,для
PxLMPlastic
, шишка называется:.diffuseNn
,
Некоторые идеи о том, как обойти эту проблему?
1 ответ
Это не ты - это майя.
К сожалению, нет надежного способа сделать это. Нет гарантии, что два шейдера будут использовать одно и то же имя для одной и той же функциональности или что два шейдера с одинаковыми именами будут использовать их одинаково.
Вы можете попытаться сохранить сопоставление атрибутов и использовать его для нахождения наиболее близкого соответствия, но оно всегда будет приблизительным.