목록Unity (205)
스토리지

Member 특성 float4 vertex : POSITION Vertex 위치 float4 tangent : TANGENT Normal Map에서 사용 float3 normal : NORMAL Vertex의 Normal 값 float4 texcoord : TEXCOORD0 첫번째 UV좌표 float4 texcoord1 : TEXCOORD1 두번째 UV좌표 float4 texcoord2 : TEXCOORD2 세번째 UV좌표 float4 texcoord3 : TEXCOORD3 네번째 UV좌표 fixed4 color : COLOR Vertex Color Cull Back / Front / Off Cull : 특정한 부분을 렌더링하지 않는 기능 Back : 시선 뒷부분을 렌더링하지 않음 Front : 시점 방..

Shader "Custom/Test" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _BumpTex ("Albedo (RGB)", 2D) = "bump" {} _SpecCol ("Specular Color", Color) = (1,1,1,1) _SpecPower ("Specular Power", Float) = 1 } SubShader { Tags { "RenderType"="Opaque" } CGPROGRAM #pragma surface surf Test noambient sampler2D _MainTex; sampler2D _BumpTex; float _SpecPower; float4 _SpecCol; struct Input { float2 u..

Shader "Custom/Test" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} _Cycle ("Cycle", Float) = 10 _Speed ("Power", Float) = 1 _FracPower ("Frac Power", Float) = 3 } SubShader { Tags { "RenderType"="Transparent" "Queue"="Transparent" } CGPROGRAM #pragma surface surf Lambert alpha:fade sampler2D _MainTex; float4 _Color; float _Speed; float _FracPower; ..

반사벡터 공식 : r = 2N * ( L * N ) - L BlinnPhong 공식 : H Vector = Vector v ( 시선벡터 ) + Vector L ( 조명벡터 ) float spec = saturate(dot(H,n(지면벡터)) => H 벡터와 지면 벡터의 내적의 값 BlinnPhong 공식을 적용한 Shader Shader "Custom/Test" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _BumpTex ("Albedo (RGB)", 2D) = "bump" {} } SubShader { Tags { "RenderType"="Opaque" } CGPROGRAM #pragma surface surf _MyLambert sampler..

Shader "Custom/Test" { Properties { _Color ("Color", Color) = (1,1,1,1) _Power ("Power", Float) = 3.0 _MainTex ("Albedo (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque"} CGPROGRAM #pragma surface surf Lambert sampler2D _MainTex; float _Power; struct Input { float2 uv_MainTex; float3 viewDir; float3 worldPos; }; fixed4 _Color; void surf (Input IN, inout SurfaceOutput o) { fixed..

Shader "Custom/Test" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _Color ("Color", Color) = (1,1,1,1) _Power ("Power", Float) = 3.0 } SubShader { Tags { "RenderType"="Transparent" "Queue"="Transparent" } CGPROGRAM #pragma surface surf Lambert alpha:fade sampler2D _MainTex; float4 _Color; float _Power; struct Input { float2 uv_MainTex; float3 viewDir; }; void surf (Input IN, inout Su..

Unity의 역광은 프레넬 방정식을 이용하였다. ko.wikipedia.org/wiki/%ED%94%84%EB%A0%88%EB%84%AC_%EB%B0%A9%EC%A0%95%EC%8B%9D 프레넬 방정식 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 프레넬 방정식(Fresnel equations) 또는 프레넬 공식(Fresnel's formulas)은 반사계수와 투과계수에 관한것으로 한 매질과 광학적 특성 즉, 굴절률이 다른 매질의 계면에 ko.wikipedia.org 프레넬 방정식(Fresnel equations) 또는 프레넬 공식(Fresnel's formulas)은 반사계수와 투과계수에 관한것으로 한 매질과 광학적 특성 즉, 굴절률이 다른 매질의 계면에서 반사 또는 투과 진폭을..

Shader "Custom/Test" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _BumpTex ("Albedo (RGB)", 2D) = "bump" {} } SubShader { Tags { "RenderType"="Opaque" } CGPROGRAM #pragma surface surf Test noambient sampler2D _MainTex; sampler2D _BumpTex; struct Input { float2 uv_MainTex; float2 uv_BumpTex; }; void surf (Input IN, inout SurfaceOutput o) { fixed4 c = tex2D (_MainTex, IN.uv_MainTex); ..
텍스쳐 한 장 받는 Shader 생성 라이트 이름 설정 : Test Lighting + Test 이름으로 함수 선언, 반환 타입은 float, 매개변수는 SurfaceOutput, float3 lightDir, float atten Lambert 공식 : 표면벡터와 조명벡터를 내적 => Option : 내적값에 saturate → 0~1까지 표현 그 값을 Return Half-Lambert 공식 : 4번의 것을 saturate하지 않고 내적의 값에 *0.5 +0.5한 값 Return Lighting 함수 안에서 SurfaceOutput값 사용가능. ex) s.Albedo, s.Alpha... _LightColor0 : 조명의 색상, 강도가 저장된 내장변수 감쇠의 Test는 Point Light로 테스트를..

* saturate(float a) : 값을 0과 1 사이의 값으로 잘라줌. 0보다 작으면 0, 1보다 크면 1과 같은 방식. float ndotl = saturate(dot(s.Normal, lightDir)); //normal벡터와 light벡터를 내적한 값. saturate: 0~1의 사이의 값으로 값을 잘라줌. developer.download.nvidia.com/cg/saturate.html saturate Name saturate - returns smallest integer not less than a scalar or each vector component. Synopsis float saturate(float x); float1 saturate(float1 x); float2 satur..