유니티 3은 많은 그래픽 관련 변화를 가져왔는데 기존 유니티 2.x 프로젝트에서 업그레이드할 때 어떤 것들은 변화가 필요할 것입니다. 쉐이더에 관련된 변화는 Shader Upgrade Guide 를 보세요.
유니티 2.x은 유니티 3에서 Forward라고 불리는 하나의 레더링 경로를 가지고 있었습니다. 유니티 2와 비교한 주요한 변화로는 다음이 있습니다:
더 자세한 사항은 Shader Upgrade Guide을 참조하세요. 사용자가 빛과 상호작용하는 쉐이더를 구현하기 원한다면 Surface Shaders를 사용해야 합니다.
OnPreCullObject
와 RenderBeforeQueues
속성.texture.GetNativeTextureID()
를 사용하세요._ObjectSpaceCameraPos
와 _ObjectSpaceLightPos0
의 제거 (_WorldSpaceCameraPos
와 _WorldSpaceLightPos0
가 추가됨).LightmapMode
태그는 아무것도 하지 않습니다.GrabPass
(즉 굴절되는 유리 쉐이더)는 항상 화면 크기의 텍스쳐를 잡습니다.#pragma multi_compile_vertex
와 #pragma multi_compile_fragment
는 사라졌습니다 .Offset [_Var1], [_Var2]
).TRANSFER_EYEDEPTH/OUTPUT_EYEDEPTH
를 to UNITY_TRANSFER_DEPTH/UNITY_OUTPUT_DEPTH
로 개명. 이것은 유니티3에서 float2로도 작동._Light2World0
, _World2Light0
쉐이더 메트릭스 삭제._FirstPass
삭제.Fog { Mode [_MyFogMode] }
). 글로벌 안개 모드사용을 위해서는 Fog { Mode Global }
와 같이 사용하세요.BlendColor
색 삭제.RenderTexture.SetBorderColor
).ColorMaterial Ambient, Diffuse, Specular
지원 삭제(ColorMaterial AmbientAndDiffuse 와 Emission 는 남아있음). 플랫폼에 따른 사라진 것에 대한 지원은 혼란의 야기하고 별로 유용하지도 않습니다._CameraToWorld
와 _WorldToCamera
메트릭스가 이제 사용자가 기대했던 것을합니다. 이전에는 회전만 포함하며 Y축에서 카메라와 세계가 뒤집혔었습니다. 저희도 왜 그러는지 알지 못합니다:)Shader.ClearAll()
의 삭제. 2007년부터 사용되지 않았습니다. 이제 보내야할 때입니다.