일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 노트북 그래픽 카드
- legacy lightmap
- 요가북
- 노트북 아답터
- Unreal5
- 언리얼5 화면 움직임
- 언리얼 한글
- 언리얼 메뉴 한글
- mx150
- 애프터이펙트 aftereffect ram preview no sound 소리 안날때
- 내장 그래픽
- gitea
- Unity2018
- 랜더러
- unity4
- msi gf63
- 와콤 feel 드라이버
- 로스트 아크
- 언리얼 팁
- unity5
- legacy lightmapped
- shader
- gtx1050
- 언리얼 뷰포트 움직임
- 언리얼5
- 3dsmax
- 유니티
- 3ds max #spring #스프링
- 언리얼 pan
- wacom feel
- Today
- Total
애니메이터
Unity5.x 에서 Unity4.x 라이트맵 쓰기 2탄 본문
회사 프로젝트의 요구 사항으로
Unity 엔진의 버전업이 필요한 상황으로
Unity 4.x의 라이트맵을 Unity5.x로 적용, Vertex Color, Cutout 적용이 필요하였습니다.
셰이더를 보면 아시겠지만 Shader Forge 와 Unity의 빌트인 셰이더를 짬뽕 하여 만들었습니다. (아직 스스로 셰이더를 만들 역량은 안됩니다 ㅠㅠ)
Unity5.x 에서 Built in 된 Legacy shader중에 Unity 4.x의 Lightmap을 사용 가능하게 만들어준 Shader가 이미 있지만
(http://xysterxx.tistory.com/169?category=435193)
Unity4.x 에서 Rendering된 화면과 비슷하게 만들려면 Lightmap를 포토샵에서 Editting을 해줄 필요가 있어 바로 사용 가능할 수 있을 정도로 만들어 봤습니다.
// Shader created with Shader Forge v1.38
// Shader Forge (c) Freya Holmer - http://www.acegikmo.com/shaderforge/
// Note: Manually altering this data may prevent you from opening it in Shader Forge
/*SF_DATA;ver:1.38;sub:START;pass:START;ps:flbk:,iptp:0,cusa:False,bamd:0,cgin:,lico:1,lgpr:1,limd:0,spmd:1,trmd:0,grmd:0,uamb:True,mssp:True,bkdf:False,hqlp:False,rprd:False,enco:False,rmgx:True,imps:True,rpth:0,vtps:0,hqsc:True,nrmq:1,nrsp:0,vomd:0,spxs:False,tesm:0,olmd:1,culm:0,bsrc:3,bdst:7,dpts:2,wrdp:False,dith:0,atcv:False,rfrpo:True,rfrpn:Refraction,coma:15,ufog:False,aust:True,igpj:True,qofs:0,qpre:3,rntp:2,fgom:False,fgoc:False,fgod:False,fgor:False,fgmd:0,fgcr:0.5,fgcg:0.5,fgcb:0.5,fgca:1,fgde:0.01,fgrn:0,fgrf:300,stcl:True,atwp:False,stva:128,stmr:255,stmw:255,stcp:6,stps:0,stfa:0,stfz:0,ofsf:0,ofsu:0,f2p0:False,fnsp:False,fnfb:False,fsmp:False;n:type:ShaderForge.SFN_Final,id:3138,x:32360,y:32577,varname:node_3138,prsc:2|emission-1564-OUT,alpha-1723-A;n:type:ShaderForge.SFN_Tex2d,id:1723,x:31757,y:32654,ptovrint:False,ptlb:Main,ptin:_Main,varname:node_1723,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,ntxv:0,isnm:False|UVIN-8223-UVOUT;n:type:ShaderForge.SFN_TexCoord,id:8223,x:31561,y:32642,varname:node_8223,prsc:2,uv:0,uaff:False;n:type:ShaderForge.SFN_Multiply,id:6410,x:32005,y:32735,varname:node_6410,prsc:2|A-1723-RGB,B-7826-OUT;n:type:ShaderForge.SFN_Tex2d,id:6668,x:31746,y:32997,ptovrint:False,ptlb:Lightmap,ptin:_Lightmap,varname:node_6668,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,ntxv:0,isnm:False|UVIN-6441-UVOUT;n:type:ShaderForge.SFN_TexCoord,id:6441,x:31565,y:32983,varname:node_6441,prsc:2,uv:1,uaff:False;n:type:ShaderForge.SFN_Multiply,id:7826,x:31855,y:32833,varname:node_7826,prsc:2|A-6668-RGB,B-6668-RGB;n:type:ShaderForge.SFN_Color,id:9218,x:32005,y:32575,ptovrint:False,ptlb:Tint,ptin:_Tint,varname:node_9218,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,c1:0.5,c2:0.5,c3:0.5,c4:1;n:type:ShaderForge.SFN_Multiply,id:1564,x:32167,y:32655,varname:node_1564,prsc:2|A-9218-RGB,B-6410-OUT;proporder:9218-1723-6668;pass:END;sub:END;*/
Shader "Shader Forge/Unlit_Lightmapped4_vertexColor_Cutout" {
Properties {
_Tint ("Tint", Color) = (0.5,0.5,0.5,1)
_Main ("Main", 2D) = "white" {}
_Lightmap ("Lightmap", 2D) = "white" {}
_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
}
SubShader {
Tags {"IgnoreProjector"="True" "Queue"="AlphaTest" "RenderType"="TransparentCutout"}
LOD 100
Lighting off
Pass {
//Name "FORWARD"
//Tags {"LightMode"="ForwardBase"}
//Blend SrcAlpha OneMinusSrcAlpha
//ZWrite Off
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
#pragma multi_compile_fwdbase
#pragma only_renderers d3d9 d3d11 glcore gles metal
#pragma target 3.0
struct VertexInput {
float4 vertex : POSITION;
float2 texcoord0 : TEXCOORD0;
float2 texcoord1 : TEXCOORD1;
float4 color : COLOR;
};
struct VertexOutput {
float4 pos : SV_POSITION;
float2 uv0 : TEXCOORD0;
float2 uv1 : TEXCOORD1;
float4 vertexColor : COLOR;
};
uniform sampler2D _Main; uniform float4 _Main_ST;
uniform sampler2D _Lightmap; uniform float4 _Lightmap_ST;
uniform float4 _Tint;
fixed _Cutoff;
VertexOutput vert (VertexInput v) {
VertexOutput o = (VertexOutput)0;
o.uv0 = v.texcoord0;
o.uv1 = v.texcoord1;
o.pos = UnityObjectToClipPos( v.vertex );
o.vertexColor = v.color;
return o;
}
float4 frag(VertexOutput i) : COLOR {
float4 _Main_var = tex2D(_Main,TRANSFORM_TEX(i.uv0, _Main));
float4 _Lightmap_var = tex2D(_Lightmap,TRANSFORM_TEX(i.uv1, _Lightmap));
float3 emissive = (_Tint.rgb*(_Main_var.rgb*(_Lightmap_var.rgb*_Lightmap_var.rgb)));
float3 finalColor = emissive * i.vertexColor;
clip (_Main_var.a - _Cutoff);
return float4(finalColor, _Main_var.a);
}
ENDCG
}
}
FallBack "Diffuse"
//CustomEditor "ShaderForgeMaterialInspector"
}