2013-06-10 4 views
0

저는 LibGDX 프로젝트에서 작업 중이며 스프라이트의 색상과 알파, 특히 이전에 배치 된 부분과 겹치는 부분을 수정할 수 있기를 바랍니다. 제가 말할 수있는 바에 따르면, 이것은 조각 쉐이더의 두 내부를 어떻게 든 비교 한 다음 필요에 따라 개별 조각을 수정하는 것만으로 가능할 것입니다.LibGDX - 조각 쉐이더에서 스프라이트 비교

현재 제 문제는 두 스프라이트의 데이터를 조각 쉐이더로 가져 와서 이러한 비교를 수행하는 방법을 알아내는 데 어려움을 겪고 있다는 것입니다. 이 작업을 수행해야하는 모든 스프라이트는 항상 서로 동일한 텍스처를 사용하므로 다른 하나가 "텍스처"를로드했기 때문에 비교중인 스프라이트의 좌표 데이터 만 가져와야합니까?

이전과 비슷한 것을 한 번도 해 본 적이 없기 때문에 전체 프로세스가 다소 당황 스럽습니다. 시도 할 내용에 대한 아이디어는 높이 평가됩니다. 이 시점에서 프래그먼트 쉐이더를 통해 개별 스프라이트를 제어 할 수 있습니다. 프래그먼트 셰이더 내에서 두 개의 별도로 배치 된 스프라이트를 비교하여 겹치고있는 부분이 어디인지를 알 수 있습니다.

답변

0

Java 코드에서 두 스프라이트의 교차점을 계산 한 다음 상대적으로 기본적인 쉐이더로 결과 오버랩 영역을 렌더링하는 것이 더 나을 것이라고 생각합니다. (그냥 스프라이트의 바닐라 렌더링 위에 그리십시오.)

+0

자바 자체에서 그 종류의 매우 특정한 픽셀 검사를 할 수 있다는 것을 알지 못했습니다. 이 가능성을 정확히 조사하기 위해 내가 무엇을 찾겠습니까? 그것은 내가 필요로 할 때 거의 끊임없이 행해질 때 매우 과세할만한 것으로 들립니다. 셰이더 내 텍스처의 가짜 복사본을 만들고, 텍스처 좌표를 오프셋하고, 비교에 사용하여 효과를 부분적으로 가짜로 만들 수 있었기 때문에 내가 간 쉐이더 경로가 실행 가능하다는 것을 확신합니다. 그것은 내가 원하는 것을 분명히하고 있지만 분명히 단순하고 제어 가능한 테스트를 넘어선 실제 솔루션이 아닙니다. – Cyanide

관련 문제