일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 가상 바이트
- 작업 집합
- Windows Build
- Cartoon Rendering
- 개인 바이트
- OculusMotionVectorPass
- AppSW
- ASW(Application SpaceWarp)
- URP
- Cell Look
- ColorGradingLutPass
- VR
- 3d
- Private Bytes
- 벡터
- working set
- 게임 수학
- Specular
- Toon Shader
- 메모리 누수
- Virtual Byte
- Cell Shader
- 프로그래밍 기초
- URP로 변경
- C언어
- Rim Light
- Three(Two) Tone Shading
- Today
- Total
WinCNT
유니티의 Built-in Shader의 소스 코드를 다운로드 하기 본문
서론
유니티에서 UI나 Sprite Renderer 등을 새로 만들면 디폴트의 머티리얼(셰이더)가 설정된다
그건 매우 고마운데 아쉽게도 그 소스 코드는 바로 볼 수 없게 되어 있었다
그래서 방법이 없나 찾다가 알게 된 내용을 정리하고자 한다
디폴트 셰이더의 코드는 바로 볼 수 없다
애초에 필자가 왜 디폴트 셰이더의 코드가 궁금했냐고 하면 어김 없이 SRP Batcher 때문이었다
SpriteRenderer를 추가했는데 SRP Batcher가 작동하지 않는다는 걸 알게 되었다
그래서 설정된 머티리얼과 셰이더를 확인해보니 다음과 같았다
아니나 다를까 SRP Batcher가 not compatible이었다
그래서 평소처럼 원인을 찾기 위해 마우스 우클릭 → edit shader를 눌렀으나…
평소랑 다르게 소스 코드가 안 열리는 거 아닌가?!
소스 코드를 다운로드 받자
다행히도 디폴트의 셰이더들은 다운로드 받을 수 있다는 글을 발견했다
디폴트의 셰이더를 수정하고 싶으면 다른 문제지만, 이번에는 딱히 셰이더를 수정하고 싶은 건 아니었기에 바로 다운로드를 해봤다
다운로드를 하는 방법은 매우 간단했다
아래의 유니티의 다운로드 아카이브에 가서 원하는 버전을 찾고, Built in shaders를 선택해서 다운로드를 받으면 된다
결과
다운로드 받은 파일의 압축을 풀면 소스 코드를 볼 수 있다
주의할 점은 shader의 이름하고 shader 파일명이 완전히 일치하지 않는다는 것이다
예를 들어 Sprites/Default 셰이더는 DefaultResourcesExtra/Sprites-Default.shader이란 셰이더 파일에서 확인할 수 있다
그래서 SRP Batcher는 compatible해졌나요?
당초의 목적은 Sprites/Default와 똑같이 동작하면서 SRP Batcher도 동작하는 새로운 셰이더를 만드는 것이었는데, 결론을 말하자면 반만 성공했다
Sprites/Default를 바탕으로 SRP Batcher가 compatible한 셰이더는 만들긴 했는데, SpritesRenderer에 새로 만든 머티리얼을 적용해도 SRP Batcher는 동작하지 않았다
원인은 셰이더가 아니라 SpritesRenderer 컴포넌트 자체에 있었다
이에 대해서는 따로 정리하고자 한다
마무리
원래의 목표는 달성하지 못했지만 그래도 유용한 정보를 알게 되어서 다행이었다
어딘가에서 다시 써먹을 수 있을 것 같다
참고 사이트
[Unity]Spriteの明度を真っ白まで上げられるシェーダーを用意する - Qiita
'Unity > URP or Shader 관련' 카테고리의 다른 글
커스텀 셰이더의 머티리얼을 Bakery(라이트 맵 생성 에섯)으로 Bake하기(feat. Meta Pass) (0) | 2023.10.12 |
---|---|
URP에서 SpriteRenderer는 SRP Batcher가 작동하지 않았던 이유 조사 (0) | 2023.09.28 |
URP에서 Overdraw 확인하기 (0) | 2023.07.10 |
URP에서 HDR 텍스처 사용해보기 (0) | 2023.07.03 |
유니티에서 커스텀 셰이더의 머티리얼에 라이트 맵을 적용해보기 (0) | 2023.06.30 |