• RuntimesUnity
  • 2D Lit Light 쉐이더 커스텀문제

이전 게시글을 잘못 작성해 다시 질문글을 올립니다.
URP 2D Light 를 위해 Spine-SkeletonLit-URP-2D 쉐이더를 커스텀해서 사용하고 있습니다.

동일한 코드가 패키지 내부에 있을 때와 밖에 있을 때 랜더링 결과물이 다릅니다.
패키지 내부에 있는 오리지널 쉐이더를 직접 커스텀해서 사용할 때는 원하는 결과물이 나오지만,
프로젝트 내에 쉐이더를 생성해 코드를 작성하면 모두 하얗게 나옵니다.
두 쉐이더 코드는 include 되는 파일들의 루트명 외에는 모두 같습니다.

거기에 더해 위 문제는 UMP로 URP Shader를 들여왔을 때 발생합니다.
수동으로 zip파일 압축을 풀어 프로젝트 내부에 넣게되면 Lit 쉐이더를 직접 수정 후 우리 프로젝트 깃에 올릴 수 있기 때문에 발생하지 않아요.

때문에 수동으로 URP Shader를 넣어 작업을 하고 있지만, 향후 업데이트 등의 관리를 위해서라도 UMP를 통해 관리하고 싶습니다.

그래서 이 문제가 해결될 수 있으면 좋겠어요.

Related Discussions
...

Spine URP 쉐이더를 커스텀하는 과정에서 발생하는 문제는 패키지 내부와 외부에서 쉐이더를 수정할 때 랜더링 결과의 차이로 인해 발생하는 것으로 보입니다. 이는 Unity의 URP(Universal Render Pipeline)와 Spine 쉐이더의 특정 설정이나 경로 참조 방식에 의해 발생할 수 있습니다. URP 쉐이더를 커스텀할 때는, 쉐이더 파일 내에서 참조하는 경로나 설정이 프로젝트의 구조와 정확히 일치하는지 확인해야 합니다. 또한, URP 쉐이더의 경우 Unity의 렌더링 파이프라인과 밀접하게 연동되어 있기 때문에, URP 버전 업데이트에 따라 호환성 문제가 발생할 수 있습니다.

문제의 해결을 위해서는, 커스텀 쉐이더의 코드와 프로젝트 설정을 정확히 검토하고, 필요한 경우 Unity와 Spine의 공식 문서를 참조하여 최신 정보를 확인하는 것이 중요합니다. UMP를 통한 관리를 선호한다면, UMP 패키지의 업데이트가 프로젝트에 영향을 주지 않도록 쉐이더 커스텀 작업을 별도의 스크립트나 모듈로 분리하여 관리하는 방법도 고려할 수 있습니다.

@eunjoo In case you only copied shaders and not all files like the include/ files: any relative #include "Include/path/to/file.hlsl" statements of the shaders fail if the relative directory Include/ no longer points to the right path. If you replace Include/ with the respective path (it should be com.esotericsoftware.spine.urp-shaders/Shaders/Include when installed normally via UPM), things should compile again.

In general, please always share any compile error messages you see when selecting the problematic shader files in the project.