[Shader] Step, Mix, SmoothStep
기본 void main() { vec3 colour = vec3(0.0); colour = vec3(vUvs.x); gl_FragColor = vec4(colour, 1.0); } Step step(edge,x): x를 edge로 비교를 해서 step 함수를 생성 if(x 0.0 //step(0.5,0.51) => 1.0 colour = vec3(step(0.5,vUvs.x)); Mix mix(a,b,t): a와 b 사이를 t를 퍼센트로 사용하여 선형으로 보간. Unreal, Unity에서 사용하는 lerp와 같음. return a+t(b-a); //mix(10.0,20.0,0.25) => 12.5 //mix(10.0,20.0,1) => 20.0 vec3 red = vec3(1.0, 0.0, 0.0); ..
2024. 4. 3.
[Material property drawer(3)] Enum 사용하기
Enum KeywordEnum가 비슷하지만 인자로 value/id로 구성되어있다. 이 프로퍼티는 인스펙터 상에서 동적으로 기능을 변경할 수있도록 셰이더 내부의 명령어로 전달한다. Properties { //Enum(Value0,Id0,Value1,Id1,etc...) [Enum(Off,0,Front,1,Back,2)] _Face("Culling",Float) = 0 } SubShader { Tags { "RenderType"="Opaque" } LOD 100 Cull [_Face] Pass { ... } ENDCG } } 주로 Cull명령어에서 찾아볼 수 있다. “_Face” Enum타입 프로퍼티를 선언하여 사용한다. Inspector창에서 수정이 가능한 Enum타입의 프로퍼티
2022. 3. 27.