최근 포스팅글입니다
- 쉐이더 FallBack과 시맨틱 안녕하세요. TA 새벽언덕입니다. 쉐이더의 FallBack과 시맨틱에 관해서 말씀드리고자합니다. FallBack FallBack "Diffuse" 쉐이더의 마지막 줄끝에 FallBack "Diffuse"라고 보통 적혀있는것을 보실 수있습니다. 저는 이것이 무엇을 의미하는지 많이 궁금했었는데요. 이것의 의미는 이 하드웨어에서 실행할 수 있는 하위 쉐이더가 없는 경우, 다른쉐이더(Diffuse)에서 시도 하라는 내용입니다. 즉 원래 셰이더가 맞지 않을때를 대비해서 다른 대안 셰이더를 지정한것입니다. FallBack으로 지정해주면 렌더링이 되지않는경우를 막고 최소한 낮은 품질으로라도 렌더링을 할 수있게 됩니다. FallBack에는 만일의 경우 여러 플랫폼에서 대응할수있는 쉐이더를 적어주는것이 일반적입니다. F.. 더보기
- Shader의 Struct, SubShader, Pragma 안녕하세요~ TA 새벽언덕입니다. 오늘은 유니티 쉐이더에서 Struct, SubShader, Pragma 부분에대해서 말씀드리고자합니다. 먼저 구조체(Struct)입니다. 구조체 : Struct vert & frag struct appdata부분과 struct v2f부분으로 보통 사용합니다. 예를들면 struct appdata { float4 positionOS : POSITION; float4 color : COLOR; } struct v2f { float4 positionCS : SV_POSITION; float4 color : TEXCOORD1; } 위와같이 코드를 작성해 줄 수 있습니다. 여기서 appdata부분은 Shader에서 vertex의 정보를 가져오는 구조체부분이고, v2f는 vertex.. 더보기
- Properties & Shader 경로지정 안녕하세요. TA 새벽언덕입니다. 오늘은 Shader의 Properties와 Shader의 경로지정, CG, HLSL구문이 어디서 시작하고 끝나는지 안내드리고자합니다. Properties Property _Color ("Color", Color) = (1,1,1,1) _변수명(프로퍼티명,프로퍼티) = (초기값) 아래는 여러가지의 예시입니다. Range, float, int, color, vector이 있는데 직접 사용해 보시는것이 가장 좋습니다. _Name("display name", Range(min,max)) = number _Name("display name", Float) = number _Name("display name", Int) = number _Name("display name", Col.. 더보기
- UV와 Sampler2D 안녕하세요. TA새벽언덕입니다. Shader에서 사용하는 uv와 sample2D개념에대해서 말씀드리고자합니다. UV란? UV좌표는 UVW(== RGB, XYZ와 같음)란 세개의 채널이있지만, 2차원 좌표만을 사용하기 때문에 마지막 W를 제외한 UV 두개의 채널을 이용합니다. Sampler 2D 텍스쳐는 float가 아닌 'sampler2D'라는 자료형을 사용합니다. 텍스쳐를 오브젝트에 매핑하기 위해서는 1)입력할 텍스쳐 2)UV좌표 위 2가지 정보가 하며, 따라서 자료형 float로는 텍스쳐를 매핑할 수 없습니다. UV와 XYZW UV는 4개까지 채널을 쓸수있습니다. UV에서 주로 float2를쓰지만, 최대 float4까지 사용할 수있습니다. 초기값으로 x,y,z,w중에 z에는 0을 w에는 1을 넣어서 .. 더보기