PDA

View Full Version : Tutorial 튜토리얼 내용 중에서.



lupin0720
12-27-2011, 02:34 AM
UE3 홈 > 머티리얼과 텍스처 > 머티리얼 개론 > TextureSample 설명 중에

"A -색의 알파 채널을 출력합니다. 텍스처에 알파 채널이 없으면 '알파' 채널을 다른 것에 연결해도, 기술적으로 잘못된 건 아니지만, 항상 0(검정)으로 나타나게 됩니다."

라는 설명이 있는데, 0이 아니라 1 아닌가요...?

donggas90
01-01-2012, 08:56 AM
디자이너와 프로그래머의 견해 차이라 할 수 있겠네요.


이건 포토샵에서 표현하는 것 처럼 흰색(정보 없음, 0), 검정(정보 있음, 1)로 접근하는 것이 아니라

C 언어로 2진수(해당 비트)에 정보 있음(true, 1), 정보 없음 (false, 0)으로 해석하셔야 합니다.

lupin0720
01-02-2012, 05:43 AM
디자이너와 프로그래머의 견해 차이라 할 수 있겠네요.


이건 포토샵에서 표현하는 것 처럼 흰색(정보 없음, 0), 검정(정보 있음, 1)로 접근하는 것이 아니라

C 언어로 2진수(해당 비트)에 정보 있음(true, 1), 정보 없음 (false, 0)으로 해석하셔야 합니다.



그런데 알파가 없는 텍스쳐의 알파를 디퓨즈에 연결하면 검정이 아닌 흰색이 나오네요. 설명대로라면 정보없음(0)을 0.5로 곱한(multy) 후에 디퓨즈로 연결하면 검정이 나와야 맞는데, 회색이 나옵니다.
덧붙여 알파 없는 텍스쳐의 알파와 알파가 있는 텍스쳐의 알파를 곱해도 true값이 나옵니다.

혹, 색상이 어떻게 보이던 상관없이, 알파 텍스쳐의 존재여부(true/false) 만을 의미하는거라면, 위의 방식으로 작업해도 문제가 되지는 않는지 궁금합니다.

donggas90
01-02-2012, 11:49 AM
검정이 0(false)이냐 1(true)이냐에 집중해서 설명을 드렸는데

테스트를 해보니 흰색이 나오네요.


답변의 요지가 잘못되었고

문서에는 오류가 있습니다.


언리얼 엔진에서 검정은 0, 흰색은 1로 정의하고 있는 것이 맞습니다.


알파 채널을 명시(최소 1픽셀이 1이하)하지 않으면

엔진이 자동으로 알파 채널에 1(모든 픽셀 1)을 체워서 임포트하는 것 같습니다.

혹은 빈 알파 채널에 대한 반환 값을 1로 정해 놓은 정도로 생각해 볼 수 있습니다.


하지만 다른 엔진에 가면 빈 알파를 어떻게 처리할지 모르기 때문에

콘스탄트 1이나 0으로 확실히 명시하는 것이

만드신 쉐이더 코드의 이식성을 감소시키지 않는 방법일 겁니다.

lupin0720
01-02-2012, 08:08 PM
답변 정말 감사드립니다. 가려운 부분을 시원하게 긁어주신 느낌이네요
인사가 늦었습니다. 2012년 한해 좋은 일 많이 생기시고 앞으로도 많은 도움 부탁드리겠습니다.^^