├── .gitignore ├── Assets ├── Materials.meta ├── Materials │ ├── Default (Unlit).mat │ ├── Default (Unlit).mat.meta │ ├── Default.mat │ ├── Default.mat.meta │ ├── HlslFog.mat │ ├── HlslFog.mat.meta │ ├── ShaderFog.mat │ └── ShaderFog.mat.meta ├── Scenes.meta ├── Scenes │ ├── HlslFog.unity │ ├── HlslFog.unity.meta │ ├── ShaderFog.unity │ └── ShaderFog.unity.meta ├── Shaders.meta ├── Shaders │ ├── HlslFog.shader │ ├── HlslFog.shader.meta │ ├── ShaderFog.shader │ └── ShaderFog.shader.meta ├── Textures.meta └── Textures │ ├── Checker.png │ └── Checker.png.meta ├── ProjectSettings ├── AudioManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── InputManager.asset ├── NavMeshLayers.asset ├── NetworkManager.asset ├── ProjectSettings.asset ├── QualitySettings.asset ├── TagManager.asset └── TimeManager.asset └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | Library 2 | Temp 3 | *.apk 4 | *.csproj 5 | *.pidb 6 | *.sln 7 | *.suo 8 | *.unityproj 9 | *.userprefs 10 | -------------------------------------------------------------------------------- /Assets/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 16418651b521d42d180f3ccfaadad49a 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/Materials/Default (Unlit).mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 3 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Default (Unlit) 10 | m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0} 11 | m_SavedProperties: 12 | serializedVersion: 2 13 | m_TexEnvs: 14 | data: 15 | first: 16 | name: _MainTex 17 | second: 18 | m_Texture: {fileID: 2800000, guid: 87eb876fa7048403987d1a62d8c020da, type: 1} 19 | m_Scale: {x: 1, y: 1} 20 | m_Offset: {x: 0, y: 0} 21 | m_Floats: {} 22 | m_Colors: 23 | data: 24 | first: 25 | name: _Color 26 | second: {r: 1, g: 1, b: 1, a: 1} 27 | -------------------------------------------------------------------------------- /Assets/Materials/Default (Unlit).mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0d6a74aa5c9334cd5bd71113e4ff28e8 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/Materials/Default.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 3 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Default 10 | m_Shader: {fileID: 7, guid: 0000000000000000e000000000000000, type: 0} 11 | m_SavedProperties: 12 | serializedVersion: 2 13 | m_TexEnvs: 14 | data: 15 | first: 16 | name: _MainTex 17 | second: 18 | m_Texture: {fileID: 2800000, guid: 87eb876fa7048403987d1a62d8c020da, type: 1} 19 | m_Scale: {x: 1, y: 1} 20 | m_Offset: {x: 0, y: 0} 21 | m_Floats: {} 22 | m_Colors: 23 | data: 24 | first: 25 | name: _Color 26 | second: {r: 1, g: 1, b: 1, a: 1} 27 | -------------------------------------------------------------------------------- /Assets/Materials/Default.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 739f615e65b7a44abb267bdc51ca9376 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/Materials/HlslFog.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 3 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: HlslFog 10 | m_Shader: {fileID: 4800000, guid: c628c3e4d5dc64e6cbffa81092f69971, type: 1} 11 | m_SavedProperties: 12 | serializedVersion: 2 13 | m_TexEnvs: 14 | data: 15 | first: 16 | name: _MainTex 17 | second: 18 | m_Texture: {fileID: 2800000, guid: 87eb876fa7048403987d1a62d8c020da, type: 1} 19 | m_Scale: {x: 1, y: 1} 20 | m_Offset: {x: 0, y: 0} 21 | m_Floats: 22 | data: 23 | first: 24 | name: _FogStart 25 | second: 3 26 | data: 27 | first: 28 | name: _FogEnd 29 | second: 12 30 | m_Colors: 31 | data: 32 | first: 33 | name: _Color 34 | second: {r: 1, g: 1, b: 1, a: 1} 35 | data: 36 | first: 37 | name: _FogColor 38 | second: {r: .501960814, g: .752941191, b: .250980407, a: 1} 39 | -------------------------------------------------------------------------------- /Assets/Materials/HlslFog.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7a67a8a8656934392a8e15b28b973075 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/Materials/ShaderFog.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 3 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: ShaderFog 10 | m_Shader: {fileID: 4800000, guid: 57ae39dd985674df8898c1fb80b1d134, type: 1} 11 | m_SavedProperties: 12 | serializedVersion: 2 13 | m_TexEnvs: 14 | data: 15 | first: 16 | name: _MainTex 17 | second: 18 | m_Texture: {fileID: 2800000, guid: 87eb876fa7048403987d1a62d8c020da, type: 1} 19 | m_Scale: {x: 1, y: 1} 20 | m_Offset: {x: 0, y: 0} 21 | m_Floats: 22 | data: 23 | first: 24 | name: _FogStart 25 | second: 3 26 | data: 27 | first: 28 | name: _FogEnd 29 | second: 12 30 | m_Colors: 31 | data: 32 | first: 33 | name: _FogColor 34 | second: {r: .501960814, g: .752941191, b: .250980407, a: 1} 35 | -------------------------------------------------------------------------------- /Assets/Materials/ShaderFog.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 23fd1c23f943a4a3192758bdbd033a13 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b8d314e5e2a9d4567a83b64c7824d95e 3 | -------------------------------------------------------------------------------- /Assets/Scenes/HlslFog.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | Scene: 5 | m_ObjectHideFlags: 0 6 | m_PVSData: 7 | m_QueryMode: 1 8 | m_PVSObjectsArray: [] 9 | m_PVSPortalsArray: [] 10 | m_OcclusionBakeSettings: 11 | viewCellSize: 1 12 | bakeMode: 2 13 | memoryUsage: 10485760 14 | --- !u!104 &2 15 | RenderSettings: 16 | m_Fog: 1 17 | m_FogColor: {r: .501960814, g: .752941191, b: .250980407, a: 1} 18 | m_FogMode: 1 19 | m_FogDensity: 1 20 | m_LinearFogStart: 3 21 | m_LinearFogEnd: 12 22 | m_AmbientLight: {r: 0, g: 0, b: 0, a: 1} 23 | m_SkyboxMaterial: {fileID: 0} 24 | m_HaloStrength: .5 25 | m_FlareStrength: 1 26 | m_HaloTexture: {fileID: 0} 27 | m_SpotCookie: {fileID: 0} 28 | m_ObjectHideFlags: 0 29 | --- !u!127 &3 30 | GameManager: 31 | m_ObjectHideFlags: 0 32 | --- !u!157 &4 33 | LightmapSettings: 34 | m_ObjectHideFlags: 0 35 | m_LightProbes: {fileID: 0} 36 | m_Lightmaps: [] 37 | m_LightmapsMode: 1 38 | m_BakedColorSpace: 0 39 | m_UseDualLightmapsInForward: 0 40 | m_LightmapEditorSettings: 41 | m_Resolution: 50 42 | m_LastUsedResolution: 0 43 | m_TextureWidth: 1024 44 | m_TextureHeight: 1024 45 | m_BounceBoost: 1 46 | m_BounceIntensity: 1 47 | m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} 48 | m_SkyLightIntensity: 0 49 | m_Quality: 0 50 | m_Bounces: 1 51 | m_FinalGatherRays: 1000 52 | m_FinalGatherContrastThreshold: .0500000007 53 | m_FinalGatherGradientThreshold: 0 54 | m_FinalGatherInterpolationPoints: 15 55 | m_AOAmount: 0 56 | m_AOMaxDistance: .100000001 57 | m_AOContrast: 1 58 | m_LODSurfaceMappingDistance: 1 59 | m_Padding: 0 60 | m_TextureCompression: 0 61 | m_LockAtlas: 0 62 | --- !u!196 &5 63 | NavMeshSettings: 64 | m_ObjectHideFlags: 0 65 | m_BuildSettings: 66 | agentRadius: .5 67 | agentHeight: 2 68 | agentSlope: 45 69 | agentClimb: .400000006 70 | ledgeDropHeight: 0 71 | maxJumpAcrossDistance: 0 72 | accuratePlacement: 0 73 | minRegionArea: 2 74 | widthInaccuracy: 16.666666 75 | heightInaccuracy: 10 76 | m_NavMesh: {fileID: 0} 77 | --- !u!1 &459464731 78 | GameObject: 79 | m_ObjectHideFlags: 0 80 | m_PrefabParentObject: {fileID: 0} 81 | m_PrefabInternal: {fileID: 0} 82 | serializedVersion: 3 83 | m_Component: 84 | - 4: {fileID: 459464732} 85 | - 33: {fileID: 459464734} 86 | - 23: {fileID: 459464733} 87 | m_Layer: 0 88 | m_Name: Plane (Default) 89 | m_TagString: Untagged 90 | m_Icon: {fileID: 0} 91 | m_NavMeshLayer: 0 92 | m_StaticEditorFlags: 0 93 | m_IsActive: 1 94 | --- !u!4 &459464732 95 | Transform: 96 | m_ObjectHideFlags: 0 97 | m_PrefabParentObject: {fileID: 0} 98 | m_PrefabInternal: {fileID: 0} 99 | m_GameObject: {fileID: 459464731} 100 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 101 | m_LocalPosition: {x: -10, y: 0, z: 0} 102 | m_LocalScale: {x: 2, y: 2, z: 2} 103 | m_Children: [] 104 | m_Father: {fileID: 0} 105 | --- !u!23 &459464733 106 | Renderer: 107 | m_ObjectHideFlags: 0 108 | m_PrefabParentObject: {fileID: 0} 109 | m_PrefabInternal: {fileID: 0} 110 | m_GameObject: {fileID: 459464731} 111 | m_Enabled: 1 112 | m_CastShadows: 1 113 | m_ReceiveShadows: 1 114 | m_LightmapIndex: 255 115 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 116 | m_Materials: 117 | - {fileID: 2100000, guid: 0d6a74aa5c9334cd5bd71113e4ff28e8, type: 2} 118 | m_SubsetIndices: 119 | m_StaticBatchRoot: {fileID: 0} 120 | m_UseLightProbes: 0 121 | m_LightProbeAnchor: {fileID: 0} 122 | m_ScaleInLightmap: 1 123 | --- !u!33 &459464734 124 | MeshFilter: 125 | m_ObjectHideFlags: 0 126 | m_PrefabParentObject: {fileID: 0} 127 | m_PrefabInternal: {fileID: 0} 128 | m_GameObject: {fileID: 459464731} 129 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 130 | --- !u!1 &594336242 131 | GameObject: 132 | m_ObjectHideFlags: 0 133 | m_PrefabParentObject: {fileID: 0} 134 | m_PrefabInternal: {fileID: 0} 135 | serializedVersion: 3 136 | m_Component: 137 | - 4: {fileID: 594336243} 138 | - 20: {fileID: 594336244} 139 | - 124: {fileID: 594336247} 140 | - 92: {fileID: 594336246} 141 | - 81: {fileID: 594336245} 142 | m_Layer: 0 143 | m_Name: Camera 144 | m_TagString: Untagged 145 | m_Icon: {fileID: 0} 146 | m_NavMeshLayer: 0 147 | m_StaticEditorFlags: 0 148 | m_IsActive: 1 149 | --- !u!4 &594336243 150 | Transform: 151 | m_ObjectHideFlags: 0 152 | m_PrefabParentObject: {fileID: 0} 153 | m_PrefabInternal: {fileID: 0} 154 | m_GameObject: {fileID: 594336242} 155 | m_LocalRotation: {x: .258819073, y: 0, z: 0, w: .965925813} 156 | m_LocalPosition: {x: 0, y: 2.5, z: -11} 157 | m_LocalScale: {x: 1, y: 1, z: 1} 158 | m_Children: [] 159 | m_Father: {fileID: 0} 160 | --- !u!20 &594336244 161 | Camera: 162 | m_ObjectHideFlags: 0 163 | m_PrefabParentObject: {fileID: 0} 164 | m_PrefabInternal: {fileID: 0} 165 | m_GameObject: {fileID: 594336242} 166 | m_Enabled: 1 167 | serializedVersion: 2 168 | m_ClearFlags: 1 169 | m_BackGroundColor: {r: .192156866, g: .301960796, b: .474509805, a: .0196078438} 170 | m_NormalizedViewPortRect: 171 | serializedVersion: 2 172 | x: 0 173 | y: 0 174 | width: 1 175 | height: 1 176 | near clip plane: .300000012 177 | far clip plane: 50 178 | field of view: 40 179 | orthographic: 0 180 | orthographic size: 100 181 | m_Depth: 0 182 | m_CullingMask: 183 | serializedVersion: 2 184 | m_Bits: 4294967295 185 | m_RenderingPath: -1 186 | m_TargetTexture: {fileID: 0} 187 | m_HDR: 0 188 | --- !u!81 &594336245 189 | AudioListener: 190 | m_ObjectHideFlags: 0 191 | m_PrefabParentObject: {fileID: 0} 192 | m_PrefabInternal: {fileID: 0} 193 | m_GameObject: {fileID: 594336242} 194 | m_Enabled: 1 195 | --- !u!92 &594336246 196 | Behaviour: 197 | m_ObjectHideFlags: 0 198 | m_PrefabParentObject: {fileID: 0} 199 | m_PrefabInternal: {fileID: 0} 200 | m_GameObject: {fileID: 594336242} 201 | m_Enabled: 1 202 | --- !u!124 &594336247 203 | Behaviour: 204 | m_ObjectHideFlags: 0 205 | m_PrefabParentObject: {fileID: 0} 206 | m_PrefabInternal: {fileID: 0} 207 | m_GameObject: {fileID: 594336242} 208 | m_Enabled: 1 209 | --- !u!1 &2052920560 210 | GameObject: 211 | m_ObjectHideFlags: 0 212 | m_PrefabParentObject: {fileID: 0} 213 | m_PrefabInternal: {fileID: 0} 214 | serializedVersion: 3 215 | m_Component: 216 | - 4: {fileID: 2052920561} 217 | - 33: {fileID: 2052920563} 218 | - 23: {fileID: 2052920562} 219 | m_Layer: 0 220 | m_Name: Plane (Hlsl Fog) 221 | m_TagString: Untagged 222 | m_Icon: {fileID: 0} 223 | m_NavMeshLayer: 0 224 | m_StaticEditorFlags: 0 225 | m_IsActive: 1 226 | --- !u!4 &2052920561 227 | Transform: 228 | m_ObjectHideFlags: 0 229 | m_PrefabParentObject: {fileID: 0} 230 | m_PrefabInternal: {fileID: 0} 231 | m_GameObject: {fileID: 2052920560} 232 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 233 | m_LocalPosition: {x: 10, y: 0, z: 0} 234 | m_LocalScale: {x: 2, y: 2, z: 2} 235 | m_Children: [] 236 | m_Father: {fileID: 0} 237 | --- !u!23 &2052920562 238 | Renderer: 239 | m_ObjectHideFlags: 0 240 | m_PrefabParentObject: {fileID: 0} 241 | m_PrefabInternal: {fileID: 0} 242 | m_GameObject: {fileID: 2052920560} 243 | m_Enabled: 1 244 | m_CastShadows: 1 245 | m_ReceiveShadows: 1 246 | m_LightmapIndex: 255 247 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 248 | m_Materials: 249 | - {fileID: 2100000, guid: 7a67a8a8656934392a8e15b28b973075, type: 2} 250 | m_SubsetIndices: 251 | m_StaticBatchRoot: {fileID: 0} 252 | m_UseLightProbes: 0 253 | m_LightProbeAnchor: {fileID: 0} 254 | m_ScaleInLightmap: 1 255 | --- !u!33 &2052920563 256 | MeshFilter: 257 | m_ObjectHideFlags: 0 258 | m_PrefabParentObject: {fileID: 0} 259 | m_PrefabInternal: {fileID: 0} 260 | m_GameObject: {fileID: 2052920560} 261 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 262 | -------------------------------------------------------------------------------- /Assets/Scenes/HlslFog.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a1e667a8e6bd54bf5ade20d247ea6d6e 3 | -------------------------------------------------------------------------------- /Assets/Scenes/ShaderFog.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | Scene: 5 | m_ObjectHideFlags: 0 6 | m_PVSData: 7 | m_QueryMode: 1 8 | m_PVSObjectsArray: [] 9 | m_PVSPortalsArray: [] 10 | m_OcclusionBakeSettings: 11 | viewCellSize: 1 12 | bakeMode: 2 13 | memoryUsage: 10485760 14 | --- !u!104 &2 15 | RenderSettings: 16 | m_Fog: 1 17 | m_FogColor: {r: .501960814, g: .752941191, b: .250980407, a: 1} 18 | m_FogMode: 1 19 | m_FogDensity: 1 20 | m_LinearFogStart: 3 21 | m_LinearFogEnd: 12 22 | m_AmbientLight: {r: 0, g: 0, b: 0, a: 1} 23 | m_SkyboxMaterial: {fileID: 0} 24 | m_HaloStrength: .5 25 | m_FlareStrength: 1 26 | m_HaloTexture: {fileID: 0} 27 | m_SpotCookie: {fileID: 0} 28 | m_ObjectHideFlags: 0 29 | --- !u!127 &3 30 | GameManager: 31 | m_ObjectHideFlags: 0 32 | --- !u!157 &4 33 | LightmapSettings: 34 | m_ObjectHideFlags: 0 35 | m_LightProbes: {fileID: 0} 36 | m_Lightmaps: [] 37 | m_LightmapsMode: 1 38 | m_BakedColorSpace: 0 39 | m_UseDualLightmapsInForward: 0 40 | m_LightmapEditorSettings: 41 | m_Resolution: 50 42 | m_LastUsedResolution: 0 43 | m_TextureWidth: 1024 44 | m_TextureHeight: 1024 45 | m_BounceBoost: 1 46 | m_BounceIntensity: 1 47 | m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} 48 | m_SkyLightIntensity: 0 49 | m_Quality: 0 50 | m_Bounces: 1 51 | m_FinalGatherRays: 1000 52 | m_FinalGatherContrastThreshold: .0500000007 53 | m_FinalGatherGradientThreshold: 0 54 | m_FinalGatherInterpolationPoints: 15 55 | m_AOAmount: 0 56 | m_AOMaxDistance: .100000001 57 | m_AOContrast: 1 58 | m_LODSurfaceMappingDistance: 1 59 | m_Padding: 0 60 | m_TextureCompression: 0 61 | m_LockAtlas: 0 62 | --- !u!196 &5 63 | NavMeshSettings: 64 | m_ObjectHideFlags: 0 65 | m_BuildSettings: 66 | agentRadius: .5 67 | agentHeight: 2 68 | agentSlope: 45 69 | agentClimb: .400000006 70 | ledgeDropHeight: 0 71 | maxJumpAcrossDistance: 0 72 | accuratePlacement: 0 73 | minRegionArea: 2 74 | widthInaccuracy: 16.666666 75 | heightInaccuracy: 10 76 | m_NavMesh: {fileID: 0} 77 | --- !u!1 &459464731 78 | GameObject: 79 | m_ObjectHideFlags: 0 80 | m_PrefabParentObject: {fileID: 0} 81 | m_PrefabInternal: {fileID: 0} 82 | serializedVersion: 3 83 | m_Component: 84 | - 4: {fileID: 459464732} 85 | - 33: {fileID: 459464734} 86 | - 23: {fileID: 459464733} 87 | m_Layer: 0 88 | m_Name: Plane (Default) 89 | m_TagString: Untagged 90 | m_Icon: {fileID: 0} 91 | m_NavMeshLayer: 0 92 | m_StaticEditorFlags: 0 93 | m_IsActive: 1 94 | --- !u!4 &459464732 95 | Transform: 96 | m_ObjectHideFlags: 0 97 | m_PrefabParentObject: {fileID: 0} 98 | m_PrefabInternal: {fileID: 0} 99 | m_GameObject: {fileID: 459464731} 100 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 101 | m_LocalPosition: {x: -10, y: 0, z: 0} 102 | m_LocalScale: {x: 2, y: 2, z: 2} 103 | m_Children: [] 104 | m_Father: {fileID: 0} 105 | --- !u!23 &459464733 106 | Renderer: 107 | m_ObjectHideFlags: 0 108 | m_PrefabParentObject: {fileID: 0} 109 | m_PrefabInternal: {fileID: 0} 110 | m_GameObject: {fileID: 459464731} 111 | m_Enabled: 1 112 | m_CastShadows: 1 113 | m_ReceiveShadows: 1 114 | m_LightmapIndex: 255 115 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 116 | m_Materials: 117 | - {fileID: 2100000, guid: 739f615e65b7a44abb267bdc51ca9376, type: 2} 118 | m_SubsetIndices: 119 | m_StaticBatchRoot: {fileID: 0} 120 | m_UseLightProbes: 0 121 | m_LightProbeAnchor: {fileID: 0} 122 | m_ScaleInLightmap: 1 123 | --- !u!33 &459464734 124 | MeshFilter: 125 | m_ObjectHideFlags: 0 126 | m_PrefabParentObject: {fileID: 0} 127 | m_PrefabInternal: {fileID: 0} 128 | m_GameObject: {fileID: 459464731} 129 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 130 | --- !u!1 &594336242 131 | GameObject: 132 | m_ObjectHideFlags: 0 133 | m_PrefabParentObject: {fileID: 0} 134 | m_PrefabInternal: {fileID: 0} 135 | serializedVersion: 3 136 | m_Component: 137 | - 4: {fileID: 594336243} 138 | - 20: {fileID: 594336244} 139 | - 124: {fileID: 594336247} 140 | - 92: {fileID: 594336246} 141 | - 81: {fileID: 594336245} 142 | m_Layer: 0 143 | m_Name: Camera 144 | m_TagString: Untagged 145 | m_Icon: {fileID: 0} 146 | m_NavMeshLayer: 0 147 | m_StaticEditorFlags: 0 148 | m_IsActive: 1 149 | --- !u!4 &594336243 150 | Transform: 151 | m_ObjectHideFlags: 0 152 | m_PrefabParentObject: {fileID: 0} 153 | m_PrefabInternal: {fileID: 0} 154 | m_GameObject: {fileID: 594336242} 155 | m_LocalRotation: {x: .258819073, y: 0, z: 0, w: .965925813} 156 | m_LocalPosition: {x: 0, y: 2.5, z: -11} 157 | m_LocalScale: {x: 1, y: 1, z: 1} 158 | m_Children: [] 159 | m_Father: {fileID: 0} 160 | --- !u!20 &594336244 161 | Camera: 162 | m_ObjectHideFlags: 0 163 | m_PrefabParentObject: {fileID: 0} 164 | m_PrefabInternal: {fileID: 0} 165 | m_GameObject: {fileID: 594336242} 166 | m_Enabled: 1 167 | serializedVersion: 2 168 | m_ClearFlags: 1 169 | m_BackGroundColor: {r: .192156866, g: .301960796, b: .474509805, a: .0196078438} 170 | m_NormalizedViewPortRect: 171 | serializedVersion: 2 172 | x: 0 173 | y: 0 174 | width: 1 175 | height: 1 176 | near clip plane: .300000012 177 | far clip plane: 50 178 | field of view: 40 179 | orthographic: 0 180 | orthographic size: 100 181 | m_Depth: 0 182 | m_CullingMask: 183 | serializedVersion: 2 184 | m_Bits: 4294967295 185 | m_RenderingPath: -1 186 | m_TargetTexture: {fileID: 0} 187 | m_HDR: 0 188 | --- !u!81 &594336245 189 | AudioListener: 190 | m_ObjectHideFlags: 0 191 | m_PrefabParentObject: {fileID: 0} 192 | m_PrefabInternal: {fileID: 0} 193 | m_GameObject: {fileID: 594336242} 194 | m_Enabled: 1 195 | --- !u!92 &594336246 196 | Behaviour: 197 | m_ObjectHideFlags: 0 198 | m_PrefabParentObject: {fileID: 0} 199 | m_PrefabInternal: {fileID: 0} 200 | m_GameObject: {fileID: 594336242} 201 | m_Enabled: 1 202 | --- !u!124 &594336247 203 | Behaviour: 204 | m_ObjectHideFlags: 0 205 | m_PrefabParentObject: {fileID: 0} 206 | m_PrefabInternal: {fileID: 0} 207 | m_GameObject: {fileID: 594336242} 208 | m_Enabled: 1 209 | --- !u!1 &692942988 210 | GameObject: 211 | m_ObjectHideFlags: 0 212 | m_PrefabParentObject: {fileID: 0} 213 | m_PrefabInternal: {fileID: 0} 214 | serializedVersion: 3 215 | m_Component: 216 | - 4: {fileID: 692942989} 217 | - 108: {fileID: 692942990} 218 | m_Layer: 0 219 | m_Name: Point light 220 | m_TagString: Untagged 221 | m_Icon: {fileID: 0} 222 | m_NavMeshLayer: 0 223 | m_StaticEditorFlags: 0 224 | m_IsActive: 1 225 | --- !u!4 &692942989 226 | Transform: 227 | m_ObjectHideFlags: 0 228 | m_PrefabParentObject: {fileID: 0} 229 | m_PrefabInternal: {fileID: 0} 230 | m_GameObject: {fileID: 692942988} 231 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 232 | m_LocalPosition: {x: 0, y: 5, z: -2.20000005} 233 | m_LocalScale: {x: 1, y: 1, z: 1} 234 | m_Children: [] 235 | m_Father: {fileID: 0} 236 | --- !u!108 &692942990 237 | Light: 238 | m_ObjectHideFlags: 0 239 | m_PrefabParentObject: {fileID: 0} 240 | m_PrefabInternal: {fileID: 0} 241 | m_GameObject: {fileID: 692942988} 242 | m_Enabled: 1 243 | serializedVersion: 3 244 | m_Type: 2 245 | m_Color: {r: 1, g: 1, b: 1, a: 1} 246 | m_Intensity: 1.5 247 | m_Range: 20 248 | m_SpotAngle: 30 249 | m_CookieSize: 10 250 | m_Shadows: 251 | m_Type: 0 252 | m_Resolution: -1 253 | m_Strength: 1 254 | m_Bias: .0500000007 255 | m_Softness: 4 256 | m_SoftnessFade: 1 257 | m_Cookie: {fileID: 0} 258 | m_DrawHalo: 0 259 | m_ActuallyLightmapped: 0 260 | m_Flare: {fileID: 0} 261 | m_RenderMode: 0 262 | m_CullingMask: 263 | serializedVersion: 2 264 | m_Bits: 4294967295 265 | m_Lightmapping: 1 266 | m_ShadowSamples: 1 267 | m_ShadowRadius: 0 268 | m_ShadowAngle: 0 269 | m_IndirectIntensity: 1 270 | m_AreaSize: {x: 1, y: 1} 271 | --- !u!1 &2052920560 272 | GameObject: 273 | m_ObjectHideFlags: 0 274 | m_PrefabParentObject: {fileID: 0} 275 | m_PrefabInternal: {fileID: 0} 276 | serializedVersion: 3 277 | m_Component: 278 | - 4: {fileID: 2052920561} 279 | - 33: {fileID: 2052920563} 280 | - 23: {fileID: 2052920562} 281 | m_Layer: 0 282 | m_Name: Plane (Shader Fog) 283 | m_TagString: Untagged 284 | m_Icon: {fileID: 0} 285 | m_NavMeshLayer: 0 286 | m_StaticEditorFlags: 0 287 | m_IsActive: 1 288 | --- !u!4 &2052920561 289 | Transform: 290 | m_ObjectHideFlags: 0 291 | m_PrefabParentObject: {fileID: 0} 292 | m_PrefabInternal: {fileID: 0} 293 | m_GameObject: {fileID: 2052920560} 294 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 295 | m_LocalPosition: {x: 10, y: 0, z: 0} 296 | m_LocalScale: {x: 2, y: 2, z: 2} 297 | m_Children: [] 298 | m_Father: {fileID: 0} 299 | --- !u!23 &2052920562 300 | Renderer: 301 | m_ObjectHideFlags: 0 302 | m_PrefabParentObject: {fileID: 0} 303 | m_PrefabInternal: {fileID: 0} 304 | m_GameObject: {fileID: 2052920560} 305 | m_Enabled: 1 306 | m_CastShadows: 1 307 | m_ReceiveShadows: 1 308 | m_LightmapIndex: 255 309 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 310 | m_Materials: 311 | - {fileID: 2100000, guid: 23fd1c23f943a4a3192758bdbd033a13, type: 2} 312 | m_SubsetIndices: 313 | m_StaticBatchRoot: {fileID: 0} 314 | m_UseLightProbes: 0 315 | m_LightProbeAnchor: {fileID: 0} 316 | m_ScaleInLightmap: 1 317 | --- !u!33 &2052920563 318 | MeshFilter: 319 | m_ObjectHideFlags: 0 320 | m_PrefabParentObject: {fileID: 0} 321 | m_PrefabInternal: {fileID: 0} 322 | m_GameObject: {fileID: 2052920560} 323 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 324 | -------------------------------------------------------------------------------- /Assets/Scenes/ShaderFog.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fc02cad7f571a4401905dcd9fb7d616b 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 693dcb3a7ce52418281f268a48f882db 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/Shaders/HlslFog.shader: -------------------------------------------------------------------------------- 1 | Shader "Custom/HlslFog" { 2 | Properties { 3 | _MainTex ("Base (RGB)", 2D) = "white" {} 4 | _FogColor ("Fog Color (RGB)", Color) = (0.5, 0.5, 0.5, 1.0) 5 | _FogStart ("Fog Start", Float) = 0.0 6 | _FogEnd ("Fog End", Float) = 10.0 7 | } 8 | SubShader { 9 | Tags { "RenderType"="Opaque" } 10 | Fog { Mode off } 11 | 12 | Pass { 13 | CGPROGRAM 14 | #pragma vertex vert 15 | #pragma fragment frag 16 | 17 | sampler2D _MainTex; 18 | float4 _FogColor; 19 | float _FogStart; 20 | float _FogEnd; 21 | 22 | struct appdata { 23 | float4 vertex : POSITION; 24 | float4 texcoord : TEXCOORD0; 25 | }; 26 | 27 | struct v2f { 28 | float4 pos : SV_POSITION; 29 | float4 uv : TEXCOORD0; 30 | float fog : TEXCOORD1; 31 | }; 32 | 33 | v2f vert(appdata v) { 34 | v2f o; 35 | o.pos = mul(UNITY_MATRIX_MVP, v.vertex); 36 | o.uv = v.texcoord; 37 | float fogz = mul(UNITY_MATRIX_MV, v.vertex).z; 38 | o.fog = saturate((fogz + _FogStart) / (_FogStart - _FogEnd)); 39 | return o; 40 | } 41 | 42 | half4 frag(v2f i) : COLOR { 43 | return lerp(tex2D(_MainTex, i.uv.xy), _FogColor, i.fog); 44 | } 45 | 46 | ENDCG 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Assets/Shaders/HlslFog.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c628c3e4d5dc64e6cbffa81092f69971 3 | ShaderImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/Shaders/ShaderFog.shader: -------------------------------------------------------------------------------- 1 | Shader "Custom/ShaderFog" { 2 | Properties { 3 | _MainTex ("Base (RGB)", 2D) = "white" {} 4 | _FogColor ("Fog Color (RGB)", Color) = (0.5, 0.5, 0.5, 1.0) 5 | _FogStart ("Fog Start", Float) = 0.0 6 | _FogEnd ("Fog End", Float) = 10.0 7 | } 8 | SubShader { 9 | Tags { "RenderType"="Opaque" } 10 | Fog { Mode off } 11 | 12 | CGPROGRAM 13 | #pragma surface surf Lambert vertex:vert finalcolor:fcolor 14 | 15 | sampler2D _MainTex; 16 | fixed4 _FogColor; 17 | float _FogStart; 18 | float _FogEnd; 19 | 20 | struct Input { 21 | float2 uv_MainTex; 22 | float fogVar; 23 | }; 24 | 25 | void vert(inout appdata_full v, out Input data) { 26 | data.uv_MainTex = v.texcoord.xy; 27 | float zpos = mul(UNITY_MATRIX_MVP, v.vertex).z; 28 | data.fogVar = saturate(1.0 - (_FogEnd - zpos) / (_FogEnd - _FogStart)); 29 | } 30 | 31 | void surf(Input IN, inout SurfaceOutput o) { 32 | half4 c = tex2D(_MainTex, IN.uv_MainTex); 33 | o.Albedo = c.rgb; 34 | o.Alpha = c.a; 35 | } 36 | 37 | void fcolor(Input IN, SurfaceOutput o, inout fixed4 color) { 38 | fixed3 fogColor = _FogColor.rgb; 39 | #ifndef UNITY_PASS_FORWARDBASE 40 | fogColor = 0; 41 | #endif 42 | color.rgb = lerp(color.rgb, fogColor, IN.fogVar); 43 | } 44 | 45 | ENDCG 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Assets/Shaders/ShaderFog.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 57ae39dd985674df8898c1fb80b1d134 3 | ShaderImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: da1e4ab7d9e164d549cc0a02fbb87060 3 | -------------------------------------------------------------------------------- /Assets/Textures/Checker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-shaderfog-example/c0ba3a4b6dc13f975ed404e8c9e0ac0c2454fa59/Assets/Textures/Checker.png -------------------------------------------------------------------------------- /Assets/Textures/Checker.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 87eb876fa7048403987d1a62d8c020da 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -2 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: 2 26 | aniso: 2 27 | mipBias: -1 28 | wrapMode: 1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-shaderfog-example/c0ba3a4b6dc13f975ed404e8c9e0ac0c2454fa59/ProjectSettings/AudioManager.asset -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-shaderfog-example/c0ba3a4b6dc13f975ed404e8c9e0ac0c2454fa59/ProjectSettings/DynamicsManager.asset -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Scenes/HlslFog.unity 10 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_ExternalVersionControlSupport: 1 8 | m_SerializationMode: 2 9 | m_WebSecurityEmulationEnabled: 0 10 | m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d 11 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-shaderfog-example/c0ba3a4b6dc13f975ed404e8c9e0ac0c2454fa59/ProjectSettings/InputManager.asset -------------------------------------------------------------------------------- /ProjectSettings/NavMeshLayers.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-shaderfog-example/c0ba3a4b6dc13f975ed404e8c9e0ac0c2454fa59/ProjectSettings/NavMeshLayers.asset -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-shaderfog-example/c0ba3a4b6dc13f975ed404e8c9e0ac0c2454fa59/ProjectSettings/NetworkManager.asset -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-shaderfog-example/c0ba3a4b6dc13f975ed404e8c9e0ac0c2454fa59/ProjectSettings/ProjectSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-shaderfog-example/c0ba3a4b6dc13f975ed404e8c9e0ac0c2454fa59/ProjectSettings/QualitySettings.asset -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-shaderfog-example/c0ba3a4b6dc13f975ed404e8c9e0ac0c2454fa59/ProjectSettings/TagManager.asset -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-shaderfog-example/c0ba3a4b6dc13f975ed404e8c9e0ac0c2454fa59/ProjectSettings/TimeManager.asset -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | unity-shaderfog-example 2 | ======================= 3 | 4 | An example of HLSL fog and surface shader fog. --------------------------------------------------------------------------------