픽셀 화 된 iOS 앱과 함께 Unity3D에서 사용할 GLSL 쉐이더를 작성했습니다. 그것은 두 하나의 문제 :픽셀 라이팅 쉐이더
1) 효과가 항상 달에 머물지는 않으며 2) 조명이 픽셀 화되지 않습니다.
조금 설명하겠습니다. 셰이더는 달이 뒤쪽에있을 때 전경 오브젝트에 조명 효과를주기위한 것입니다. 나는 일반적으로 (실루엣처럼) 모두 검은 색으로 표시됩니다 스프라이트를 가지고 있지만, 달 객체가 충분히 근접 할 때, 그것과 같이, 질감의 세부 사항을 알 수 :
실제에게 (쉐이더없이) 스프라이트는 다음과 같은 :
나는이 방법은 내가 하나의 텍스처와 라이트 맵을 가질 수 있도록 인 영향을하고있는 중이 야 그 이유를. 그러나 두 가지 문제가 있습니다.
1) 화면의 가장자리에 가까워지면 조명 효과가 달을 정확히 따라 가지 않습니다. 이것이 TEXCOORD1 변수의 잘못된 사용법 사용과 관련이 있는지 확실하지 않습니다. 나는 전체 화면을 덮는 스프라이트를 만들어 달을 따라 가지 않는 방법을 볼 수 있습니다. 이 효과에 대한 테스트 장면에서의 문제에 대한 그림이 있습니다. 검은 줄무늬와 알파가있는 전체 화면 스프라이트가있어 효과가 항상 어디에 있는지 정확하게 보여줍니다. 조명을 비현실적으로 보이게하기 때문에이 비동기 해제를 제거하고 싶습니다.
2) 발생하는 조명 효과는 매우 날카로운입니다 - 그것은 더 볼 것, 내가 생각하는 각 픽셀이 SpriteLamp 같이 개별적으로 점등 된 경우. 셰이더의 조각 좌표를 반올림하는 것과 관련이 있다는 것을 알고 있지만 셰이더에 변수의 값이 무엇인지 알지 못하기 때문에 제대로 작동하지 않을 수 있습니다.
거리를 둥글게하고 바닥으로 갈 수는 있지만, 달에서 거리를 지키고 있지만 원래 스프라이트의 픽셀을 따르지는 않습니다. 내가 더이처럼 무엇을 찾고 있어요
...이 픽셀 화는하지만, 우리는 당신이 나의 의미를 잡을 경우, 하나의 픽셀 수 있어야 어떤에서 이상한 곡선으로 끝낼. 원본 텍스처의 개별 픽셀이 어떻게 켜져 있는지 확인하십시오. http://pastebin.com/0zbqrP57 :
다음은 셰이더 자체에 대한 링크입니다. 이것은 기본 유니티 스프라이트 쉐이더로, 대부분은 SampleSpriteTexture 함수의 끝에 추가 된 코드입니다.
실용적인 쉐이더를 볼 때 사용할 수있는 유니티 패키지에 대한 링크입니다. 장면이 재생되는 동안 달을 움직여보십시오.
https://drive.google.com/open?id=0BxCQjUHiAAQWZGpPZ3R2SExTcXc
내 질문 : 당신이 그들에게 이러한 문제 또는 솔루션을 해결하는 방법에 대한 조언이 있습니까?
귀하의 문제를 이해했지만 귀하는 그것에 대해 구체적인 질문을하지 않았습니다. 왜 비동기가 발생하는지 이해하려고합니까? 해결 방법에 대한 제안이 있습니까? 여기서 정확히 목적은 무엇입니까? 편집하십시오. – XenoRo
안녕하세요, @ AlmightyR, 제안에 감사드립니다. 나는 제안과 해결책을 기대하고있다. 질문을 업데이트했습니다. 목표는 문제 # 2에서 효과를 구현하는 것입니다 (현재 설정보다 좋을 것으로 예상 됨). 그리고 desync 문제를 해결하십시오. – Catlard
와우 그것은 매력처럼 작동합니다. 감사합니다 – Learner