summaryrefslogtreecommitdiff
path: root/Assets/LensFlare
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/LensFlare')
-rw-r--r--Assets/LensFlare/Editor.meta8
-rw-r--r--Assets/LensFlare/Editor/FlareAtlasEditor.cs138
-rw-r--r--Assets/LensFlare/Editor/FlareAtlasEditor.cs.meta11
-rw-r--r--Assets/LensFlare/Flare Atlas.asset25
-rw-r--r--Assets/LensFlare/Flare Atlas.asset.meta8
-rw-r--r--Assets/LensFlare/FlareAtlas.cs49
-rw-r--r--Assets/LensFlare/FlareAtlas.cs.meta11
-rw-r--r--Assets/LensFlare/FlareBatch.cs119
-rw-r--r--Assets/LensFlare/FlareBatch.cs.meta11
-rw-r--r--Assets/LensFlare/FlareSource.cs63
-rw-r--r--Assets/LensFlare/FlareSource.cs.meta11
-rw-r--r--Assets/LensFlare/IslandDemoAtlas.pngbin0 -> 1357438 bytes
-rw-r--r--Assets/LensFlare/IslandDemoAtlas.png.meta142
-rw-r--r--Assets/LensFlare/LensFlare.cs242
-rw-r--r--Assets/LensFlare/LensFlare.cs.meta11
-rw-r--r--Assets/LensFlare/LensFlare.mat91
-rw-r--r--Assets/LensFlare/LensFlare.mat.meta8
-rw-r--r--Assets/LensFlare/LensFlare.unity1071
-rw-r--r--Assets/LensFlare/LensFlare.unity.meta7
-rw-r--r--Assets/LensFlare/LensFlareAdditive.shader66
-rw-r--r--Assets/LensFlare/LensFlareAdditive.shader.meta9
-rw-r--r--Assets/LensFlare/LensFlareCommon.hlsl161
-rw-r--r--Assets/LensFlare/LensFlareCommon.hlsl.meta9
-rw-r--r--Assets/LensFlare/New Scene.unity612
-rw-r--r--Assets/LensFlare/New Scene.unity.meta7
25 files changed, 2890 insertions, 0 deletions
diff --git a/Assets/LensFlare/Editor.meta b/Assets/LensFlare/Editor.meta
new file mode 100644
index 0000000..32b0be3
--- /dev/null
+++ b/Assets/LensFlare/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9c99000734a73974db86c76ddfede011
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/LensFlare/Editor/FlareAtlasEditor.cs b/Assets/LensFlare/Editor/FlareAtlasEditor.cs
new file mode 100644
index 0000000..8bcd05d
--- /dev/null
+++ b/Assets/LensFlare/Editor/FlareAtlasEditor.cs
@@ -0,0 +1,138 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor;
+
+[CustomEditor(typeof(FlareAtlas), false)]
+public class FlareAtlasEditor : Editor
+{
+ private FlareAtlas m_Atlas;
+ private List<FlareTexture> m_SubTextures;
+ private int m_Foldout;
+
+ public void OnEnable()
+ {
+ m_Atlas = target as FlareAtlas;
+ m_SubTextures = m_Atlas.SubTextures;
+ m_Foldout = 0;
+ }
+
+ public void OnDisable()
+ {
+ }
+
+ public override void OnInspectorGUI()
+ {
+ GUI.changed = false;
+ EditorGUILayout.LabelField("Atlas Texture");
+ m_Atlas.Atlas = EditorGUILayout.ObjectField(m_Atlas.Atlas, typeof(Texture2D), false) as Texture2D;
+ GUILayout.Space(10);
+ EditorGUILayout.LabelField("Sub Textures: " + m_SubTextures.Count, GUILayout.Width(250));
+ EditorGUILayout.BeginVertical();
+ for(int i = 0; i < m_SubTextures.Count; ++i)
+ {
+ FlareTexture subTex = m_SubTextures[i];
+ if (subTex == null)
+ return;
+
+ EditorGUILayout.BeginHorizontal();
+ bool foldout = (m_Foldout & (1 << i)) != 0;
+ foldout = EditorGUILayout.BeginFoldoutHeaderGroup(foldout, "Tex "+ i);
+ //GUILayout.Button(" - ");
+ GUIStyle style = new GUIStyle();
+ style.alignment = TextAnchor.MiddleRight;
+ if (GUILayout.Button(" - ", GUILayout.Width(40)))
+ {
+ m_SubTextures.RemoveAt(i);
+ int leftPart = m_Foldout >> 1 & ~((1 << i)-1);
+ int rightPart = m_Foldout & ((1 << i) - 1);
+ m_Foldout = leftPart | rightPart;
+ EditorGUILayout.EndHorizontal();
+ break;
+ }
+ EditorGUILayout.EndHorizontal();
+ m_Foldout = (m_Foldout & ~((1 << i))) | (foldout ? (1 << i) : 0);
+ if (!foldout)
+ {
+ EditorGUILayout.EndFoldoutHeaderGroup();
+ continue;
+ }
+ subTex.Scale = EditorGUILayout.Vector2Field("Scale", subTex.Scale);
+ subTex.Offset = EditorGUILayout.Vector2Field("Offset", subTex.Offset);
+
+ // edit scale offset
+ Vector4 scaleOffset = subTex.ScaleOffset;
+ Vector2 scale = subTex.Scale;
+ Vector2 offset = subTex.Offset;
+ Vector2 imageSize = new Vector2(m_Atlas.Atlas.width, m_Atlas.Atlas.height);
+ Rect rect = GUILayoutUtility.GetLastRect();
+ float left = offset.x * imageSize.x;
+ float right = (scale.x + offset.x) * imageSize.x;
+ float bottom = offset.y * imageSize.y;
+ float top = (scale.y + offset.y) * imageSize.y;
+ float aspect = 1;
+ if (top - bottom != 0)
+ aspect = (right - left) / (top - bottom);
+ Rect texRect = new Rect(rect.x, rect.y + 20, 200, 200);
+ Rect texRect2 = new Rect(rect.x + 220, rect.y + 20, 200 * aspect, 200);
+ Rect uv0 = new Rect(0,0,1,1);
+ Rect uv = new Rect(scaleOffset.z, scaleOffset.w, scaleOffset.x, scaleOffset.y);
+ GUI.DrawTextureWithTexCoords(texRect, m_Atlas.Atlas, uv0);
+ GUI.DrawTextureWithTexCoords(texRect2, m_Atlas.Atlas, uv);
+ DrawHorizontalline(Color.white, new Vector2(texRect.x, texRect.y + 200 - (scale.y + offset.y) * 200), 200);
+ DrawHorizontalline(Color.white, new Vector2(texRect.x, texRect.y + 200 - offset.y * 200), 200);
+ DrawVerticleline(Color.white, new Vector2(texRect.x + offset.x * 200, texRect.y), 200);
+ DrawVerticleline(Color.white, new Vector2(texRect.x + (scale.x + offset.x) * 200, texRect.y), 200);
+
+ GUILayout.Space(200f);
+ left = Mathf.Clamp(EditorGUILayout.Slider("Left", left, 0f, 2048f), 0, right - 1);
+ right = Mathf.Clamp(EditorGUILayout.Slider("Right", right, 0f, 2048f), left + 1, imageSize.x);
+ bottom = Mathf.Clamp(EditorGUILayout.Slider("Bottom", bottom, 0f, 2048f), 0, top - 1);
+ top = Mathf.Clamp(EditorGUILayout.Slider("Top", top, 0f, 2048f), bottom + 1, imageSize.y);
+ subTex.ScaleOffset.x = (right - left)/imageSize.x;
+ subTex.ScaleOffset.y = (top - bottom) /imageSize.y;
+ subTex.ScaleOffset.z = left /imageSize.x;
+ subTex.ScaleOffset.w = bottom / imageSize.y;
+
+ EditorGUILayout.EndFoldoutHeaderGroup();
+ }
+ EditorGUILayout.EndVertical();
+
+ if (GUILayout.Button("+ New Texture"))
+ {
+ if(m_SubTextures.Count >= 32)
+ {
+ Debug.LogError("最多支持32个子图");
+ }
+ else
+ {
+ m_SubTextures.Add(new FlareTexture());
+ }
+ }
+ if (GUI.changed)
+ {
+ EditorUtility.SetDirty(m_Atlas);
+ }
+ }
+
+ public static void DrawHorizontalline(Color color, Vector2 left, float length, int thickness = 1, int padding = 0)
+ {
+ Rect r = EditorGUILayout.GetControlRect(GUILayout.Height(padding + thickness));
+ r.x = left.x;
+ r.y = left.y;
+ r.width = length;
+ EditorGUI.DrawRect(r, color);
+ GUILayout.Space(-10f);
+ }
+
+ public static void DrawVerticleline(Color color, Vector2 top, float height, int thickness = 1, int padding = 0)
+ {
+ Rect r = EditorGUILayout.GetControlRect(GUILayout.Width(padding + thickness));
+ r.x = top.x;
+ r.y = top.y;
+ r.height = height;
+ EditorGUI.DrawRect(r, color);
+ GUILayout.Space(-10f);
+ }
+
+}
diff --git a/Assets/LensFlare/Editor/FlareAtlasEditor.cs.meta b/Assets/LensFlare/Editor/FlareAtlasEditor.cs.meta
new file mode 100644
index 0000000..e1de27d
--- /dev/null
+++ b/Assets/LensFlare/Editor/FlareAtlasEditor.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a2940b263f6c0d74382457e09f328eca
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/LensFlare/Flare Atlas.asset b/Assets/LensFlare/Flare Atlas.asset
new file mode 100644
index 0000000..65be34f
--- /dev/null
+++ b/Assets/LensFlare/Flare Atlas.asset
@@ -0,0 +1,25 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3d198d755c8aabf44b45dba8fa4976ab, type: 3}
+ m_Name: Flare Atlas
+ m_EditorClassIdentifier:
+ Atlas: {fileID: 2800000, guid: 539933a8761e97d41b8c1544e599872f, type: 3}
+ SubTextures:
+ - ScaleOffset: {x: 0.3955078, y: 0.11230469, z: 0, w: 0.8876953}
+ - ScaleOffset: {x: 0.2626953, y: 0.2841797, z: 0.49804688, w: 0.7158203}
+ - ScaleOffset: {x: 0.19335938, y: 0.2163086, z: 0.5151367, w: 0.48828125}
+ - ScaleOffset: {x: 0.00048828125, y: 0.00048828125, z: 0, w: 0}
+ - ScaleOffset: {x: 0.00048828125, y: 0.00048828125, z: 0, w: 0}
+ - ScaleOffset: {x: 0.00048828125, y: 0.00048828125, z: 0, w: 0}
+ - ScaleOffset: {x: 0.00048828125, y: 0.00048828125, z: 0, w: 0}
+ - ScaleOffset: {x: 0.00048828125, y: 0.00048828125, z: 0, w: 0}
+ - ScaleOffset: {x: 0.00048828125, y: 0.00048828125, z: 0, w: 0}
diff --git a/Assets/LensFlare/Flare Atlas.asset.meta b/Assets/LensFlare/Flare Atlas.asset.meta
new file mode 100644
index 0000000..281cc12
--- /dev/null
+++ b/Assets/LensFlare/Flare Atlas.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 317e5903581b97148afb8a08854d474d
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/LensFlare/FlareAtlas.cs b/Assets/LensFlare/FlareAtlas.cs
new file mode 100644
index 0000000..9e42897
--- /dev/null
+++ b/Assets/LensFlare/FlareAtlas.cs
@@ -0,0 +1,49 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using System;
+
+[Serializable]
+public class FlareTexture
+{
+ public Vector4 ScaleOffset;
+ public Vector2 Scale
+ {
+ get
+ {
+ return new Vector2(ScaleOffset.x, ScaleOffset.y);
+ }
+ set
+ {
+ ScaleOffset.x = value.x;
+ ScaleOffset.y = value.y;
+ }
+ }
+ public Vector2 Offset
+ {
+ get
+ {
+ return new Vector2(ScaleOffset.z, ScaleOffset.w);
+ }
+ set
+ {
+ ScaleOffset.z = value.x;
+ ScaleOffset.w = value.y;
+ }
+ }
+}
+
+[CreateAssetMenu(fileName = "Flare Atlas", menuName ="Rendering/New Flare Atlas", order=5)]
+public class FlareAtlas : ScriptableObject
+{
+ public Texture2D Atlas;
+ public List<FlareTexture> SubTextures;
+
+ public Vector4 GetScaleOffset(int index)
+ {
+ if (SubTextures.Count <= index)
+ return Vector4.zero;
+ return SubTextures[index].ScaleOffset;
+ }
+
+}
diff --git a/Assets/LensFlare/FlareAtlas.cs.meta b/Assets/LensFlare/FlareAtlas.cs.meta
new file mode 100644
index 0000000..4b65d3e
--- /dev/null
+++ b/Assets/LensFlare/FlareAtlas.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3d198d755c8aabf44b45dba8fa4976ab
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/LensFlare/FlareBatch.cs b/Assets/LensFlare/FlareBatch.cs
new file mode 100644
index 0000000..06246db
--- /dev/null
+++ b/Assets/LensFlare/FlareBatch.cs
@@ -0,0 +1,119 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class FlareBatch : MonoBehaviour
+{
+ [SerializeField] private Camera m_FlareCamera;
+ [SerializeField] private List<FlareSource> m_SourceList;
+ [SerializeField] private Material m_Materail;
+
+ private MeshRenderer m_MeshRenderer;
+ private MeshFilter m_MeshFilter;
+
+ private Mesh m_Mesh;
+
+ void Start()
+ {
+ m_MeshRenderer = GetComponentOrCreate<MeshRenderer>();
+ m_MeshRenderer.sharedMaterial = m_Materail;
+ m_MeshFilter = GetComponentOrCreate<MeshFilter>();
+
+ gameObject.layer = LayerMask.NameToLayer("Flare");
+
+ transform.position = m_FlareCamera.transform.position + m_FlareCamera.transform.forward;
+ transform.rotation = Quaternion.identity;
+ transform.localScale = Vector3.one;
+
+ m_Mesh = new Mesh();
+ m_Mesh.Clear();
+ PopulateMesh();
+ }
+
+ void LateUpdate()
+ {
+ m_Mesh.Clear();
+ for(int i = 0; i < m_SourceList.Count; ++i)
+ {
+ if(m_SourceList[i].IsVisible)
+ UpdateGeometry(m_SourceList[i]);
+ }
+ }
+
+ void UpdateGeometry(FlareSource source)
+ {
+ Vector3 viewportPos = source.ViewportPosition;
+ Vector3 flareSpacePos = ViewportToFlareSpace(viewportPos);
+
+ for (int i = 0; i < source.Flares.Count; ++i)
+ {
+ Flare flare = source.Flares[i];
+ //Matrix4x4 translate = Matrix4x4.Translate(flareSpacePos);
+ Vector3[] vertices =
+ {
+ Vec3(-0.5f, -0.5f, 0),
+ Vec3(-0.5f, 0.5f, 0),
+ Vec3(0.5f, 0.5f, 0),
+ Vec3(0.5f, -0.5f, 0),
+ };
+ for (int j = 0; j < vertices.Length; ++j)
+ {
+ vertices[j] += flareSpacePos;
+ }
+ Vector2[] uv =
+ {
+ Vec2(0,0),
+ Vec2(0,1),
+ Vec2(1,1),
+ Vec2(1,0),
+ };
+ for(int j = 0; j < uv.Length; ++j)
+ {
+ Vector4 scaleOffset = flare.Atlas.GetScaleOffset(flare.Index);
+ uv[j] *= new Vector2(scaleOffset.x, scaleOffset.y);
+ uv[j] += new Vector2(scaleOffset.z, scaleOffset.w);
+ }
+ int[] triangles = { 0, 1, 2, 0, 2, 3 };
+ m_Mesh.vertices = vertices;
+ m_Mesh.uv = uv;
+ m_Mesh.triangles = triangles;
+ // m_MeshFilter.mesh = m_Mesh;
+ }
+ }
+
+ void PopulateMesh()
+ {
+ m_MeshFilter.mesh = m_Mesh;
+ }
+
+ // 将viewport坐标转换到“flare空间”
+ Vector3 ViewportToFlareSpace(Vector3 pos)
+ {
+ pos += new Vector3(-0.5f, -0.5f, 0);
+ pos.x *= m_FlareCamera.aspect * m_FlareCamera.orthographicSize * 2;
+ pos.y *= m_FlareCamera.orthographicSize * 2;
+ pos.z = 0;
+ return pos;
+ }
+
+ T GetComponentOrCreate<T>() where T: Component
+ {
+ T component = GetComponent<T>();
+ if (component == null)
+ component = gameObject.AddComponent(typeof(T)) as T;
+ return component;
+ }
+
+ Vector2 Vec2(float x, float y)
+ {
+ Vector2 v = new Vector2(x, y);
+ return v;
+ }
+
+ Vector3 Vec3(float x, float y, float z)
+ {
+ Vector3 v = new Vector3(x, y, z);
+ return v;
+ }
+
+}
diff --git a/Assets/LensFlare/FlareBatch.cs.meta b/Assets/LensFlare/FlareBatch.cs.meta
new file mode 100644
index 0000000..329cc8d
--- /dev/null
+++ b/Assets/LensFlare/FlareBatch.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ececf1f2f50645a45900ae50b074d97e
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/LensFlare/FlareSource.cs b/Assets/LensFlare/FlareSource.cs
new file mode 100644
index 0000000..1ab8a2e
--- /dev/null
+++ b/Assets/LensFlare/FlareSource.cs
@@ -0,0 +1,63 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+[Serializable]
+public class Flare
+{
+ public FlareAtlas Atlas;
+ public int Index;
+}
+
+// 光源
+public class FlareSource : MonoBehaviour
+{
+ [SerializeField] private Camera m_GameCamera;
+ [SerializeField] private Camera m_FlareCamera;
+ public List<Flare> Flares;
+
+ private Vector3 m_ViewportPosition;
+ public Vector3 ViewportPosition
+ {
+ get
+ {
+ return m_ViewportPosition;
+ }
+ }
+
+ public bool IsVisible
+ {
+ get;private set;
+ }
+
+ // Start is called before the first frame update
+ void Start()
+ {
+ IsVisible = false;
+ }
+
+ // Update is called once per frame
+ void Update()
+ {
+ Vector3 position = transform.position;
+ m_ViewportPosition = m_GameCamera.WorldToViewportPoint(position);
+
+ Ray ray = new Ray(m_GameCamera.transform.position, position - m_GameCamera.transform.position);
+ RaycastHit hit;
+ if(Physics.Raycast(ray, out hit))
+ {
+ IsVisible = false;
+ }
+ else
+ {
+ IsVisible = true;
+ }
+ }
+
+ private void OnDrawGizmos()
+ {
+ Gizmos.DrawLine(transform.position, m_GameCamera.transform.position);
+ }
+
+}
diff --git a/Assets/LensFlare/FlareSource.cs.meta b/Assets/LensFlare/FlareSource.cs.meta
new file mode 100644
index 0000000..8507a71
--- /dev/null
+++ b/Assets/LensFlare/FlareSource.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bd20453260fa4ac4499d69fbf74e50bd
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/LensFlare/IslandDemoAtlas.png b/Assets/LensFlare/IslandDemoAtlas.png
new file mode 100644
index 0000000..15f5844
--- /dev/null
+++ b/Assets/LensFlare/IslandDemoAtlas.png
Binary files differ
diff --git a/Assets/LensFlare/IslandDemoAtlas.png.meta b/Assets/LensFlare/IslandDemoAtlas.png.meta
new file mode 100644
index 0000000..1ac94f3
--- /dev/null
+++ b/Assets/LensFlare/IslandDemoAtlas.png.meta
@@ -0,0 +1,142 @@
+fileFormatVersion: 2
+guid: 539933a8761e97d41b8c1544e599872f
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: 2
+ mipBias: -100
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 8192
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 8192
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: iPhone
+ maxTextureSize: 8192
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Android
+ maxTextureSize: 8192
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Windows Store Apps
+ maxTextureSize: 8192
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/LensFlare/LensFlare.cs b/Assets/LensFlare/LensFlare.cs
new file mode 100644
index 0000000..768c1ec
--- /dev/null
+++ b/Assets/LensFlare/LensFlare.cs
@@ -0,0 +1,242 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+[ExecuteInEditMode]
+[RequireComponent(typeof(MeshRenderer))]
+[RequireComponent(typeof(MeshFilter))]
+public class LensFlare : MonoBehaviour
+{
+ [SerializeField, HideInInspector]
+ MeshRenderer m_MeshRenderer;
+ [SerializeField, HideInInspector]
+ MeshFilter m_MeshFilter;
+ [SerializeField]
+ Light m_Light;
+
+ [Header("Global Settings")]
+ public float OcclusionRadius = 1.0f;
+ public float NearFadeStartDistance = 1.0f;
+ public float NearFadeEndDistance = 3.0f;
+ public float FarFadeStartDistance = 10.0f;
+ public float FarFadeEndDistance = 50.0f;
+
+ [Header("Flare Element Settings")]
+ [SerializeField]
+ public List<FlareSettings> Flares;
+
+ void Awake()
+ {
+ if (m_MeshFilter == null)
+ m_MeshFilter = GetComponent<MeshFilter>();
+ if (m_MeshRenderer == null)
+ m_MeshRenderer = GetComponent<MeshRenderer>();
+
+ m_Light = GetComponent<Light>();
+
+ m_MeshFilter.hideFlags = HideFlags.None;
+ m_MeshRenderer.hideFlags = HideFlags.None;
+
+ if (Flares == null)
+ Flares = new List<FlareSettings>();
+
+ m_MeshFilter.mesh = InitMesh();
+ }
+
+ void OnEnable()
+ {
+ UpdateGeometry();
+ }
+
+
+ // Use this for initialization
+ void Start()
+ {
+ m_Light = GetComponent<Light>();
+ }
+
+ void OnValidate()
+ {
+ UpdateGeometry();
+ UpdateMaterials();
+ }
+
+ // Update is called once per frame
+ void Update()
+ {
+ // Lazy!
+ UpdateVaryingAttributes();
+ }
+
+ Mesh InitMesh()
+ {
+ Mesh m = new Mesh();
+ m.MarkDynamic();
+ return m;
+ }
+
+ void UpdateMaterials()
+ {
+ Material[] mats = new Material[Flares.Count];
+
+ int i = 0;
+ foreach (FlareSettings f in Flares)
+ {
+ mats[i] = f.Material;
+ i++;
+ }
+ m_MeshRenderer.sharedMaterials = mats;
+ }
+
+ void UpdateGeometry()
+ {
+ Mesh m = m_MeshFilter.sharedMesh;
+
+ // Positions
+ List<Vector3> vertices = new List<Vector3>();
+ foreach (FlareSettings s in Flares)
+ {
+ vertices.Add(new Vector3(-1, -1, 0));
+ vertices.Add(new Vector3(1, -1, 0));
+ vertices.Add(new Vector3(1, 1, 0));
+ vertices.Add(new Vector3(-1, 1, 0));
+ }
+ m.SetVertices(vertices);
+
+ // UVs
+ List<Vector2> uvs = new List<Vector2>();
+ foreach (FlareSettings s in Flares)
+ {
+ uvs.Add(new Vector2(0, 1));
+ uvs.Add(new Vector2(1, 1));
+ uvs.Add(new Vector2(1, 0));
+ uvs.Add(new Vector2(0, 0));
+ }
+ m.SetUVs(0, uvs);
+
+ // Variable Data
+ m.SetColors(GetLensFlareColor());
+ m.SetUVs(1, GetLensFlareData());
+ m.SetUVs(2, GetWorldPositionAndRadius());
+ m.SetUVs(3, GetDistanceFadeData());
+
+ m.subMeshCount = Flares.Count;
+
+ // Tris
+ for (int i = 0; i < Flares.Count; i++)
+ {
+ int[] tris = new int[6];
+ tris[0] = (i * 4) + 0;
+ tris[1] = (i * 4) + 1;
+ tris[2] = (i * 4) + 2;
+ tris[3] = (i * 4) + 2;
+ tris[4] = (i * 4) + 3;
+ tris[5] = (i * 4) + 0;
+ m.SetTriangles(tris, i);
+ }
+
+ Bounds b = m.bounds;
+ b.extents = new Vector3(OcclusionRadius, OcclusionRadius, OcclusionRadius);
+ m.bounds = b;
+ m.UploadMeshData(false);
+ }
+
+ void UpdateVaryingAttributes()
+ {
+ Mesh m = m_MeshFilter.sharedMesh;
+
+ m.SetColors(GetLensFlareColor());
+ m.SetUVs(1, GetLensFlareData());
+ m.SetUVs(2, GetWorldPositionAndRadius());
+ m.SetUVs(3, GetDistanceFadeData());
+
+ Bounds b = m.bounds;
+ b.extents = new Vector3(OcclusionRadius, OcclusionRadius, OcclusionRadius);
+ m.bounds = b;
+ m.name = "LensFlare (" + gameObject.name + ")";
+ }
+
+ List<Color> GetLensFlareColor()
+ {
+ List<Color> colors = new List<Color>();
+ foreach (FlareSettings s in Flares)
+ {
+ Color c = (s.MultiplyByLightColor && m_Light != null) ? s.Color * m_Light.color * m_Light.intensity : s.Color;
+
+ colors.Add(c);
+ colors.Add(c);
+ colors.Add(c);
+ colors.Add(c);
+ }
+ return colors;
+ }
+
+ List<Vector4> GetLensFlareData()
+ {
+ List<Vector4> lfData = new List<Vector4>();
+
+ foreach (FlareSettings s in Flares)
+ {
+ Vector4 data = new Vector4(s.RayPosition, s.AutoRotate ? -1 : Mathf.Abs(s.Rotation), s.Size.x, s.Size.y);
+ lfData.Add(data); lfData.Add(data); lfData.Add(data); lfData.Add(data);
+ }
+ return lfData;
+ }
+ List<Vector4> GetDistanceFadeData()
+ {
+ List<Vector4> fadeData = new List<Vector4>();
+
+ foreach (FlareSettings s in Flares)
+ {
+ Vector4 data = new Vector4(NearFadeStartDistance, NearFadeEndDistance, FarFadeStartDistance, FarFadeEndDistance);
+ fadeData.Add(data); fadeData.Add(data); fadeData.Add(data); fadeData.Add(data);
+ }
+ return fadeData;
+ }
+
+
+ List<Vector4> GetWorldPositionAndRadius()
+ {
+ List<Vector4> worldPos = new List<Vector4>();
+ Vector3 pos = transform.position;
+ Vector4 value = new Vector4(pos.x, pos.y, pos.z, OcclusionRadius);
+ foreach (FlareSettings s in Flares)
+ {
+ worldPos.Add(value); worldPos.Add(value); worldPos.Add(value); worldPos.Add(value);
+ }
+
+ return worldPos;
+ }
+
+ void OnDrawGizmosSelected()
+ {
+ return;
+ Gizmos.color = new Color(1, 0, 0, 0.3f);
+ Gizmos.DrawSphere(transform.position, OcclusionRadius);
+ Gizmos.color = Color.red;
+ Gizmos.DrawWireSphere(transform.position, OcclusionRadius);
+ }
+
+ [System.Serializable]
+ public class FlareSettings
+ {
+ public float RayPosition;
+ public Material Material;
+ [ColorUsage(true, true)]
+ public Color Color;
+ public bool MultiplyByLightColor;
+ public Vector2 Size;
+ public float Rotation;
+ public bool AutoRotate;
+
+ public FlareSettings()
+ {
+ RayPosition = 0.0f;
+ Color = Color.white;
+ MultiplyByLightColor = true;
+ Size = new Vector2(0.3f, 0.3f);
+ Rotation = 0.0f;
+ AutoRotate = false;
+ }
+ }
+}
diff --git a/Assets/LensFlare/LensFlare.cs.meta b/Assets/LensFlare/LensFlare.cs.meta
new file mode 100644
index 0000000..bca22a9
--- /dev/null
+++ b/Assets/LensFlare/LensFlare.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3cf420f1fcf2c7745b6f448d60827c0d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/LensFlare/LensFlare.mat b/Assets/LensFlare/LensFlare.mat
new file mode 100644
index 0000000..bb57f4e
--- /dev/null
+++ b/Assets/LensFlare/LensFlare.mat
@@ -0,0 +1,91 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: LensFlare
+ m_Shader: {fileID: 4800000, guid: 3fe20b33ee6fc224c905c4db6180eff6, type: 3}
+ m_ShaderKeywords:
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 3000
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: b96ae14a5fa164cbda52e52ab1694f94, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _AlphaClip: 0
+ - _Blend: 0
+ - _BumpScale: 1
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DstBlend: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
+ - _Metallic: 0
+ - _OccludedSizeScale: 1
+ - _OcclusionStrength: 1
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _Surface: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ m_BuildTextureStacks: []
+--- !u!114 &8424519465874014809
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 2
diff --git a/Assets/LensFlare/LensFlare.mat.meta b/Assets/LensFlare/LensFlare.mat.meta
new file mode 100644
index 0000000..236ef41
--- /dev/null
+++ b/Assets/LensFlare/LensFlare.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a2538de606c59c04f9b9a86fe0869e48
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/LensFlare/LensFlare.unity b/Assets/LensFlare/LensFlare.unity
new file mode 100644
index 0000000..e648119
--- /dev/null
+++ b/Assets/LensFlare/LensFlare.unity
@@ -0,0 +1,1071 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 512
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 1
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &378154549
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 378154551}
+ - component: {fileID: 378154550}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &378154550
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 378154549}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &378154551
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 378154549}
+ m_LocalRotation: {x: 0.46999806, y: -0, z: -0, w: 0.88266754}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1303527991}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 56.068, y: 0, z: 0}
+--- !u!1 &449180655
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 449180656}
+ m_Layer: 0
+ m_Name: _CameraRig
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &449180656
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 449180655}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1197693694}
+ - {fileID: 1225276825}
+ - {fileID: 1915971034}
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &969672461
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 969672462}
+ - component: {fileID: 969672463}
+ m_Layer: 0
+ m_Name: CameraRigX
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &969672462
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 969672461}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1700281658}
+ m_Father: {fileID: 1915971034}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &969672463
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 969672461}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: caeefc16a0ffc48dd8f63c1c92e16f99, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ target: {fileID: 1197693694}
+--- !u!1 &986942383
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 986942384}
+ - component: {fileID: 986942387}
+ - component: {fileID: 986942386}
+ - component: {fileID: 986942385}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!4 &986942384
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 986942383}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1303527991}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &986942385
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 986942383}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &986942386
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 986942383}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &986942387
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 986942383}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1096093578
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1096093579}
+ - component: {fileID: 1096093580}
+ m_Layer: 0
+ m_Name: FlareSource
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1096093579
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1096093578}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1303527991}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1096093580
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1096093578}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: bd20453260fa4ac4499d69fbf74e50bd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_GameCamera: {fileID: 2134045979}
+ m_FlareCamera: {fileID: 1380528559}
+ Flares:
+ - Atlas: {fileID: 11400000, guid: 317e5903581b97148afb8a08854d474d, type: 2}
+ Index: 0
+--- !u!1 &1129909397
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1129909398}
+ - component: {fileID: 1129909399}
+ m_Layer: 8
+ m_Name: FlareBatch
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1129909398
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1129909397}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1380528560}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1129909399
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1129909397}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: ececf1f2f50645a45900ae50b074d97e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_FlareCamera: {fileID: 1380528559}
+ m_SourceList:
+ - {fileID: 1096093580}
+ m_Materail: {fileID: 2100000, guid: a2538de606c59c04f9b9a86fe0869e48, type: 2}
+--- !u!1 &1170846966
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1170846967}
+ - component: {fileID: 1170846968}
+ m_Layer: 0
+ m_Name: CameraZoom
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1170846967
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1170846966}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 2134045980}
+ m_Father: {fileID: 1700281658}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1170846968
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1170846966}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7273bde5c1c224e26b0efa033fe287fd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ current: 0
+ prev: 0
+ pos: 0
+ dif: 0
+ offset: 0
+--- !u!1 &1197693693
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1197693694}
+ - component: {fileID: 1197693695}
+ m_Layer: 0
+ m_Name: _X
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1197693694
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1197693693}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 449180656}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1197693695
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1197693693}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1a921a8497aac47309e350980e0a7cf1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ cropDist: 0
+ ResponseTime: 0.2
+ touchMode: 1
+ X: 1
+ Y: 0
+--- !u!1 &1225276824
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1225276825}
+ - component: {fileID: 1225276826}
+ m_Layer: 0
+ m_Name: _Y
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1225276825
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1225276824}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 449180656}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1225276826
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1225276824}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1a921a8497aac47309e350980e0a7cf1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ cropDist: 0
+ ResponseTime: 0.2
+ touchMode: 1
+ X: 0
+ Y: 1
+--- !u!1 &1303527990
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1303527991}
+ m_Layer: 0
+ m_Name: Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1303527991
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1303527990}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0.01427269, y: 3.43, z: 9.54}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 378154551}
+ - {fileID: 1096093579}
+ - {fileID: 986942384}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1380528556
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1380528560}
+ - component: {fileID: 1380528559}
+ - component: {fileID: 1380528557}
+ m_Layer: 0
+ m_Name: FlareCamera
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1380528557
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1380528556}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_RenderShadows: 1
+ m_RequiresDepthTextureOption: 2
+ m_RequiresOpaqueTextureOption: 2
+ m_CameraType: 1
+ m_Cameras: []
+ m_RendererIndex: -1
+ m_VolumeLayerMask:
+ serializedVersion: 2
+ m_Bits: 1
+ m_VolumeTrigger: {fileID: 0}
+ m_RenderPostProcessing: 0
+ m_Antialiasing: 0
+ m_AntialiasingQuality: 2
+ m_StopNaN: 0
+ m_Dithering: 0
+ m_ClearDepth: 1
+ m_RequiresDepthTexture: 0
+ m_RequiresColorTexture: 0
+ m_Version: 2
+--- !u!20 &1380528559
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1380528556}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 2
+ field of view: 60
+ orthographic: 1
+ orthographic size: 1
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 256
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 1
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &1380528560
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1380528556}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -9.25, y: -0.38, z: -21.26}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1129909398}
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1607455291
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1607455295}
+ - component: {fileID: 1607455294}
+ - component: {fileID: 1607455293}
+ - component: {fileID: 1607455292}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1607455292
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1607455291}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1607455293
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1607455291}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1607455294
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1607455291}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1607455295
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1607455291}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.44, z: 0}
+ m_LocalScale: {x: 2, y: 2, z: 2}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1700281657
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1700281658}
+ - component: {fileID: 1700281659}
+ m_Layer: 0
+ m_Name: CameraRigY
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1700281658
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1700281657}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1170846967}
+ m_Father: {fileID: 969672462}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1700281659
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1700281657}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: caeefc16a0ffc48dd8f63c1c92e16f99, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ target: {fileID: 1225276825}
+--- !u!1 &1915971033
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1915971034}
+ - component: {fileID: 1915971035}
+ m_Layer: 0
+ m_Name: Spin
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1915971034
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1915971033}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 969672462}
+ m_Father: {fileID: 449180656}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1915971035
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1915971033}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1d89303dd8d2742a8aef9c0ad9d88e57, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Speed: {x: 0, y: 0, z: 0}
+--- !u!1 &2134045977
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2134045980}
+ - component: {fileID: 2134045979}
+ - component: {fileID: 2134045978}
+ - component: {fileID: 2134045981}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!81 &2134045978
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2134045977}
+ m_Enabled: 1
+--- !u!20 &2134045979
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2134045977}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: -1
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 1
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &2134045980
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2134045977}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.81, z: -6.03}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1170846967}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &2134045981
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2134045977}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_RenderShadows: 1
+ m_RequiresDepthTextureOption: 2
+ m_RequiresOpaqueTextureOption: 2
+ m_CameraType: 0
+ m_Cameras:
+ - {fileID: 1380528559}
+ m_RendererIndex: -1
+ m_VolumeLayerMask:
+ serializedVersion: 2
+ m_Bits: 1
+ m_VolumeTrigger: {fileID: 0}
+ m_RenderPostProcessing: 0
+ m_Antialiasing: 0
+ m_AntialiasingQuality: 2
+ m_StopNaN: 0
+ m_Dithering: 0
+ m_ClearDepth: 1
+ m_RequiresDepthTexture: 0
+ m_RequiresColorTexture: 0
+ m_Version: 2
diff --git a/Assets/LensFlare/LensFlare.unity.meta b/Assets/LensFlare/LensFlare.unity.meta
new file mode 100644
index 0000000..9472622
--- /dev/null
+++ b/Assets/LensFlare/LensFlare.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 771070f96846d7249a61c096aed388fb
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/LensFlare/LensFlareAdditive.shader b/Assets/LensFlare/LensFlareAdditive.shader
new file mode 100644
index 0000000..09e49ce
--- /dev/null
+++ b/Assets/LensFlare/LensFlareAdditive.shader
@@ -0,0 +1,66 @@
+// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
+
+Shader "Flares/Textured Flare Shader"
+{
+ Properties
+ {
+ _MainTex ( "Texture", 2D ) = "white" {}
+ }
+
+ SubShader
+ {
+ Tags { "Queue"="Transparent+100" "IgnoreProjector"="True" "RenderType"="Transparent" }
+
+ Pass
+ {
+ ZWrite Off
+ ZTest Always
+ Blend One One
+
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma fragmentoption ARB_precision_hint_fastest
+
+ #define TRANSFORM_TEX(tex,name) (tex.xy * name##_ST.xy + name##_ST.zw)
+
+ sampler2D _MainTex;
+ float4 _MainTex_ST;
+
+ struct VertInput
+ {
+ half4 vertex : POSITION;
+ half2 texcoord : TEXCOORD0;
+ fixed4 color : COLOR;
+ };
+
+ struct Verts
+ {
+ half4 pos : SV_POSITION;
+ half2 uv : TEXCOORD0;
+ fixed4 _color : COLOR;
+ };
+
+ Verts vert ( VertInput vert )
+ {
+ Verts v;
+
+ v._color = vert.color*(vert.color.a*3);
+ v.pos = UnityObjectToClipPos ( vert.vertex );
+ v.uv = TRANSFORM_TEX(vert.texcoord, _MainTex);
+
+ return v;
+ }
+
+ fixed4 frag ( Verts v ):COLOR
+ {
+ return tex2D ( _MainTex, v.uv ) * v._color;
+ }
+
+ ENDCG
+ }
+ }
+}
+
+
diff --git a/Assets/LensFlare/LensFlareAdditive.shader.meta b/Assets/LensFlare/LensFlareAdditive.shader.meta
new file mode 100644
index 0000000..8c47f2d
--- /dev/null
+++ b/Assets/LensFlare/LensFlareAdditive.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 3fe20b33ee6fc224c905c4db6180eff6
+ShaderImporter:
+ externalObjects: {}
+ defaultTextures: []
+ nonModifiableTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/LensFlare/LensFlareCommon.hlsl b/Assets/LensFlare/LensFlareCommon.hlsl
new file mode 100644
index 0000000..d5fd11f
--- /dev/null
+++ b/Assets/LensFlare/LensFlareCommon.hlsl
@@ -0,0 +1,161 @@
+struct appdata
+{
+ float4 vertex : POSITION;
+ float2 uv : TEXCOORD0;
+ float4 color : COLOR;
+
+ // LensFlare Data :
+ // * X = RayPos
+ // * Y = Rotation (< 0 = Auto)
+ // * ZW = Size (Width, Height) in Screen Height Ratio
+ nointerpolation float4 lensflare_data : TEXCOORD1;
+ // World Position (XYZ) and Radius(W) :
+ nointerpolation float4 worldPosRadius : TEXCOORD2;
+ // LensFlare FadeData :
+ // * X = Near Start Distance
+ // * Y = Near End Distance
+ // * Z = Far Start Distance
+ // * W = Far End Distance
+ nointerpolation float4 lensflare_fadeData : TEXCOORD3;
+};
+
+struct v2f
+{
+ float2 uv : TEXCOORD0;
+ float4 vertex : SV_POSITION;
+ float4 color : COLOR;
+};
+
+TEXTURE2D(_MainTex);
+SAMPLER(sampler_MainTex);
+TEXTURE2D(_CameraDepthTexture);
+SAMPLER(sampler_CameraDepthTexture);
+float _OccludedSizeScale;
+
+// thanks, internets
+static const uint DEPTH_SAMPLE_COUNT = 32;
+static float2 samples[DEPTH_SAMPLE_COUNT] = {
+ float2(0.658752441406,-0.0977704077959),
+ float2(0.505380451679,-0.862896621227),
+ float2(-0.678673446178,0.120453640819),
+ float2(-0.429447203875,-0.501827657223),
+ float2(-0.239791020751,0.577527523041),
+ float2(-0.666824519634,-0.745214760303),
+ float2(0.147858589888,-0.304675519466),
+ float2(0.0334240831435,0.263438135386),
+ float2(-0.164710089564,-0.17076793313),
+ float2(0.289210408926,0.0226817727089),
+ float2(0.109557107091,-0.993980526924),
+ float2(-0.999996423721,-0.00266989553347),
+ float2(0.804284930229,0.594243884087),
+ float2(0.240315377712,-0.653567194939),
+ float2(-0.313934922218,0.94944447279),
+ float2(0.386928111315,0.480902403593),
+ float2(0.979771316051,-0.200120285153),
+ float2(0.505873680115,-0.407543361187),
+ float2(0.617167234421,0.247610524297),
+ float2(-0.672138273716,0.740425646305),
+ float2(-0.305256098509,-0.952270269394),
+ float2(0.493631094694,0.869671344757),
+ float2(0.0982239097357,0.995164275169),
+ float2(0.976404249668,0.21595069766),
+ float2(-0.308868765831,0.150203511119),
+ float2(-0.586166858673,-0.19671548903),
+ float2(-0.912466347218,-0.409151613712),
+ float2(0.0959918648005,0.666364192963),
+ float2(0.813257217407,-0.581904232502),
+ float2(-0.914829492569,0.403840065002),
+ float2(-0.542099535465,0.432246923447),
+ float2(-0.106764614582,-0.618209302425)
+};
+
+float GetOcclusion(float2 screenPos, float depth, float radius, float ratio)
+{
+ float contrib = 0.0f;
+ float sample_Contrib = 1.0 / DEPTH_SAMPLE_COUNT;
+ float2 ratioScale = float2(1 / ratio, 1.0);
+ for (uint i = 0; i < DEPTH_SAMPLE_COUNT; i++)
+ {
+ float2 pos = screenPos + (samples[i] * radius * ratioScale);
+ pos = pos * 0.5 + 0.5;
+ pos.y = 1 - pos.y;
+ if (pos.x >= 0 && pos.x <= 1 && pos.y >= 0 && pos.y <= 1)
+ {
+ float sampledDepth = LinearEyeDepth(SAMPLE_TEXTURE2D_LOD(_CameraDepthTexture, sampler_CameraDepthTexture, pos, 0).r, _ZBufferParams);
+ //float sampledDepth = LinearEyeDepth(SampleCameraDepth(pos), _ZBufferParams);
+
+ if (sampledDepth >= depth)
+ contrib += sample_Contrib;
+ }
+ }
+ return contrib;
+}
+
+v2f vert(appdata v)
+{
+ v2f o;
+
+
+ float4 clip = TransformWorldToHClip(GetCameraRelativePositionWS(v.worldPosRadius.xyz));
+ float depth = clip.w; // wʵϵռµzֵҲռ¾ľ롣Ϊռ䵽ռľûŲľȼռ¾ľ롣
+
+ float3 cameraUp = normalize(mul(UNITY_MATRIX_V, float4(0, 1, 0, 0))).xyz;
+
+ float4 extent = TransformWorldToHClip(GetCameraRelativePositionWS(v.worldPosRadius.xyz + cameraUp * v.worldPosRadius.w));
+
+ // ǵõ̫Ļlensflareĵ
+ float2 screenPos = clip.xy / clip.w; // γõ[-1,1]
+ // lensflareϱԵĵ
+ float2 extentPos = extent.xy / extent.w; // γõ[-1,1]
+
+ float radius = distance(screenPos, extentPos);
+
+ // Ļ w/h
+ float ratio = _ScreenParams.x / _ScreenParams.y; // screenWidth/screenHeight
+ // ֱ
+ float occlusion = GetOcclusion(screenPos, depth - v.worldPosRadius.w, radius, ratio);
+
+ // õľ룬뵭ͷ
+ float4 d = v.lensflare_fadeData;
+ float distanceFade = saturate((depth - d.x) / (d.y - d.x));
+ distanceFade *= 1.0f - saturate((depth - d.z) / (d.w - d.z));
+
+ // position and rotate
+ float angle = v.lensflare_data.y;
+ if (angle < 0) // Automatic
+ {
+ float2 dir = normalize(screenPos);
+ angle = atan2(dir.y, dir.x) + 1.57079632675; // arbitrary, we need V to face the source, not U;
+ }
+
+ // ֱõƬСյƬС
+ float2 quad_size = lerp(_OccludedSizeScale, 1.0f, occlusion) * v.lensflare_data.zw;
+ if (distanceFade * occlusion == 0.0f) // if either one or other is zeroed
+ quad_size = float2(0, 0); // clip
+
+ float2 local = v.vertex.xy * quad_size;
+
+// תƬ
+// ʵfloat2x2 תR
+// {
+// cos(),-sin()
+// sin(),cos()
+// }
+// ϶Ļռ
+ local = float2(
+ local.x * cos(angle) + local.y * (-sin(angle)),
+ local.x * sin(angle) + local.y * cos(angle));
+
+ // adjust to correct ratio
+ local.x /= ratio; // ӦöӦĻţᱻ
+
+ float2 rayOffset = -screenPos * v.lensflare_data.x;
+ o.vertex.w = v.vertex.w;
+ o.vertex.xy = screenPos + local + rayOffset;
+
+ o.vertex.z = 1;
+ o.uv = v.uv;
+
+ o.color = v.color * occlusion * distanceFade * saturate(length(screenPos * 2));
+ return o;
+}
diff --git a/Assets/LensFlare/LensFlareCommon.hlsl.meta b/Assets/LensFlare/LensFlareCommon.hlsl.meta
new file mode 100644
index 0000000..32d1110
--- /dev/null
+++ b/Assets/LensFlare/LensFlareCommon.hlsl.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: d7717cafce4ea67418b9d06f74de457a
+ShaderImporter:
+ externalObjects: {}
+ defaultTextures: []
+ nonModifiableTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/LensFlare/New Scene.unity b/Assets/LensFlare/New Scene.unity
new file mode 100644
index 0000000..d82a634
--- /dev/null
+++ b/Assets/LensFlare/New Scene.unity
@@ -0,0 +1,612 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 512
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 1
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!43 &349238463
+Mesh:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: LensFlare (Directional Light)
+ serializedVersion: 10
+ m_SubMeshes:
+ - serializedVersion: 2
+ firstByte: 0
+ indexCount: 6
+ topology: 0
+ baseVertex: 0
+ firstVertex: 0
+ vertexCount: 4
+ localAABB:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 1, y: 1, z: 0}
+ - serializedVersion: 2
+ firstByte: 12
+ indexCount: 6
+ topology: 0
+ baseVertex: 0
+ firstVertex: 4
+ vertexCount: 4
+ localAABB:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 1, y: 1, z: 0}
+ - serializedVersion: 2
+ firstByte: 24
+ indexCount: 6
+ topology: 0
+ baseVertex: 0
+ firstVertex: 8
+ vertexCount: 4
+ localAABB:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 1, y: 1, z: 0}
+ m_Shapes:
+ vertices: []
+ shapes: []
+ channels: []
+ fullWeights: []
+ m_BindPose: []
+ m_BoneNameHashes:
+ m_RootBoneNameHash: 0
+ m_BonesAABB: []
+ m_VariableBoneCountWeights:
+ m_Data:
+ m_MeshCompression: 0
+ m_IsReadable: 1
+ m_KeepVertices: 1
+ m_KeepIndices: 1
+ m_IndexFormat: 0
+ m_IndexBuffer: 000001000200020003000000040005000600060007000400080009000a000a000b000800
+ m_VertexData:
+ serializedVersion: 3
+ m_VertexCount: 12
+ m_Channels:
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 3
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 12
+ format: 0
+ dimension: 4
+ - stream: 0
+ offset: 28
+ format: 0
+ dimension: 2
+ - stream: 0
+ offset: 36
+ format: 0
+ dimension: 4
+ - stream: 0
+ offset: 52
+ format: 0
+ dimension: 4
+ - stream: 0
+ offset: 68
+ format: 0
+ dimension: 4
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ m_DataSize: 1008
+ _typelessdata: 000080bf000080bf000000000000803f0000803f0000803f00000000000000000000803f00000000000000000000803f0000803f0000000000004040000000000000803f0000803f0000404000002041000048420000803f000080bf000000000000803f0000803f0000803f000000000000803f0000803f00000000000000000000803f0000803f0000000000004040000000000000803f0000803f0000404000002041000048420000803f0000803f000000000000803f0000803f0000803f000000000000803f0000000000000000000000000000803f0000803f0000000000004040000000000000803f0000803f000040400000204100004842000080bf0000803f000000000000803f0000803f0000803f00000000000000000000000000000000000000000000803f0000803f0000000000004040000000000000803f0000803f000040400000204100004842000080bf000080bf000000000000803f0000803f0000803f00000000000000000000803f000000000000000000000040000000400000000000004040000000000000803f0000803f0000404000002041000048420000803f000080bf000000000000803f0000803f0000803f000000000000803f0000803f000000000000000000000040000000400000000000004040000000000000803f0000803f0000404000002041000048420000803f0000803f000000000000803f0000803f0000803f000000000000803f00000000000000000000000000000040000000400000000000004040000000000000803f0000803f000040400000204100004842000080bf0000803f000000000000803f0000803f0000803f000000000000000000000000000000000000000000000040000000400000000000004040000000000000803f0000803f000040400000204100004842000080bf000080bf000000000000803f0000803f0000803f00000000000000000000803f000000000000000000004040000040400000000000004040000000000000803f0000803f0000404000002041000048420000803f000080bf000000000000803f0000803f0000803f000000000000803f0000803f000000000000000000004040000040400000000000004040000000000000803f0000803f0000404000002041000048420000803f0000803f000000000000803f0000803f0000803f000000000000803f00000000000000000000000000004040000040400000000000004040000000000000803f0000803f000040400000204100004842000080bf0000803f000000000000803f0000803f0000803f000000000000000000000000000000000000000000004040000040400000000000004040000000000000803f0000803f000040400000204100004842
+ m_CompressedMesh:
+ m_Vertices:
+ m_NumItems: 0
+ m_Range: 0
+ m_Start: 0
+ m_Data:
+ m_BitSize: 0
+ m_UV:
+ m_NumItems: 0
+ m_Range: 0
+ m_Start: 0
+ m_Data:
+ m_BitSize: 0
+ m_Normals:
+ m_NumItems: 0
+ m_Range: 0
+ m_Start: 0
+ m_Data:
+ m_BitSize: 0
+ m_Tangents:
+ m_NumItems: 0
+ m_Range: 0
+ m_Start: 0
+ m_Data:
+ m_BitSize: 0
+ m_Weights:
+ m_NumItems: 0
+ m_Data:
+ m_BitSize: 0
+ m_NormalSigns:
+ m_NumItems: 0
+ m_Data:
+ m_BitSize: 0
+ m_TangentSigns:
+ m_NumItems: 0
+ m_Data:
+ m_BitSize: 0
+ m_FloatColors:
+ m_NumItems: 0
+ m_Range: 0
+ m_Start: 0
+ m_Data:
+ m_BitSize: 0
+ m_BoneIndices:
+ m_NumItems: 0
+ m_Data:
+ m_BitSize: 0
+ m_Triangles:
+ m_NumItems: 0
+ m_Data:
+ m_BitSize: 0
+ m_UVInfo: 0
+ m_LocalAABB:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 1, y: 1, z: 1}
+ m_MeshUsageFlags: 0
+ m_BakedConvexCollisionMesh:
+ m_BakedTriangleCollisionMesh:
+ m_MeshMetrics[0]: 1
+ m_MeshMetrics[1]: 1
+ m_MeshOptimizationFlags: 1
+ m_StreamData:
+ serializedVersion: 2
+ offset: 0
+ size: 0
+ path:
+--- !u!1 &1426046382
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1426046384}
+ - component: {fileID: 1426046383}
+ - component: {fileID: 1426046387}
+ - component: {fileID: 1426046386}
+ - component: {fileID: 1426046385}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!108 &1426046383
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1426046382}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &1426046384
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1426046382}
+ m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!114 &1426046385
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1426046382}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3cf420f1fcf2c7745b6f448d60827c0d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_MeshRenderer: {fileID: 1426046386}
+ m_MeshFilter: {fileID: 1426046387}
+ m_Light: {fileID: 1426046383}
+ OcclusionRadius: 1
+ NearFadeStartDistance: 1
+ NearFadeEndDistance: 3
+ FarFadeStartDistance: 10
+ FarFadeEndDistance: 50
+ Flares:
+ - RayPosition: 0
+ Material: {fileID: 2100000, guid: a2538de606c59c04f9b9a86fe0869e48, type: 2}
+ Color: {r: 1, g: 1, b: 1, a: 0}
+ MultiplyByLightColor: 0
+ Size: {x: 1, y: 1}
+ Rotation: 0
+ AutoRotate: 0
+ - RayPosition: 0
+ Material: {fileID: 2100000, guid: a2538de606c59c04f9b9a86fe0869e48, type: 2}
+ Color: {r: 1, g: 1, b: 1, a: 0}
+ MultiplyByLightColor: 0
+ Size: {x: 2, y: 2}
+ Rotation: 0
+ AutoRotate: 0
+ - RayPosition: 0
+ Material: {fileID: 2100000, guid: a2538de606c59c04f9b9a86fe0869e48, type: 2}
+ Color: {r: 1, g: 1, b: 1, a: 0}
+ MultiplyByLightColor: 0
+ Size: {x: 3, y: 3}
+ Rotation: 0
+ AutoRotate: 0
+--- !u!23 &1426046386
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1426046382}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: a2538de606c59c04f9b9a86fe0869e48, type: 2}
+ - {fileID: 2100000, guid: a2538de606c59c04f9b9a86fe0869e48, type: 2}
+ - {fileID: 2100000, guid: a2538de606c59c04f9b9a86fe0869e48, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1426046387
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1426046382}
+ m_Mesh: {fileID: 349238463}
+--- !u!1 &1662339406
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1662339409}
+ - component: {fileID: 1662339408}
+ - component: {fileID: 1662339407}
+ - component: {fileID: 1662339410}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!81 &1662339407
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1662339406}
+ m_Enabled: 1
+--- !u!20 &1662339408
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1662339406}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: -1
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 1
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &1662339409
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1662339406}
+ m_LocalRotation: {x: -0.050297532, y: 0.94344944, z: 0.2807056, w: 0.16904962}
+ m_LocalPosition: {x: -3.2475343, y: -3.2678928, z: 5.378398}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1662339410
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1662339406}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_RenderShadows: 1
+ m_RequiresDepthTextureOption: 2
+ m_RequiresOpaqueTextureOption: 2
+ m_CameraType: 0
+ m_Cameras: []
+ m_RendererIndex: -1
+ m_VolumeLayerMask:
+ serializedVersion: 2
+ m_Bits: 1
+ m_VolumeTrigger: {fileID: 0}
+ m_RenderPostProcessing: 0
+ m_Antialiasing: 0
+ m_AntialiasingQuality: 2
+ m_StopNaN: 0
+ m_Dithering: 0
+ m_ClearDepth: 1
+ m_RequiresDepthTexture: 0
+ m_RequiresColorTexture: 0
+ m_Version: 2
diff --git a/Assets/LensFlare/New Scene.unity.meta b/Assets/LensFlare/New Scene.unity.meta
new file mode 100644
index 0000000..bd14c01
--- /dev/null
+++ b/Assets/LensFlare/New Scene.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 10c4f70bad111ce40893bc4810bed116
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant: