-
[TIL]RenderingPipeline, ShaderGraph 기초TIL 2024. 6. 18. 21:03
드로우콜이란
CPU가 Gpu에게 주는 업무 지시서
렌더링 파이프라인(RenderingPipeline)
3D장면을 2D이미지로 변환하는 일련의 단계 또는 절차를 말한다.
이 파이프라인은 그래픽스 하드웨어(GPU)와 소프트웨어가 협력하여 복잡한 3D 데이터를 효ㅠㄹ적으로 처리하고 최종적으로 화면에 표시되는 이미지를 생성하는 과정이다.
드로우콜
모델 만들기 <Vertex Shader> -> 위치 배치<M.V.P> -> 카메라로 찍기<레스터라이즈> -> 색 입히기<Fragment Shader>
유니티의 3가지 렌더링 방식
프로젝트를 생성할때 랜더링 방식을 고를 수 있다. Bult In
옛날에 자주 사용했다한다. 지금도 프로젝트를 생성하려하면 가장 위에 뜨는 방식
비교했을 때 빛에 대한 처리가 부족하게 보인다 퀄리티가 떨어진다.
PBR Rendering (Physically Based Rendering)
물리 기반 렌더링, 빛에 대한
URP
Bult In 보다는 좀더 퀄리티가 좋아보인다. 연습이 아닌 프로젝트를 만들 때에 URP를 사용하면 좋다고 한다.
HDRP
주로 하이글래픽 콘솔게임 같이 높은 퀄리티로 프로젝트를 만들어야 할 때 사용하면 좋다고 한다.
https://docs.unity3d.com/kr/2022.3/Manual/render-pipelines.html
렌더 파이프라인 - Unity 매뉴얼
렌더 파이프라인은 씬의 콘텐츠를 가져와서 화면에 표시하는 일련의 작업을 수행합니다.
docs.unity3d.com
Material
Roughness 무광처럼 된다.
Metalic 금속질처럼 반짝거린다.
이미지를 데이터로 이해하는법 RGBA
Red Green Blue Alpha
색을 표현할 때 만약 흰색을 표현한다고 가정하면
255, 255, 255, 255,
FFFFFF
1, 1, 1, 1
로 나타낼 수 있다.
컴퓨터가 그림을 이해하는 방법
//128*128 사이즈의 이미지를 생성할 때 Vector3[,] array = new Vector3[128,128]; for(int i=0;i<128;i++) { for(int j=0; j< 128; j++) { array[i,j] = new Vector3(1,1,1,1); } }
이미지를 압축할 때
Vector3 dotColor = Vector3(1,1,1); int xSize = 128; int ySize= 128;
솔직히 이거는 잘 이해를 못했다.
색상은 숫자라 한다.
ShaderGraph
ShaderGraph 원래 쉐이더는 어렵지만 URP에서 쉐이더 그래프가 나와서조금은 편해졋다
쉐이더를 받을수 있는 그릇은 Material이고
Material 쉐이더를 드래그하면 들어간다.
언리얼의 블루프린트와 유사하다
Shader는 GPU가 처리함
Shader 종류
- Lit Shader (빛을 받는 Shader)
- Unlit Shader(빛을 받지 않는 Shader)
Shader를 구성하는 기본 속성
- BaseColor
- Normal
- Metallic
- Smoothness
- Emission
- AmbientOcclusion
https://docs.unity3d.com/kr/Packages/com.unity.shadergraph@10.8/manual/First-Shader-Graph.html
첫 번째 셰이더 그래프 | Shader Graph | 10.8.0
첫 번째 셰이더 그래프 시작하기 전에 프로젝트가 올바르게 설정되고 그래프가 올바르게 로드되는지 확인해야 합니다. 자세한 내용은 셰이더 그래프 시작하기를 참조하십시오. 새 그래프 생성
docs.unity3d.com
NormalMap
맵을 울퉁불퉁하게 보이는 원리는 빛 때문이고
빛의 반사 정도를 저장한 것이 노말맵이다.
노말맵들을 미리 볼때 파랗게 생긴 이유는
RGB
XYZ 둘다 vector3
로 볼때 B가 Z 라서 이다 (이것도 정확하게는 잘 모르겠다.)
https://docs.unity3d.com/kr/2020.3/Manual/StandardShaderMaterialParameterNormalMap.html
노멀 맵(범프 매핑) - Unity 매뉴얼
노멀 맵은 Bump Map 타입이며, 실제 지오메트리로 표현되는 것처럼 광원을 받는 범프, 홈 및 스크래치 등의 표면 디테일을 모델에 추가하는 데 사용할 수 있는 특별한 텍스처 종류입니다.
docs.unity3d.com
'TIL' 카테고리의 다른 글
[TIL] Unity 최적화 (0) 2024.07.04 [TIL] 관찰자 패턴, 전략 패턴 (3) 2024.06.20 [TIL] 멀티 시스템 기초 지식 (0) 2024.06.17 [TIL] 파티클시스템, 애니메이션 이벤트 (0) 2024.06.12 [TIL] 자료구조 (1) 2024.06.08