diff --git a/Editor/Presets.meta b/Editor/Presets.meta new file mode 100644 index 0000000..7fe2572 --- /dev/null +++ b/Editor/Presets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7229415afe1bae746b6716afb117d62d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/Presets/GridUnlit.asset b/Editor/Presets/GridUnlit.asset new file mode 100644 index 0000000..0cde4de --- /dev/null +++ b/Editor/Presets/GridUnlit.asset @@ -0,0 +1,28 @@ +%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: 1aa272ccd1306c545b68254a527f8025, type: 3} + m_Name: Overdraw + m_EditorClassIdentifier: + content: + m_Text: + m_Image: {fileID: 10309, guid: 0000000000000000f000000000000000, type: 0} + m_Tooltip: + shader: {fileID: 4800000, guid: 9f96928510529524c9190ccf618ceaf8, type: 3} + replacementTag: + parameters: + - m_name: _RS_Color + m_parameterType: 2 + m_texture: {fileID: 0} + m_vector: {x: 0, y: 0, z: 0, w: 0} + m_color: {r: 1, g: 0, b: 0, a: 0.14901961} + m_float: 0 + m_int: 0 diff --git a/Editor/Presets/GridUnlit.asset.meta b/Editor/Presets/GridUnlit.asset.meta new file mode 100644 index 0000000..ba04fc3 --- /dev/null +++ b/Editor/Presets/GridUnlit.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b2926fa37a86d0041b4a404ed8a191be +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/Presets/Icons.meta b/Editor/Presets/Icons.meta new file mode 100644 index 0000000..c6e593c --- /dev/null +++ b/Editor/Presets/Icons.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c18f763c9dc6b4b45834233f9a7ae40b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/Presets/Icons/Grid.png b/Editor/Presets/Icons/Grid.png new file mode 100644 index 0000000..6acbe32 Binary files /dev/null and b/Editor/Presets/Icons/Grid.png differ diff --git a/Editor/Presets/Icons/Grid.png.meta b/Editor/Presets/Icons/Grid.png.meta new file mode 100644 index 0000000..7a59a58 --- /dev/null +++ b/Editor/Presets/Icons/Grid.png.meta @@ -0,0 +1,144 @@ +fileFormatVersion: 2 +guid: 258ec05c639dc22449b3ca11da10d2ae +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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: 0 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + 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: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + 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: 32 + 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/Editor/Presets/Icons/Overdraw.png b/Editor/Presets/Icons/Overdraw.png new file mode 100644 index 0000000..20197cc Binary files /dev/null and b/Editor/Presets/Icons/Overdraw.png differ diff --git a/Editor/Presets/Icons/Overdraw.png.meta b/Editor/Presets/Icons/Overdraw.png.meta new file mode 100644 index 0000000..ac953aa --- /dev/null +++ b/Editor/Presets/Icons/Overdraw.png.meta @@ -0,0 +1,144 @@ +fileFormatVersion: 2 +guid: 0723191ce0fb9d44ebece6c36fe4776f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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: 0 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + 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: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + 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: 32 + 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/Editor/Presets/Overdraw.asset b/Editor/Presets/Overdraw.asset new file mode 100644 index 0000000..0cde4de --- /dev/null +++ b/Editor/Presets/Overdraw.asset @@ -0,0 +1,28 @@ +%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: 1aa272ccd1306c545b68254a527f8025, type: 3} + m_Name: Overdraw + m_EditorClassIdentifier: + content: + m_Text: + m_Image: {fileID: 10309, guid: 0000000000000000f000000000000000, type: 0} + m_Tooltip: + shader: {fileID: 4800000, guid: 9f96928510529524c9190ccf618ceaf8, type: 3} + replacementTag: + parameters: + - m_name: _RS_Color + m_parameterType: 2 + m_texture: {fileID: 0} + m_vector: {x: 0, y: 0, z: 0, w: 0} + m_color: {r: 1, g: 0, b: 0, a: 0.14901961} + m_float: 0 + m_int: 0 diff --git a/Editor/Presets/Overdraw.asset.meta b/Editor/Presets/Overdraw.asset.meta new file mode 100644 index 0000000..ca4c9b0 --- /dev/null +++ b/Editor/Presets/Overdraw.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5fadf2cd786f22b4da57b09959a9887f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Shaders.meta b/Runtime/Shaders.meta new file mode 100644 index 0000000..87b803e --- /dev/null +++ b/Runtime/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 936c0aa5159b6494faf44ebe85c869f1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Shaders/Overdraw.shader b/Runtime/Shaders/Overdraw.shader new file mode 100644 index 0000000..e93d9c3 --- /dev/null +++ b/Runtime/Shaders/Overdraw.shader @@ -0,0 +1,49 @@ +Shader "Hidden/Overdraw" +{ + SubShader + { + Tags + { + "RenderType"="Transparent" + "Queue"="Transparent" + } + + ZWrite Off + ZTest Always + Blend SrcAlpha One + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + }; + + struct v2f + { + float4 vertex : SV_POSITION; + }; + + v2f vert (appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + return o; + } + + fixed4 _RS_Color; + + fixed4 frag (v2f i) : SV_Target + { + return _RS_Color; + } + ENDCG + } + } +} \ No newline at end of file diff --git a/Runtime/Shaders/Overdraw.shader.meta b/Runtime/Shaders/Overdraw.shader.meta new file mode 100644 index 0000000..ed472f7 --- /dev/null +++ b/Runtime/Shaders/Overdraw.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 9f96928510529524c9190ccf618ceaf8 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Shaders/TriPlanarTextureUnlit.shader b/Runtime/Shaders/TriPlanarTextureUnlit.shader new file mode 100644 index 0000000..2a333d3 --- /dev/null +++ b/Runtime/Shaders/TriPlanarTextureUnlit.shader @@ -0,0 +1,79 @@ +// https://www.ronja-tutorials.com/post/010-triplanar-mapping/ + +Shader "Hidden/TriPlanarTexture" +{ + SubShader + { + Tags { "RenderType"="Opaque" } + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float3 normal : NORMAL; + }; + + struct v2f + { + float4 vertex : SV_POSITION; + float3 worldPos : TEXCOORD0; + float3 normal : TEXCOORD1; + }; + + sampler2D _RS_Texture; + float4 _RS_Texture_ST; + float _RS_Float; + + v2f vert (appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.worldPos = mul(unity_ObjectToWorld, v.vertex); + o.normal = normalize(mul(v.normal, (float3x3)unity_WorldToObject)); + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + //calculate UV coordinates for three projections + float2 uv_front = TRANSFORM_TEX(i.worldPos.xy, _RS_Texture); + float2 uv_side = TRANSFORM_TEX(i.worldPos.zy, _RS_Texture); + float2 uv_top = TRANSFORM_TEX(i.worldPos.xz, _RS_Texture); + + //read texture at uv position of the three projections + fixed4 col_front = tex2D(_RS_Texture, uv_front); + fixed4 col_side = tex2D(_RS_Texture, uv_side); + fixed4 col_top = tex2D(_RS_Texture, uv_top); + + //generate weights from world normals + float3 weights = i.normal; + //show texture on both sides of the object (positive and negative) + weights = abs(weights); + //make the transition sharper + weights = pow(weights, _RS_Float); + //make it so the sum of all components is 1 + weights = weights / (weights.x + weights.y + weights.z); + + //combine weights with projected colors + col_front *= weights.z; + col_side *= weights.x; + col_top *= weights.y; + + //combine the projected colors + fixed4 col = col_front + col_side + col_top; + + return col; + + // return fixed4(abs(i.normal.xyz), 1); + } + ENDCG + } + } +} diff --git a/Runtime/Shaders/TriPlanarTextureUnlit.shader.meta b/Runtime/Shaders/TriPlanarTextureUnlit.shader.meta new file mode 100644 index 0000000..7ac4615 --- /dev/null +++ b/Runtime/Shaders/TriPlanarTextureUnlit.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 938a5e8d620c4b943bb6b2b15202678c +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Textures.meta b/Runtime/Textures.meta new file mode 100644 index 0000000..cfd19d7 --- /dev/null +++ b/Runtime/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fd801fc8bd053b94aa1a28ffc6cfd137 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Textures/Checker_01.bmp b/Runtime/Textures/Checker_01.bmp new file mode 100644 index 0000000..293c8b8 Binary files /dev/null and b/Runtime/Textures/Checker_01.bmp differ diff --git a/Runtime/Textures/Checker_01.bmp.meta b/Runtime/Textures/Checker_01.bmp.meta new file mode 100644 index 0000000..bbe03e5 --- /dev/null +++ b/Runtime/Textures/Checker_01.bmp.meta @@ -0,0 +1,144 @@ +fileFormatVersion: 2 +guid: 60a6c65bf59247d41bcc18553d97d2c5 +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 + flipbookRows: 1 + flipbookColumns: 1 + 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: