본문 바로가기
728x90

Unity/Shader4

[Unity Shader/테크니컬 아티스트를 위한 유니티 쉐이더 스타트업] 1일차 : 프로퍼티(Properties) _Name : 기능의 변수명. _를 붙이는 것이 필수는 아니지만, 외부에서 입력받았다는 것을 표시하기 위해 자주 쓰인다고 한다. "display name" : 화면에 나타나는 글자 number : 초기값 ● Range _Name ("display name", Range (min, max)) = number Range : 슬라이더바 입력 형식. 최솟값과 최댓값 입력 ● Float _Name ("display name", Float) = number ● Int _Name ("display name", Int) = number ● Color _Name ("display name", Color) = (number, number, number, number) ● Vector _Name ("display name".. 2023. 3. 15.
[Unity Shader/테크니컬 아티스트를 위한 유니티 쉐이더 스타트업] 1일차 : Shader 영역 유니티에서 기본적인 쉐이더를 만들어 열어보면 다음과 같은 화면을 볼 수 있다. Shader "Custom/NewSurfaceShader 1" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} _Glossiness ("Smoothness", Range(0,1)) = 0.5 _Metallic ("Metallic", Range(0,1)) = 0.0 } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM // Physically based Standard lighting model, and enable shadows on all light.. 2023. 3. 15.
[Unity Shader/테크니컬 아티스트를 위한 유니티 쉐이더 스타트업] 1일차 : RGB, ShaderLab을 이용한 제작방식 프로그래밍에서의 RGB 빛의 삼원색 RGB는 모두 합쳐졌을 경우 흰색, 모두 없을 경우 검은색이다. 이를 프로그래밍에서의 표현으로 흰색을 1, 검은색을 0으로 바꿔보면 White = (1.0, 1.0, 1.0) Black = (0, 0, 0) Red = (1.0, 0, 0) Green = (0, 1.0, 0) Blue = (0, 0, 1.0) 이처럼 float3 단위로 표현이 가능하다. 이를 활용하면 Gray = (0.5, 0.5, 0.5) Yellow = Red+Green = (1.0, 1.0, 0) 1 - Yellow = (0, 0, 1.0) = Blue 와 같은 계산이 가능하다. ShaderLab을 이용한 제작방식 1) ShaderLab으로만 작성하기 2) Surface Shader로 작성하기 3).. 2023. 3. 15.
[Unity Shader/테크니컬 아티스트를 위한 유니티 쉐이더 스타트업] 1일차 : 렌더링 파이프라인 쉐이더: 그래픽 데이터의 음영과 색상을 계산하여 다양한 재질을 표현하는 방법 렌더링 파이프라인 1) 오브젝트 데이터 받아오기 2) 정점(Vertex) Shader 3) Rasterizer 4) Pixel Shader / Fragment Shader 책보다 자세히 렌더링 파이프라인을 추가로 더 살펴보면, 3D 오브젝트를 배치하면 각 정점(vertex)을 계산해 CPU에서 정점 데이터를 GPU로 넘겨줌 -GPU- 1) local space 로컬 좌표계(오브젝트 좌표계)에 2) world space 월드 변환 행렬을 곱해주고 3) view space (카메라 공간) 카메라 행렬을 곱해준다. ↓ 4) backface culling 5) 조명(lighting) 6) 클리핑(clipping) 7) 투영(projec.. 2023. 3. 15.
728x90