Unity 내에서 스프라이트를 음영 처리 할 때 흰색이 가장 좋은 기본 색상입니까?


10

나는 단단한 사각형 스프라이트 / 타일로 구성된 Unity의 게임 프로토 타입을 찾고 있습니다. 게임의 각 타일마다 다른 색상으로 다른 유형의 객체를 나타낼 수 있다고 생각합니다.

단일 사각형 스프라이트를 가져 와서 여러 색상의 가져온 사각형과 달리 Unity에서 적절하게 음영 처리 할 수 ​​있다고 생각합니다.

Photoshop 내에서 색조와 채도를 조정 한 경험에 따르면 흰색은 흰색으로 유지되는 흰색으로 바뀌기 쉽지 않습니다. Unity에서 테스트 한 결과 스프라이트의 "색상"을 흰색 이외의 것으로 변경할 수 있으며 Photoshop 환경에서 생각한 내용에도 불구하고 스프라이트가 적절하게 음영 처리 된 것으로 보입니다.

Unity 내에서 흰색 객체가 변경 될 때 적절한 색상 음영을 취하는 것처럼 보이기 때문에 내 직감은 이것이 가장 좋은 기본 색상이라고 알려줍니다. 즉, 단일 흰색 사각형 스프라이트를 가져오고 다른 객체를 나타 내기 위해 단순히 색상을 조정할 수 있습니다 그리고 객체 상태.

흰색 스프라이트는 실제로 가장 좋은 색상 스프라이트이며, Photoshop에서 색조와 채도를 조정하는 대신 Unity에서 왜 이런 식으로 작동합니까?

여기에 이미지 설명을 입력하십시오


먼저 "최고"를 정의하십시오.
Krythic

답변:


13

흰색은 실제 표현에 가장 적합한 기본 색상입니다. 또한 스프라이트 그레이 스케일을 유지하면 팀 등의 색상을 쉽게 조정할 수 있습니다.

Unity는 스프라이트 텍스처와 색상에 Multiply블렌드 모드 를 적용합니다 .

유니티의 색상 유형 은 0에서 1까지입니다.

Color.White(1, 1, 1, 1)입니다.

1시간을 아는 것은 그 자체입니다.

그레이 스케일 texture이 스프라이트 렌더러 Color필드 와 혼합 되면 각 픽셀 자체가됩니다. 이 필드를 변경하면 각 균일 한 회색조 값에 색상의 각 구성 요소가 곱해집니다.

스프라이트 틴팅


Photoshop 또는 GIMP와 같은 자주 사용하는 이미지 편집기에서 Multiply 블렌드 모드로 재생할 수 있습니다.

포토샵 설정


4

스프라이트 -Additive.shader- GitHub 요점

단일 색상은 개별 색상 비율 빨강, 녹색, 파랑 및 알파 투명도 채널에 해당하는 많은 색상 형식 RGBA에 일반적인 4 개의 부동 소수점 값을 갖습니다.

또한 위에서 언급 한 것처럼 Unity에서 적용한 기본 "색조"는 곱셈 셰이더입니다. Photoshop에서는이 효과를 "곱하기"라고하며이 프로세스는 문자 그대로 스프라이트 픽셀의 색상 값과 선택한 색상 값을 곱하는 것입니다.

이것에 대한 문제는 Multiplicative color math 셰이더는 항상 같은 색조 (흰색으로 "곱셈"하는 경우) 또는 다른 것을 곱하면 더 어두운 색상을 생성한다는 것입니다. 대장장이 형 상황에서 정반대의 효과를 원했던 상황을 접했습니다. 더 어두운 색조를 만들기 위해 가열 된 금속에 노랑을 곱하면 안됩니다.

곱셈 쉐이더

대신 Unity의 기본 곱셈 셰이더를 다시 작성했습니다. 결과는 내가 찾고 있던 라인을 따라 더 많았습니다.

첨가제 셰이더

관심이 있다면 다시 쓴 Sprites-Additive.shader에 요점을 알려 드리겠습니다 .

다음은 색상 용어 및 모드에 대한 유용한 참고 자료입니다. http://www.northlite.net/ps/blend.htm


논평 할만한 명성이없는 사용자는이 효과에 대한 셰이더 코드를 보는 데 관심을 표명했습니다. 여전히 공유 할 수 있습니까?
DMGregory

1
이봐, 지금은 쉽게 구할 수는 없지만 가능한 빨리 파고 링크를 얻을 것이다. 가능하면 오늘 밤.
Joe

2
나는 그것을 다시 가져 와서 비교적 쉽게 발견하고 GitHub의 Gist에 추가했습니다. 첨가제와 곱셈 쉐이더의 주요 차이점 중 하나는 투명성을 다루는 것입니다. 추가 셰이더에서 나는 알파 값이 낮은 픽셀의 상대 알파를 유지하기 위해 10 % 투명도 컷오프를 설정했습니다. 그 수학의 본질로 인해 곱셈 쉐이더에서 이런 종류의 것에 대해 걱정할 필요가 없습니다.
Joe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.