빛의 범위에 있는지 여부에 따라 'lit'텍스처 또는 'unlit'텍스처 중 적절한 색상을 페인트하는 간단한 frag/vert 셰이더를 작성하려고합니다.Shader에서 Light 's Range 값을 얻으려면 어떻게해야합니까?
따라서 빛의 거리와 빛의 거리를 비교해야합니다. 나는 모든 종류의 것들을 검색하고 있었지만 빛의 범위 값에 접근하는 방법을 찾을 수없는 것 같습니다. 그렇게 할 방법이 있습니까? 그렇지 않은 경우 대안으로 사용할 수있는 파생 데이터가 있습니까?
업데이트 나는 그러나 조금만 주위를 연주 한 후, 지금까지 가장 유망한 것 같다이 방법 here을 발견 할 수 있었다
, 나는 아직도 내가 원하는 것을 얻을 수없는 것. _LightMatrix0
에 대한 이야기가 있습니다. 누구든지 확인할 수 있습니까? 2
업데이트 나는 Unity Shader Variables 문서에서 변수 unity_LightAtten
을 발견했다. 그러나 Vertex Lit 쉐이딩에만 사용됩니다. 특히 콘솔 지원이 부족한 점을 고려하면 이상적이지는 않습니다. 이 변수를 전달 렌더링에 파이프 할 수 있습니까?
ohh, 유망한 ... 나는 찌를 것이고, 여기에 돌아갈 것이다, 고마워! 그러나 나는 어떻게 다른 빛을 구별 할 것입니까? – LeftRight92
조명에 다른 이름을 사용하십시오. 그런 다음 해당 게임 객체를 스크립트에서 이름으로 찾습니다. [GameObject.Find] (https://docs.unity3d.com/ScriptReference/GameObject.Find.html) – zwcloud
이것이 내가 도달 한 첫 번째 해결책이지만 셰이더의 현재 패스에서 어떤 빛이 사용되고 있는지 어떻게 알 수 있습니까? ? – LeftRight92