True False 단순 처리 함수.



True False 단순 처리 함수.

최초작성 : 2014년 8월 4일.

작성자 : jplee

소속 : 알레고리드믹.

이메일 : jp.lee@allegorithmic.com

http://www.allegorithmic.com


http://cafe.naver.com/allegorithmickorea
PBR 머트리얼 유틸리티를 만들었을 때는 여러개의 블렌더 노드의 연결성을 인티저 타입의 발류로 만들어서 만들어 봤습니다.

그때는 분기문의 조건부에 비교문을 넣었지만 단순히 참이냐 거짓이냐에 따라 오퍼시티를 0 아니면 1 로 만들어 보는 간단한 함수를 보겠습니다.




위 노드의 상황을 살펴 봅니다.

상황은 이렇습니다.

디퓨즈 맵 인풋으로 하나가 들어 오고.

디퓨즈는 노말맵 제네레이터로 중복 인풋이 됩니다.

노말맵 제네레이터는 암비언트 오쿨루젼 맵을 만드는 노드 과정을 거치고 있습니다.





목표는 유니티에서 암비언트 오쿨루젼 맵을 쉐이더 상에서 코드로 블렌딩 하는 것이 아니라 섭스턴스에서 노드를 이용 하여 처리 하되 사용자가 암비언트 오쿨르전 텍스처를 디퓨즈 위에 블렌딩을 할 것인지 아닐지의 선택권을 주는 사용자 기능을 만들려고 하는 것입니다.





라이브러리에서 블렌더 중 멀티플 블렌더를 선택 하여 추가 합니다.

디퓨즈 인풋과 암비언트 오쿨러전 생성 즉 그림에서 AO_TEX 그룹의 마지막 아웃풋이 추가 된 블렌더의 포그라운드 인풋으로 들어 갑니다.


이제 멀티플 블렌더 노드를 선택 하고 인스펙터 에서 오퍼시티에 빈 함수를 만들어 줍니다.






그래프 편집 화면 바닥을 더블클릭 하고 인풋 파라메터를 하나 만들어 줍니다.


위 그림을 참조 하여 똑같이 만들어 봅니다.

여기서 중요 한 부분은 타입을 Boolean 타입으로 해야 한다는 겁니다.

다른 부분은 임의로 하셔도 됩니다.






다시 한수로 넘어 가서 Get Boolean 을 추가 합니다.

이 변수는 인풋 파라메터에서 만들어 놓은 True , False 값을 가져 올 것입니다.










Get Boolean 노드를 선택 하고 위 그림과 같이 미리 만들어 둔 인풋 파라메터를 지정 해 줍니다.










콘트롤 중 If...Else 를 추가 합니다.






두개의 Float 상수를 만을어 줍니다.

그림으로 부터 위에서 부터 상수 Float 의 셋팅 값은 1 그리고 가장 아래의 상수는 0 입니다.





이제 완성 되었습니다.





이 분기문은 조건을 검사 하여 입력이 참 이면 0을 리턴 하고 거짓이면 1을 리턴 할 것입니다.

다시 말해 인풋 파라메터인 ambient_occlusion 의 Boolean 값이 Treu 이면 1 으로 연결되어 블렌더 노드의 오퍼시티가 1이 될 것이기 때문에 실제 최종 아웃풋 에서는 디퓨즈와 AO 맵이 멀티플로 합성 되어 출력 될 것이고 반대로 False 이면 디퓨즈만 출력 될 것입니다.














참 일때.






거짓 일때.


셈플이 좀 미묘한 차이라서 그렇지만 직접 한번 쯤 직접 구현 해 보시기를 바랍니다.

Game Developer Leegoon copyright all right reserved since 2010.

Comments