diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index 5e2b41f..25257d4 100755 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -562,6 +562,7 @@ m_Script: {fileID: 11500000, guid: 92449bf555243f645ac1daa04cf9cd89, type: 3} m_Name: m_EditorClassIdentifier: + DepthShader: {fileID: 4800000, guid: 3dc942d4c3932f747989357e5cff6e75, type: 3} SeeMap: {fileID: 0} --- !u!4 &1253261068 Transform: diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index 5e2b41f..25257d4 100755 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -562,6 +562,7 @@ m_Script: {fileID: 11500000, guid: 92449bf555243f645ac1daa04cf9cd89, type: 3} m_Name: m_EditorClassIdentifier: + DepthShader: {fileID: 4800000, guid: 3dc942d4c3932f747989357e5cff6e75, type: 3} SeeMap: {fileID: 0} --- !u!4 &1253261068 Transform: diff --git a/Assets/Scripts/CubeMap.cs b/Assets/Scripts/CubeMap.cs index ca860c6..7acbdb4 100755 --- a/Assets/Scripts/CubeMap.cs +++ b/Assets/Scripts/CubeMap.cs @@ -1,9 +1,12 @@ using System.Collections; using System.Collections.Generic; +using System.IO; using UnityEngine; public class CubeMap : MonoBehaviour { + public Shader DepthShader; + private Camera see; public RenderTexture SeeMap; @@ -11,25 +14,77 @@ void Start() { see = gameObject.AddComponent(); + see.aspect = 1; + see.fieldOfView = 90; + see.enabled = false; see.farClipPlane = 20; see.nearClipPlane = 0.1f; - SeeMap = new RenderTexture(1024, 1024, 16, RenderTextureFormat.Depth); - SeeMap.dimension = UnityEngine.Rendering.TextureDimension.Cube; + SeeMap = new RenderTexture(2048, 1024, 32, RenderTextureFormat.Depth); + + see.targetTexture = SeeMap; } + private Texture2D tex = null; + // Update is called once per frame void Update() { - see.targetTexture = SeeMap; - if (!see.RenderToCubemap(SeeMap)) - { - Debug.LogError("FAILED :("); - } - see.targetTexture = null; + //see.SetReplacementShader(DepthShader, ""); //see.Render(); + //if (!see.RenderToCubemap(SeeMap)) + //{ + // Debug.LogError("FAILED :("); + //} + + //see.ResetReplacementShader(); + //see.targetTexture = null; + + //see.Render(); + + //if (tex == null) + //{ + // tex = new Texture2D(1024, 1024, TextureFormat.ARGB32, false); + //} + // + // + //RenderTexture.active = SeeMap; + //tex.ReadPixels(new Rect(0, 0, 1024, 1024), 0, 0); + //RenderTexture.active = null; + //byte[] png = tex.EncodeToPNG(); + //FileStream f = File.Open("test.png", FileMode.OpenOrCreate); + //f.Write(png, 0, png.Length); + //f.Close(); + + see.transform.forward = Vector3.forward; + see.transform.up = Vector3.up; + see.rect = new Rect(0, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.right; + see.rect = new Rect(0.25f, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.back; + see.rect = new Rect(0.5f, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.left; + see.rect = new Rect(0.75f, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.down; + see.transform.up = Vector3.forward; + see.rect = new Rect(0, 0, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.up; + see.transform.up = Vector3.back; + see.rect = new Rect(0.25f, 0, 0.25f, 0.5f); + see.Render(); + } } diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index 5e2b41f..25257d4 100755 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -562,6 +562,7 @@ m_Script: {fileID: 11500000, guid: 92449bf555243f645ac1daa04cf9cd89, type: 3} m_Name: m_EditorClassIdentifier: + DepthShader: {fileID: 4800000, guid: 3dc942d4c3932f747989357e5cff6e75, type: 3} SeeMap: {fileID: 0} --- !u!4 &1253261068 Transform: diff --git a/Assets/Scripts/CubeMap.cs b/Assets/Scripts/CubeMap.cs index ca860c6..7acbdb4 100755 --- a/Assets/Scripts/CubeMap.cs +++ b/Assets/Scripts/CubeMap.cs @@ -1,9 +1,12 @@ using System.Collections; using System.Collections.Generic; +using System.IO; using UnityEngine; public class CubeMap : MonoBehaviour { + public Shader DepthShader; + private Camera see; public RenderTexture SeeMap; @@ -11,25 +14,77 @@ void Start() { see = gameObject.AddComponent(); + see.aspect = 1; + see.fieldOfView = 90; + see.enabled = false; see.farClipPlane = 20; see.nearClipPlane = 0.1f; - SeeMap = new RenderTexture(1024, 1024, 16, RenderTextureFormat.Depth); - SeeMap.dimension = UnityEngine.Rendering.TextureDimension.Cube; + SeeMap = new RenderTexture(2048, 1024, 32, RenderTextureFormat.Depth); + + see.targetTexture = SeeMap; } + private Texture2D tex = null; + // Update is called once per frame void Update() { - see.targetTexture = SeeMap; - if (!see.RenderToCubemap(SeeMap)) - { - Debug.LogError("FAILED :("); - } - see.targetTexture = null; + //see.SetReplacementShader(DepthShader, ""); //see.Render(); + //if (!see.RenderToCubemap(SeeMap)) + //{ + // Debug.LogError("FAILED :("); + //} + + //see.ResetReplacementShader(); + //see.targetTexture = null; + + //see.Render(); + + //if (tex == null) + //{ + // tex = new Texture2D(1024, 1024, TextureFormat.ARGB32, false); + //} + // + // + //RenderTexture.active = SeeMap; + //tex.ReadPixels(new Rect(0, 0, 1024, 1024), 0, 0); + //RenderTexture.active = null; + //byte[] png = tex.EncodeToPNG(); + //FileStream f = File.Open("test.png", FileMode.OpenOrCreate); + //f.Write(png, 0, png.Length); + //f.Close(); + + see.transform.forward = Vector3.forward; + see.transform.up = Vector3.up; + see.rect = new Rect(0, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.right; + see.rect = new Rect(0.25f, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.back; + see.rect = new Rect(0.5f, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.left; + see.rect = new Rect(0.75f, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.down; + see.transform.up = Vector3.forward; + see.rect = new Rect(0, 0, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.up; + see.transform.up = Vector3.back; + see.rect = new Rect(0.25f, 0, 0.25f, 0.5f); + see.Render(); + } } diff --git a/Assets/Shaders.meta b/Assets/Shaders.meta index 70893e5..eda8493 100755 --- a/Assets/Shaders.meta +++ b/Assets/Shaders.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c265c9432d0c14a4e82a82a09f9c73d9 +guid: 3956e44702687f14c92df27c4797a930 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index 5e2b41f..25257d4 100755 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -562,6 +562,7 @@ m_Script: {fileID: 11500000, guid: 92449bf555243f645ac1daa04cf9cd89, type: 3} m_Name: m_EditorClassIdentifier: + DepthShader: {fileID: 4800000, guid: 3dc942d4c3932f747989357e5cff6e75, type: 3} SeeMap: {fileID: 0} --- !u!4 &1253261068 Transform: diff --git a/Assets/Scripts/CubeMap.cs b/Assets/Scripts/CubeMap.cs index ca860c6..7acbdb4 100755 --- a/Assets/Scripts/CubeMap.cs +++ b/Assets/Scripts/CubeMap.cs @@ -1,9 +1,12 @@ using System.Collections; using System.Collections.Generic; +using System.IO; using UnityEngine; public class CubeMap : MonoBehaviour { + public Shader DepthShader; + private Camera see; public RenderTexture SeeMap; @@ -11,25 +14,77 @@ void Start() { see = gameObject.AddComponent(); + see.aspect = 1; + see.fieldOfView = 90; + see.enabled = false; see.farClipPlane = 20; see.nearClipPlane = 0.1f; - SeeMap = new RenderTexture(1024, 1024, 16, RenderTextureFormat.Depth); - SeeMap.dimension = UnityEngine.Rendering.TextureDimension.Cube; + SeeMap = new RenderTexture(2048, 1024, 32, RenderTextureFormat.Depth); + + see.targetTexture = SeeMap; } + private Texture2D tex = null; + // Update is called once per frame void Update() { - see.targetTexture = SeeMap; - if (!see.RenderToCubemap(SeeMap)) - { - Debug.LogError("FAILED :("); - } - see.targetTexture = null; + //see.SetReplacementShader(DepthShader, ""); //see.Render(); + //if (!see.RenderToCubemap(SeeMap)) + //{ + // Debug.LogError("FAILED :("); + //} + + //see.ResetReplacementShader(); + //see.targetTexture = null; + + //see.Render(); + + //if (tex == null) + //{ + // tex = new Texture2D(1024, 1024, TextureFormat.ARGB32, false); + //} + // + // + //RenderTexture.active = SeeMap; + //tex.ReadPixels(new Rect(0, 0, 1024, 1024), 0, 0); + //RenderTexture.active = null; + //byte[] png = tex.EncodeToPNG(); + //FileStream f = File.Open("test.png", FileMode.OpenOrCreate); + //f.Write(png, 0, png.Length); + //f.Close(); + + see.transform.forward = Vector3.forward; + see.transform.up = Vector3.up; + see.rect = new Rect(0, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.right; + see.rect = new Rect(0.25f, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.back; + see.rect = new Rect(0.5f, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.left; + see.rect = new Rect(0.75f, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.down; + see.transform.up = Vector3.forward; + see.rect = new Rect(0, 0, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.up; + see.transform.up = Vector3.back; + see.rect = new Rect(0.25f, 0, 0.25f, 0.5f); + see.Render(); + } } diff --git a/Assets/Shaders.meta b/Assets/Shaders.meta index 70893e5..eda8493 100755 --- a/Assets/Shaders.meta +++ b/Assets/Shaders.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c265c9432d0c14a4e82a82a09f9c73d9 +guid: 3956e44702687f14c92df27c4797a930 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Shaders/CubeDepthShader.shader b/Assets/Shaders/CubeDepthShader.shader new file mode 100755 index 0000000..acb5bbc --- /dev/null +++ b/Assets/Shaders/CubeDepthShader.shader @@ -0,0 +1,55 @@ +Shader "Custom/NewSurfaceShader" +{ + Properties + { + _Color ("Color", Color) = (1,1,1,1) + _MainTex ("Albedo (RGB)", 2D) = "white" {} + _Glossiness ("Smoothness", Range(0,1)) = 0.5 + _Metallic ("Metallic", Range(0,1)) = 0.0 + _CamPos("Camera Position", Vector) = (0,0,0,0) + } + SubShader + { + Tags { "RenderType"="Opaque" } + LOD 200 + + CGPROGRAM + // Physically based Standard lighting model, and enable shadows on all light types + #pragma surface surf Standard fullforwardshadows + + // Use shader model 3.0 target, to get nicer looking lighting + #pragma target 3.0 + + sampler2D _MainTex; + + struct Input + { + float2 uv_MainTex; + float3 worldPos; + }; + + half _Glossiness; + half _Metallic; + fixed4 _Color; + + // Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader. + // See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing. + // #pragma instancing_options assumeuniformscaling + UNITY_INSTANCING_BUFFER_START(Props) + // put more per-instance properties here + UNITY_INSTANCING_BUFFER_END(Props) + + void surf (Input IN, inout SurfaceOutputStandard o) + { + // Albedo comes from a texture tinted by color + fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color; + o.Albedo = c.rgb; + // Metallic and smoothness come from slider variables + o.Metallic = _Metallic; + o.Smoothness = _Glossiness; + o.Alpha = c.a; + } + ENDCG + } + FallBack "Diffuse" +} diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index 5e2b41f..25257d4 100755 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -562,6 +562,7 @@ m_Script: {fileID: 11500000, guid: 92449bf555243f645ac1daa04cf9cd89, type: 3} m_Name: m_EditorClassIdentifier: + DepthShader: {fileID: 4800000, guid: 3dc942d4c3932f747989357e5cff6e75, type: 3} SeeMap: {fileID: 0} --- !u!4 &1253261068 Transform: diff --git a/Assets/Scripts/CubeMap.cs b/Assets/Scripts/CubeMap.cs index ca860c6..7acbdb4 100755 --- a/Assets/Scripts/CubeMap.cs +++ b/Assets/Scripts/CubeMap.cs @@ -1,9 +1,12 @@ using System.Collections; using System.Collections.Generic; +using System.IO; using UnityEngine; public class CubeMap : MonoBehaviour { + public Shader DepthShader; + private Camera see; public RenderTexture SeeMap; @@ -11,25 +14,77 @@ void Start() { see = gameObject.AddComponent(); + see.aspect = 1; + see.fieldOfView = 90; + see.enabled = false; see.farClipPlane = 20; see.nearClipPlane = 0.1f; - SeeMap = new RenderTexture(1024, 1024, 16, RenderTextureFormat.Depth); - SeeMap.dimension = UnityEngine.Rendering.TextureDimension.Cube; + SeeMap = new RenderTexture(2048, 1024, 32, RenderTextureFormat.Depth); + + see.targetTexture = SeeMap; } + private Texture2D tex = null; + // Update is called once per frame void Update() { - see.targetTexture = SeeMap; - if (!see.RenderToCubemap(SeeMap)) - { - Debug.LogError("FAILED :("); - } - see.targetTexture = null; + //see.SetReplacementShader(DepthShader, ""); //see.Render(); + //if (!see.RenderToCubemap(SeeMap)) + //{ + // Debug.LogError("FAILED :("); + //} + + //see.ResetReplacementShader(); + //see.targetTexture = null; + + //see.Render(); + + //if (tex == null) + //{ + // tex = new Texture2D(1024, 1024, TextureFormat.ARGB32, false); + //} + // + // + //RenderTexture.active = SeeMap; + //tex.ReadPixels(new Rect(0, 0, 1024, 1024), 0, 0); + //RenderTexture.active = null; + //byte[] png = tex.EncodeToPNG(); + //FileStream f = File.Open("test.png", FileMode.OpenOrCreate); + //f.Write(png, 0, png.Length); + //f.Close(); + + see.transform.forward = Vector3.forward; + see.transform.up = Vector3.up; + see.rect = new Rect(0, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.right; + see.rect = new Rect(0.25f, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.back; + see.rect = new Rect(0.5f, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.left; + see.rect = new Rect(0.75f, 0.5f, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.down; + see.transform.up = Vector3.forward; + see.rect = new Rect(0, 0, 0.25f, 0.5f); + see.Render(); + + see.transform.forward = Vector3.up; + see.transform.up = Vector3.back; + see.rect = new Rect(0.25f, 0, 0.25f, 0.5f); + see.Render(); + } } diff --git a/Assets/Shaders.meta b/Assets/Shaders.meta index 70893e5..eda8493 100755 --- a/Assets/Shaders.meta +++ b/Assets/Shaders.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c265c9432d0c14a4e82a82a09f9c73d9 +guid: 3956e44702687f14c92df27c4797a930 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Shaders/CubeDepthShader.shader b/Assets/Shaders/CubeDepthShader.shader new file mode 100755 index 0000000..acb5bbc --- /dev/null +++ b/Assets/Shaders/CubeDepthShader.shader @@ -0,0 +1,55 @@ +Shader "Custom/NewSurfaceShader" +{ + Properties + { + _Color ("Color", Color) = (1,1,1,1) + _MainTex ("Albedo (RGB)", 2D) = "white" {} + _Glossiness ("Smoothness", Range(0,1)) = 0.5 + _Metallic ("Metallic", Range(0,1)) = 0.0 + _CamPos("Camera Position", Vector) = (0,0,0,0) + } + SubShader + { + Tags { "RenderType"="Opaque" } + LOD 200 + + CGPROGRAM + // Physically based Standard lighting model, and enable shadows on all light types + #pragma surface surf Standard fullforwardshadows + + // Use shader model 3.0 target, to get nicer looking lighting + #pragma target 3.0 + + sampler2D _MainTex; + + struct Input + { + float2 uv_MainTex; + float3 worldPos; + }; + + half _Glossiness; + half _Metallic; + fixed4 _Color; + + // Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader. + // See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing. + // #pragma instancing_options assumeuniformscaling + UNITY_INSTANCING_BUFFER_START(Props) + // put more per-instance properties here + UNITY_INSTANCING_BUFFER_END(Props) + + void surf (Input IN, inout SurfaceOutputStandard o) + { + // Albedo comes from a texture tinted by color + fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color; + o.Albedo = c.rgb; + // Metallic and smoothness come from slider variables + o.Metallic = _Metallic; + o.Smoothness = _Glossiness; + o.Alpha = c.a; + } + ENDCG + } + FallBack "Diffuse" +} diff --git a/Assets/Shaders/CubeDepthShader.shader.meta b/Assets/Shaders/CubeDepthShader.shader.meta new file mode 100755 index 0000000..d6efb80 --- /dev/null +++ b/Assets/Shaders/CubeDepthShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 883e3addcc6cced41b5b1afe0eea5a18 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: