여러 엔터티에 스포트라이트를 허용하는 2D "스포트라이트"효과를 만들려고합니다. 즉, 여러 스프라이트가 횃불을 들고있는 것처럼. 단일 엔티티 (하나의 스포트라이트)의 경우 그라디언트 스프라이트를 오버레이하고 중심점에서 해당 엔티티를 추적하는 기술을 사용합니다. 이 기술은 단일 스포트라이트에 적합합니다. 다음은 내가 말하는 것을 설명하는 스크린 샷입니다.
단일 스포트라이트-작동
내가 겪는 문제는이 기술이 여러 엔티티로 확장되지 않는다는 것입니다. 다른 스포트라이트 이미지를 오버레이하면 몇 가지 문제가 발생합니다. 다음은 시뮬레이트 된 스크린 샷입니다.
다중 스포트라이트 = 문제
가장 명백한 문제는 보이는 모서리입니다. 전체 레벨을 커버하기 위해 스포트라이트 이미지를 거대하게 만들어서 해결할 수는 있지만 옳지 않습니다. 두 번째로 더 다루기 힘든 문제는이 기법으로 어둠을 효과적으로 곱한다는 것입니다. 따라서 추가 된 각 스프라이트는 다른 사람을 어둡게하는 효과가 있습니다. 분명히 나는이 문제에 잘못 접근하고있다.
어떤 아이디어?
지속적인 노력
주석에서 혼합 옵션에 대한 논의가있었습니다. 여기 내 현재 생각이 있습니다. 위의 단일 스포트라이트 예제에서는 다음과 같은 이미지 파일을 사용합니다. (투명성을 쉽게 설명하기 위해 녹색을 녹색으로 바꿨습니다)
위에서 논의 된 바와 같이, 문제는이 이미지를 다른 이미지와 알파 블렌딩하여 원하는 효과를 생성하지 못한다는 것이다. 대신에 이것을 생성합니다 :
그것은 혼합 옵션 문제로 나를 놀라게하지 않습니다. 문제는, 일종의 이미지가 투명 마스크와 이미지 (검은 사각형)가 분리되어야 할 때 내장되어 있다는 것입니다.
따라서 컷 아웃 투명도가 내장 된 검은 이미지 대신 검은 사각형에 대해 런타임에 사용되는 투명 마스크를 사용해야합니다. 그렇게 할 때 여전히 전통적인 흰색과 검은 색 투명 마스크를 사용할 수 없거나 같은 문제가 발생합니다. 예를 들어, 이번에는 흰색과 검은 색이 흰색과 검은 색을 나타냅니다.
해결책은 자체적으로 투명성을 활용하는 투명성 마스크를 적용하는 것입니다. 이와 같은 것 : (녹색 = 투명)
이렇게하면 여러 개의 투명도 마스크를 함께 알파 블렌딩 할 수 있으며 검은 사각형에 대한 투명도 마스크로 사용할 수 있습니다. 다음은 알파가 함께 혼합 된 두 가지 투명도 마스크의 예입니다.
어쨌든, 그것이 내가 구현하려고하는 접근법입니다. 이것이 작동하면 결과를 게시 할 것입니다. 내가 현재 모르는 것은 투명성이있는 투명 마스크를 사용할 수 있는지입니다.