2017-05-04 1 views
1

나는 선택된 셰이더를 취하는 플러그인을 만들고 (모든 셰이더의리스트로부터) 선택된 타입으로부터 다른 셰이더를 생성하려고한다.다른 쉐이더의 두 '범프'속성을 비교하는 방법이 있습니까?

새 쉐이더를 만들고 이름을 지정하고 객체를 대체하는 데는 문제가 없지만 모든 속성을 다시 연결하려고 할 때 실제 문제가 있습니다.

소스 쉐이더가 Phong이고 대상 유형이 Blinn이면 모든 공통 속성을 다시 연결해도 문제가 없습니다. (루프에서 루프를 사용하여 대상 쉐이더의 모든 속성을 나열한 후 모두 비교하여 시도했습니다. 비슷한 것들이 있다면 연결하십시오).

BlinnPhong의 경우 범프 속성의 이름은 .normalCamera입니다.

하지만 내 문제가하십시오 PxrDisney에 대한

  • 는, 예를 들어, 범프 속성의 이름은 : .bumpNormal.

  • PxLMPlastic의 경우 범프 이름은 .diffuseNn입니다.

이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

답변

0

마야가 아닙니다.

불행히도이를 수행 할 수있는 확실한 방법은 없습니다. 두 개의 셰이더가 동일한 기능에 대해 동일한 이름을 사용하거나 동일한 이름의 속성을 가진 두 개의 셰이더가 같은 방식으로이를 사용한다는 보장은 없습니다.

속성의 매핑을 유지하고 가장 가까운 항목을 찾기 위해 사용할 수 있지만 항상 근사치입니다.

관련 문제