released on steam, adding genedrive

This commit is contained in:
ntr committed 2022-06-03 15:04:50 +10:00
1 parent d36158bc48
commit 373baed62b
42 files changed
+5905 -318

No files matched your search

+24 -37
View File
@@ -38,7 +38,7 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.35961914, g: 0.35961914, b: 0.35961914, a: 1}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
@@ -298,7 +298,7 @@ MonoBehaviour:
m_HorizontalOverflow: 1
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Brightness
m_Text: Resonance
--- !u!222 &279714470
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -502,7 +502,7 @@ MonoBehaviour:
m_HorizontalOverflow: 1
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Wildness
m_Text: Generations
--- !u!222 &397943721
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -534,7 +534,6 @@ GameObject:
- component: {fileID: 449249018}
- component: {fileID: 449249017}
- component: {fileID: 449249016}
- component: {fileID: 449249020}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
@@ -626,18 +625,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!114 &449249020
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 449249014}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3a97ccee1c1df8e47bdc9e321a823b3d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &523739710
GameObject:
m_ObjectHideFlags: 0
@@ -835,7 +822,7 @@ MonoBehaviour:
m_HorizontalOverflow: 1
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Zoom
m_Text: Grid
--- !u!222 &650114448
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -1038,7 +1025,7 @@ GameObject:
- component: {fileID: 773926870}
- component: {fileID: 773926871}
m_Layer: 5
m_Name: Zoom
m_Name: Grid
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -1112,16 +1099,16 @@ MonoBehaviour:
m_FillRect: {fileID: 1533823375}
m_HandleRect: {fileID: 1175658974}
m_Direction: 0
m_MinValue: -2
m_MaxValue: 2
m_MinValue: 3
m_MaxValue: 10
m_WholeNumbers: 0
m_Value: -0.52
m_Value: 5
m_OnValueChanged:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 449249020}
m_TargetAssemblyTypeName: LuigiPropertyBinder, Assembly-CSharp
m_MethodName: UpdateZoom
- m_Target: {fileID: 2035115419}
m_TargetAssemblyTypeName: BotanyBinder, Assembly-CSharp
m_MethodName: UpdateGrid
m_Mode: 2
m_Arguments:
m_ObjectArgument: {fileID: 773926871}
@@ -1438,7 +1425,7 @@ GameObject:
- component: {fileID: 938799568}
- component: {fileID: 938799570}
m_Layer: 5
m_Name: Wildness
m_Name: Generations
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -1514,14 +1501,14 @@ MonoBehaviour:
m_Direction: 0
m_MinValue: 1
m_MaxValue: 10
m_WholeNumbers: 0
m_Value: 4.5
m_WholeNumbers: 1
m_Value: 1
m_OnValueChanged:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 449249020}
m_TargetAssemblyTypeName: LuigiPropertyBinder, Assembly-CSharp
m_MethodName: UpdateWildness
- m_Target: {fileID: 2035115419}
m_TargetAssemblyTypeName: BotanyBinder, Assembly-CSharp
m_MethodName: UpdateIterations
m_Mode: 2
m_Arguments:
m_ObjectArgument: {fileID: 938799570}
@@ -2438,7 +2425,7 @@ GameObject:
- component: {fileID: 2099950028}
- component: {fileID: 2099950029}
m_Layer: 5
m_Name: Brightness
m_Name: Resonance
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -2512,16 +2499,16 @@ MonoBehaviour:
m_FillRect: {fileID: 1449240055}
m_HandleRect: {fileID: 378214597}
m_Direction: 0
m_MinValue: 1
m_MaxValue: 8
m_MinValue: 0
m_MaxValue: 2
m_WholeNumbers: 0
m_Value: 4
m_Value: 1
m_OnValueChanged:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 449249020}
m_TargetAssemblyTypeName: LuigiPropertyBinder, Assembly-CSharp
m_MethodName: UpdateBrightness
- m_Target: {fileID: 2035115419}
m_TargetAssemblyTypeName: BotanyBinder, Assembly-CSharp
m_MethodName: UpdateResonance
m_Mode: 2
m_Arguments:
m_ObjectArgument: {fileID: 2099950029}
+6 -2
View File
@@ -142,7 +142,7 @@ Material:
- _AlphaToMaskInspectorValue: 0
- _Anisotropy: 0
- _BlendMode: 0
- _Brightness: 3.85
- _Brightness: 0
- _CoatMask: 0
- _CullMode: 2
- _CullModeForward: 2
@@ -168,6 +168,8 @@ Material:
- _EnableFogOnTransparent: 1
- _EnableGeometricSpecularAA: 0
- _EnergyConservingSpecularColor: 1
- _Glob: 1.2242857
- _Grid: 5.450001
- _HeightAmplitude: 0.02
- _HeightCenter: 0.5
- _HeightMapParametrization: 0
@@ -181,6 +183,7 @@ Material:
- _Ior: 1.5
- _IridescenceMask: 1
- _IridescenceThickness: 1
- _Iterations: 8
- _LinkDetailsWithBase: 1
- _Magic: 65.6
- _MaterialID: 1
@@ -199,6 +202,7 @@ Material:
- _ReceivesSSR: 1
- _ReceivesSSRTransparent: 0
- _RefractionModel: 0
- _Resonance: 0.24285714
- _Smoothness: 0.5
- _SmoothnessRemapMax: 1
- _SmoothnessRemapMin: 0
@@ -235,7 +239,7 @@ Material:
- _UVEmissive: 0
- _UseEmissiveIntensity: 0
- _UseShadowThreshold: 0
- _Wildness: 0.593
- _Wildness: 0.2
- _Wow: 4
- _ZTestDepthEqualForOpaque: 3
- _ZTestGBuffer: 4
+18 -14
View File
@@ -6,9 +6,9 @@ Shader "FullScreen/Botany"
_ThemeTexture("ThemeTexture", 2D) = "white" {}
_SpectrumSize("SpectrumSize", float) = 16
_Zoom("Zoom", range(1, 10)) = 5
_Wildness("Wildness", range(0.2, 2.0)) = 0.8
_Brightness("Brightness", range(1, 10)) = 4.0
_Grid("Grid", range(3, 10)) = 5
_Iterations("Iterations", range(1, 10)) = 6
_Resonance("Resonance", range(0, 3)) = 1
}
HLSLINCLUDE
@@ -22,9 +22,10 @@ Shader "FullScreen/Botany"
// here we go...
sampler2D _SpectrumTexture;
sampler2D _ThemeTexture;
float _Zoom;
float _Wildness;
float _Brightness;
float _Resonance;
float _Grid;
float _Iterations;
float material;
float time;
@@ -50,7 +51,7 @@ Shader "FullScreen/Botany"
// Inigo Quilez
// https://iquilezles.org/articles/distfunctions
float smin(float d1, float d2, float k) {
float h = clamp(0.5 + bass * (d2-d1) / k, 0.0, 1.0);
float h = clamp(0.5 + 0.5 * (d2-d1) / k, 0.0, 1.0);
return lerp(d2, d1, h) - k*h*(1.0-h);
}
@@ -74,7 +75,7 @@ Shader "FullScreen/Botany"
float t = time * 1.0 + rng * 2.9;
// domain repetition
float3 grid = float3(_Zoom, _Zoom, _Zoom);
float3 grid = float3(_Grid, _Grid, _Grid);
float3 cell = floor(p/grid);
p = repeat(p, grid);
@@ -88,18 +89,17 @@ Shader "FullScreen/Botany"
float size = sin(rng*3.14);
// stretch sphere
float wave = sin(-dp*1.+t+hash13(cell)*6.28)*.5;
// float wave = sin(-dp*1.+t+hash13(cell)*6.28)*.5;
float wave = sin(-dp*_Resonance+t+hash13(cell)*6.28);
// kaleidoscopic iterated function
const int count = 4;
// float a = 1.0;
float a = 2.0;
float scene = 1000.0;
float shape = 1000.0;
for (int index = 0; index < count; ++index) {
for (int index = 0; index < _Iterations; ++index) {
// fold and translate
p.xz = abs(p.xz) - (_Wildness + wave) * a;
// p.xz = abs(p.xz) - (0.5 + wave) * a;
// p.xz = abs(p.xz) - (_Iterations + wave) * a;
p.xz = abs(p.xz) - (0.5 + wave) * a;
// rotate
// p.xz = mul(rot(angle.y/a), p.xz);
@@ -205,6 +205,10 @@ Shader "FullScreen/Botany"
// pixel color
colour.rgb = (tint + light) * shade;
// camera fade
colour = colour * step(3.0, length(pos));
// temporal buffer
// colour = max(colour, texture(iChannel0, fragCoord/iResolution.xy) - 0.01);
+6 -6
View File
@@ -12,15 +12,15 @@ public class BotanyBinder : MonoBehaviour {
}
}
public void UpdateWildness(Slider s) {
material.SetFloat("_Wildness", s.value);
public void UpdateIterations(Slider s) {
material.SetFloat("_Iterations", s.value);
}
public void UpdateZoom(Slider s) {
material.SetFloat("_Zoom", s.value);
public void UpdateGrid(Slider s) {
material.SetFloat("_Grid", s.value);
}
public void UpdateBrightness(Slider s) {
material.SetFloat("_Brightness", s.value);
public void UpdateResonance(Slider s) {
material.SetFloat("_Resonance", s.value);
}
}
File renamed without changes.
@@ -897,6 +897,10 @@ PrefabInstance:
propertyPath: PrevButton
value: 8
objectReference: {fileID: 0}
- target: {fileID: 3099289455289463194, guid: 31660dba95ae9a9408051002a1e4c382, type: 3}
propertyPath: m_RootOrder
value: 8
objectReference: {fileID: 0}
- target: {fileID: 5305278010342315827, guid: 31660dba95ae9a9408051002a1e4c382, type: 3}
propertyPath: m_Pivot.x
value: 0
@@ -985,6 +989,10 @@ PrefabInstance:
propertyPath: m_Name
value: Menu
objectReference: {fileID: 0}
- target: {fileID: 7200639167805561534, guid: 31660dba95ae9a9408051002a1e4c382, type: 3}
propertyPath: m_RootOrder
value: 9
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 31660dba95ae9a9408051002a1e4c382, type: 3}
--- !u!1 &667181310
@@ -142,7 +142,7 @@ Material:
- _AlphaToMaskInspectorValue: 0
- _Anisotropy: 0
- _BlendMode: 0
- _Brightness: 4.65
- _Brightness: 3.9499998
- _CoatMask: 0
- _CullMode: 2
- _CullModeForward: 2
@@ -235,7 +235,7 @@ Material:
- _UVEmissive: 0
- _UseEmissiveIntensity: 0
- _UseShadowThreshold: 0
- _Wildness: 7.2642856
- _Wildness: 5.721429
- _Wow: 4
- _ZTestDepthEqualForOpaque: 3
- _ZTestGBuffer: 4
@@ -243,7 +243,7 @@ Material:
- _ZWrite: 1
- _Zing: 0
- _Zip: 0.5
- _Zoom: -0.6342857
- _Zoom: -0.2628572
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0}
@@ -1,4 +1,4 @@
Shader "FullScreen/Ether"
Shader "FullScreen/Luigi"
{
Properties
{
@@ -2,7 +2,7 @@ using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
public class LuigiPropertyBinder : MonoBehaviour {
public class LuigiBinder : MonoBehaviour {
public Material material;
private void Start() {
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 40c8ca0615033ad4e89daa0d5d0003c3
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large. Load diff
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a515e016359df6d48a68be70204f08af
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,233 @@
Shader "FullScreen/GeneDrive"
{
Properties
{
_SpectrumTexture("SpectrumTexture", 2D) = "white" {}
_ThemeTexture("ThemeTexture", 2D) = "white" {}
_SpectrumSize("SpectrumSize", float) = 16
_SphereSize("SphereSize", range(0, 3)) = 1
_SphereStretch("SphereStretch", range(0, 3)) = 1
}
HLSLINCLUDE
// HDRP stuff
#pragma vertex Vert
#pragma target 4.5
#pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassCommon.hlsl"
// here we go...
sampler2D _SpectrumTexture;
sampler2D _ThemeTexture;
float _SphereSize;
float _SphereStretch;
float material;
float time;
float rng;
float sub;
float bass;
float mids;
float highs;
// -------------------------------------
// https://www.shadertoy.com/view/NddSWs
// source
// Dave Hoskins
// https://www.shadertoy.com/view/4djSRW
float hash13(float3 p3) {
p3 = frac(p3 * .420);
p3 += dot(p3, p3.zyx + 322.802872);
return frac((p3.x + p3.y) * p3.z);
}
// Inigo Quilez
// https://iquilezles.org/articles/distfunctions
float smin(float d1, float d2, float k) {
float h = clamp(0.5 + 0.5 * (d2-d1) / k, 0.0, 1.0);
return lerp(d2, d1, h) - k*h*(1.0-h);
}
float smoothing(float d1, float d2, float k) { return clamp( 0.5 + 0.5 *(d2-d1)/k, 0.0, 1.0); }
// rotation matrix
float2x2 rot(float a) {
float2x2 rm = { cos(a), -sin(a), sin(a), cos(a) };
return rm;
}
#define mod(x, y) (x - y * floor(x / y))
float3 repeat(float3 p, float3 r) {
return mod(p , r) - r / 2.0;
}
// sdf
float map (float3 p) {
const float Grid = 8.0;
const int Iterations = 4;
// time stretched with noise
float t = time * 1.0 + rng * 0.9;
// float t = highs;
// domain repetition
float3 grid = float3(Grid, Grid, Grid);
float3 cell = floor(p/grid);
p = repeat(p, grid);
// distance from origin
float dp = length(p);
// rotation parameter
float3 angle = float3(1.1,-.5,.1) + dp*.1 + p*.1 + cell;
// shrink sphere size
float size = sin(_SphereSize * rng); //sin(rng*3.14);
// stretch sphere
// float wave = sin(-dp*1.+t+hash13(cell)*6.28)*.5;
float wave = sin(-dp*_SphereStretch+hash13(cell) * Grid) * _SphereStretch;
// float a = 1.0;
// float a = smoothstep(0.0, 1.0, mids) * 0.5;
float freq = length(cell) % 4;
float a = tex2D(_SpectrumTexture, 1 / freq);
// a = 1.0 / freq;
// float a = highs;
float scene = 1000.0;
float shape = 1000.0;
for (int index = 0; index < Iterations; ++index) {
// fold and translate
p.xz = abs(p.xz) - (0.5 + wave) * a;
// p.xz = abs(p.xz) - (0.5 + wave) * a;
// rotate
// p.xz = mul(rot(angle.y/a), p.xz);
// p.yz = mul(rot(angle.x/a), p.yz);
// p.yx = mul(rot(angle.z/a), p.yx);
p.xz = mul(p.xz, rot(angle.y/a));
p.yz = mul(p.yz, rot(angle.x/a));
p.yx = mul(p.yx, rot(angle.z/a));
// sphere
shape = length(p)+a*size * 2.0;
// material blending
// material = lerp(material, float(index), smoothing(shape, scene, 0.3*a));
material = lerp(material, float(index), smoothing(shape, scene, a));
// add with a blend
// scene = smin(scene, shape, 1.0 * a);
scene = smin(scene, shape, _SphereSize * a);
// falloff transformations
a /= 1.9;
}
return scene;
}
float4 FullScreenPass(Varyings varyings) : SV_Target {
float depth = LoadCameraDepth(varyings.positionCS.xy);
PositionInputs posInput = GetPositionInput(varyings.positionCS.xy, _ScreenSize.zw, depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_V);
float2 ndc = posInput.positionNDC;
// convert to glsl mode and fix aspect ratio
float2 guv = posInput.positionNDC - 0.5;
guv.x *= _ScreenParams.x / _ScreenParams.y;
time = _Time.y;
float4 colour = float4(0.0, 0.0, 0.0, 1.0);
material = 0.0;
// camera coordinates
float2 uv = guv;
float3 eye = float3(sin(time * 0.1) * 5.0, cos(time * 0.1) * 5.0, 1.0);
// float3 eye = float3(5.0, 5.0, 1.0);
float3 at = float3(0.0, 0.0, 0.0);
float3 z = normalize(at-eye);
float3 x = normalize(cross(z, float3(0.0,1.0,0.0)));
float3 y = cross(x, z);
float3 ray = normalize(float3(z + uv.x * x + uv.y * y));
float3 pos = eye;
// // camera control
// float2 M = 6.28 * float2(1.0, 1.0);
// ray.xz = mul(ray.xz, rot(M.x));
// pos.xz = mul(pos.xz, rot(M.x));
// ray.xy = mul(ray.xy, rot(M.y));
// pos.xy = mul(pos.xy, rot(M.y));
// white noise
float3 seed = float3(ndc, highs * 420.0);
float rng = hash13(seed);
// raymarch
float steps = 30.0;
float index;
for (index = steps; index > 0.0; --index) {
// volume estimation
float dist = map(pos);
if (dist < 0.01) {
break;
}
// dithering
// dist *= 0.9 + .1 * rng;
// raymarch
pos += ray * dist;
}
// ambient occlusion from steps count
float shade = index / steps;
// compute normal by NuSan (https://www.shadertoy.com/view/3sBGzV)
float2 off=float2(.001,0);
float3 normal = normalize(map(pos)-float3(map(pos-off.xyy), map(pos-off.yxy), map(pos-off.yyx)));
float3 tint = tex2D(_ThemeTexture, shade);
// lighting
float ld = dot(reflect(ray, normal), float3(0.0,1.0,0.0))*0.5+0.5;
float3 light = float3(1.000,0.502,0.502) * sqrt(ld);
ld = dot(reflect(ray, normal), float3(0,0,-1))*0.5+0.5;
light += float3(0.400,0.714,0.145) * sqrt(ld)*.5;
// pixel color
colour.rgb = (tint + light) * shade;
return colour;
}
ENDHLSL
SubShader
{
Tags{ "RenderPipeline" = "HDRenderPipeline" }
Pass
{
Name "GeneDrive"
ZWrite Off
ZTest Always
// Blend SrcAlpha OneMinusSrcAlpha
Cull Off
HLSLPROGRAM
#pragma fragment FullScreenPass
ENDHLSL
}
}
Fallback Off
}
@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: fcc3e90329b99064cb3a53eb297ca9ae
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
preprocessorOverride: 0
userData:
assetBundleName:
assetBundleVariant:
+287
View File
@@ -0,0 +1,287 @@
%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: GeneDrive
m_Shader: {fileID: 4800000, guid: 7453d819d5b715d498f76dd3ab8d71aa, type: 3}
m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- TransparentDepthPrepass
- TransparentDepthPostpass
- TransparentBackface
- RayTracingPrepass
- MOTIONVECTORS
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BentNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BentNormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _CoatMaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _IridescenceMaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _IridescenceThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpectrumTexture:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceMaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThemeTexture:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TransmittanceColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AORemapMax: 1
- _AORemapMin: 0
- _ATDistance: 1
- _AddPrecomputedVelocity: 0
- _AlbedoAffectEmissive: 0
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _AlphaCutoffPostpass: 0.5
- _AlphaCutoffPrepass: 0.5
- _AlphaCutoffShadow: 0.5
- _AlphaDstBlend: 0
- _AlphaSrcBlend: 1
- _AlphaToMask: 0
- _AlphaToMaskInspectorValue: 0
- _Anisotropy: 0
- _BlendMode: 0
- _Brightness: 0
- _CoatMask: 0
- _CullMode: 2
- _CullModeForward: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DiffusionProfile: 0
- _DiffusionProfileHash: 0
- _DisplacementLockObjectScale: 1
- _DisplacementLockTilingScale: 1
- _DisplacementMode: 0
- _DoubleSidedEnable: 0
- _DoubleSidedGIMode: 0
- _DoubleSidedNormalMode: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveExposureWeight: 1
- _EmissiveIntensity: 1
- _EmissiveIntensityUnit: 0
- _EnableBlendModePreserveSpecularLighting: 1
- _EnableFogOnTransparent: 1
- _EnableGeometricSpecularAA: 0
- _EnergyConservingSpecularColor: 1
- _Glob: 1.2242857
- _Globular: 1
- _Grid: 8
- _HeightAmplitude: 0.02
- _HeightCenter: 0.5
- _HeightMapParametrization: 0
- _HeightMax: 1
- _HeightMin: -1
- _HeightOffset: 0
- _HeightPoMAmplitude: 2
- _HeightTessAmplitude: 2
- _HeightTessCenter: 0.5
- _InvTilingScale: 1
- _Ior: 1.5
- _IridescenceMask: 1
- _IridescenceThickness: 1
- _Iterations: 1
- _LinkDetailsWithBase: 1
- _Magic: 65.6
- _MaterialID: 1
- _Metallic: 0
- _MetallicRemapMax: 1
- _MetallicRemapMin: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OpaqueCullMode: 2
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _PPDPrimitiveLength: 1
- _PPDPrimitiveWidth: 1
- _RayTracing: 0
- _ReceivesSSR: 1
- _ReceivesSSRTransparent: 0
- _RefractionModel: 0
- _Resonance: 0.67142856
- _Smoothness: 0.5
- _SmoothnessRemapMax: 1
- _SmoothnessRemapMin: 0
- _SpectrumSize: 4
- _SpecularAAScreenSpaceVariance: 0.1
- _SpecularAAThreshold: 0.2
- _SpecularOcclusionMode: 1
- _SphereSize: 0.94285715
- _SphereStretch: 0.5928571
- _SrcBlend: 1
- _StencilRef: 0
- _StencilRefDepth: 8
- _StencilRefGBuffer: 10
- _StencilRefMV: 40
- _StencilWriteMask: 6
- _StencilWriteMaskDepth: 8
- _StencilWriteMaskGBuffer: 14
- _StencilWriteMaskMV: 40
- _SubsurfaceMask: 1
- _SupportDecals: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _TexWorldScaleEmissive: 1
- _ThemeStrength: 4.67
- _Thickness: 1
- _TransmissionEnable: 1
- _TransparentBackfaceEnable: 0
- _TransparentCullMode: 2
- _TransparentDepthPostpassEnable: 0
- _TransparentDepthPrepassEnable: 0
- _TransparentSortPriority: 0
- _TransparentWritingMotionVec: 0
- _TransparentZWrite: 0
- _UVBase: 0
- _UVDetail: 0
- _UVEmissive: 0
- _UseEmissiveIntensity: 0
- _UseShadowThreshold: 0
- _Wildness: 0.2
- _Wow: 4
- _ZTestDepthEqualForOpaque: 3
- _ZTestGBuffer: 4
- _ZTestTransparent: 4
- _ZWrite: 1
- _Zing: 0
- _Zip: 0.5
- _Zoom: 4.99
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1}
- _InvPrimScale: {r: 1, g: 1, b: 0, a: 0}
- _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0}
- _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0}
m_BuildTextureStacks: []
--- !u!114 &6020743418383276577
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: da692e001514ec24dbc4cca1949ff7e8, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 12
hdPluginSubTargetMaterialVersions:
m_Keys: []
m_Values:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 87966b5ef0f98a1449384bd255e71cd9
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,233 @@
Shader "FullScreen/GeneDrive"
{
Properties
{
_SpectrumTexture("SpectrumTexture", 2D) = "white" {}
_ThemeTexture("ThemeTexture", 2D) = "white" {}
_SpectrumSize("SpectrumSize", float) = 16
_SphereSize("SphereSize", range(0, 3)) = 1
_SphereStretch("SphereStretch", range(0, 3)) = 1
}
HLSLINCLUDE
// HDRP stuff
#pragma vertex Vert
#pragma target 4.5
#pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassCommon.hlsl"
// here we go...
sampler2D _SpectrumTexture;
sampler2D _ThemeTexture;
float _SphereSize;
float _SphereStretch;
float material;
float time;
float rng;
float sub;
float bass;
float mids;
float highs;
// -------------------------------------
// https://www.shadertoy.com/view/NddSWs
// source
// Dave Hoskins
// https://www.shadertoy.com/view/4djSRW
float hash13(float3 p3) {
p3 = frac(p3 * .420);
p3 += dot(p3, p3.zyx + 322.802872);
return frac((p3.x + p3.y) * p3.z);
}
// Inigo Quilez
// https://iquilezles.org/articles/distfunctions
float smin(float d1, float d2, float k) {
float h = clamp(0.5 + 0.5 * (d2-d1) / k, 0.0, 1.0);
return lerp(d2, d1, h) - k*h*(1.0-h);
}
float smoothing(float d1, float d2, float k) { return clamp( 0.5 + 0.5 *(d2-d1)/k, 0.0, 1.0); }
// rotation matrix
float2x2 rot(float a) {
float2x2 rm = { cos(a), -sin(a), sin(a), cos(a) };
return rm;
}
#define mod(x, y) (x - y * floor(x / y))
float3 repeat(float3 p, float3 r) {
return mod(p , r) - r / 2.0;
}
// sdf
float map (float3 p) {
const float Grid = 8.0;
const int Iterations = 4;
// time stretched with noise
float t = time * 1.0 + rng * 0.9;
// float t = highs;
// domain repetition
float3 grid = float3(Grid, Grid, Grid);
float3 cell = floor(p/grid);
p = repeat(p, grid);
// distance from origin
float dp = length(p);
// rotation parameter
float3 angle = float3(1.1,-.5,.1) + dp*.1 + p*.1 + cell;
// shrink sphere size
float size = sin(_SphereSize * rng); //sin(rng*3.14);
// stretch sphere
// float wave = sin(-dp*1.+t+hash13(cell)*6.28)*.5;
float wave = sin(-dp*_SphereStretch+hash13(cell) * Grid) * _SphereStretch;
// float a = 1.0;
// float a = smoothstep(0.0, 1.0, mids) * 0.5;
float freq = length(cell) % 4;
float a = tex2D(_SpectrumTexture, 1 / freq);
// a = 1.0 / freq;
// float a = highs;
float scene = 1000.0;
float shape = 1000.0;
for (int index = 0; index < Iterations; ++index) {
// fold and translate
p.xz = abs(p.xz) - (0.5 + wave) * a;
// p.xz = abs(p.xz) - (0.5 + wave) * a;
// rotate
// p.xz = mul(rot(angle.y/a), p.xz);
// p.yz = mul(rot(angle.x/a), p.yz);
// p.yx = mul(rot(angle.z/a), p.yx);
p.xz = mul(p.xz, rot(angle.y/a));
p.yz = mul(p.yz, rot(angle.x/a));
p.yx = mul(p.yx, rot(angle.z/a));
// sphere
shape = length(p)+a*size * 2.0;
// material blending
// material = lerp(material, float(index), smoothing(shape, scene, 0.3*a));
material = lerp(material, float(index), smoothing(shape, scene, a));
// add with a blend
// scene = smin(scene, shape, 1.0 * a);
scene = smin(scene, shape, _SphereSize * a * 3.0);
// falloff transformations
a /= 1.9;
}
return scene;
}
float4 FullScreenPass(Varyings varyings) : SV_Target {
float depth = LoadCameraDepth(varyings.positionCS.xy);
PositionInputs posInput = GetPositionInput(varyings.positionCS.xy, _ScreenSize.zw, depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_V);
float2 ndc = posInput.positionNDC;
// convert to glsl mode and fix aspect ratio
float2 guv = posInput.positionNDC - 0.5;
guv.x *= _ScreenParams.x / _ScreenParams.y;
time = _Time.y;
float4 colour = float4(0.0, 0.0, 0.0, 1.0);
material = 0.0;
// camera coordinates
float2 uv = guv;
float3 eye = float3(sin(time * 0.1) * 5.0, cos(time * 0.1) * 5.0 + 0.5, 1.0);
// float3 eye = float3(5.0, 5.0, 1.0);
float3 at = float3(0.0, 0.0, 0.0);
float3 z = normalize(at-eye);
float3 x = normalize(cross(z, float3(0.0,1.0,0.0)));
float3 y = cross(x, z);
float3 ray = normalize(float3(z + uv.x * x + uv.y * y));
float3 pos = eye;
// // camera control
// float2 M = 6.28 * float2(1.0, 1.0);
// ray.xz = mul(ray.xz, rot(M.x));
// pos.xz = mul(pos.xz, rot(M.x));
// ray.xy = mul(ray.xy, rot(M.y));
// pos.xy = mul(pos.xy, rot(M.y));
// white noise
float3 seed = float3(ndc, highs * 420.0);
float rng = hash13(seed);
// raymarch
float steps = 30.0;
float index;
for (index = steps; index > 0.0; --index) {
// volume estimation
float dist = map(pos);
if (dist < 0.01) {
break;
}
// dithering
// dist *= 0.9 + .1 * rng;
// raymarch
pos += ray * dist;
}
// ambient occlusion from steps count
float shade = index / steps;
// compute normal by NuSan (https://www.shadertoy.com/view/3sBGzV)
float2 off=float2(.001,0);
float3 normal = normalize(map(pos)-float3(map(pos-off.xyy), map(pos-off.yxy), map(pos-off.yyx)));
float3 tint = tex2D(_ThemeTexture, shade);
// lighting
float ld = dot(reflect(ray, normal), float3(0.0,1.0,0.0))*0.5+0.5;
float3 light = float3(1.000,0.502,0.502) * sqrt(ld);
ld = dot(reflect(ray, normal), float3(0,0,-1))*0.5+0.5;
light += float3(0.400,0.714,0.145) * sqrt(ld)*.5;
// pixel color
colour.rgb = (tint + light) * shade;
return colour;
}
ENDHLSL
SubShader
{
Tags{ "RenderPipeline" = "HDRenderPipeline" }
Pass
{
Name "GeneDrive"
ZWrite Off
ZTest Always
// Blend SrcAlpha OneMinusSrcAlpha
Cull Off
HLSLPROGRAM
#pragma fragment FullScreenPass
ENDHLSL
}
}
Fallback Off
}
@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 7453d819d5b715d498f76dd3ab8d71aa
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
preprocessorOverride: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,22 @@
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
public class GeneDriveBinder : MonoBehaviour {
public Material material;
private void Start() {
if (material == null) {
Debug.Log("Material Binder needs a Material.");
gameObject.SetActive(false);
}
}
public void UpdateGrid(Slider s) {
material.SetFloat("_SphereStretch", s.value);
}
public void UpdateResonance(Slider s) {
material.SetFloat("_SphereSize", s.value);
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: bad5d6c23674a9c4b8605efe4fdf08dc
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 21402a3f25da88e4ea2c9b44c2051ee8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large. Load diff
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 572c5fca359119a42a653f641085ecc6
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+287
View File
@@ -0,0 +1,287 @@
%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: Silicon
m_Shader: {fileID: 4800000, guid: 5be30a06faf5a124fa31edf103be3e86, type: 3}
m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- TransparentDepthPrepass
- TransparentDepthPostpass
- TransparentBackface
- RayTracingPrepass
- MOTIONVECTORS
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BentNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BentNormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _CoatMaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _IridescenceMaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _IridescenceThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpectrumTexture:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceMaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThemeTexture:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TransmittanceColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AORemapMax: 1
- _AORemapMin: 0
- _ATDistance: 1
- _AddPrecomputedVelocity: 0
- _AlbedoAffectEmissive: 0
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _AlphaCutoffPostpass: 0.5
- _AlphaCutoffPrepass: 0.5
- _AlphaCutoffShadow: 0.5
- _AlphaDstBlend: 0
- _AlphaSrcBlend: 1
- _AlphaToMask: 0
- _AlphaToMaskInspectorValue: 0
- _Anisotropy: 0
- _BlendMode: 0
- _Brightness: 0
- _CoatMask: 0
- _CullMode: 2
- _CullModeForward: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DiffusionProfile: 0
- _DiffusionProfileHash: 0
- _DisplacementLockObjectScale: 1
- _DisplacementLockTilingScale: 1
- _DisplacementMode: 0
- _DoubleSidedEnable: 0
- _DoubleSidedGIMode: 0
- _DoubleSidedNormalMode: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveExposureWeight: 1
- _EmissiveIntensity: 1
- _EmissiveIntensityUnit: 0
- _EnableBlendModePreserveSpecularLighting: 1
- _EnableFogOnTransparent: 1
- _EnableGeometricSpecularAA: 0
- _EnergyConservingSpecularColor: 1
- _Glob: 1.2242857
- _Globular: 1
- _Grid: 8
- _HeightAmplitude: 0.02
- _HeightCenter: 0.5
- _HeightMapParametrization: 0
- _HeightMax: 1
- _HeightMin: -1
- _HeightOffset: 0
- _HeightPoMAmplitude: 2
- _HeightTessAmplitude: 2
- _HeightTessCenter: 0.5
- _InvTilingScale: 1
- _Ior: 1.5
- _IridescenceMask: 1
- _IridescenceThickness: 1
- _Iterations: 1
- _LinkDetailsWithBase: 1
- _Magic: 65.6
- _MaterialID: 1
- _Metallic: 0
- _MetallicRemapMax: 1
- _MetallicRemapMin: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OpaqueCullMode: 2
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _PPDPrimitiveLength: 1
- _PPDPrimitiveWidth: 1
- _RayTracing: 0
- _ReceivesSSR: 1
- _ReceivesSSRTransparent: 0
- _RefractionModel: 0
- _Resonance: 0.67142856
- _Smoothness: 0.5
- _SmoothnessRemapMax: 1
- _SmoothnessRemapMin: 0
- _SpectrumSize: 4
- _SpecularAAScreenSpaceVariance: 0.1
- _SpecularAAThreshold: 0.2
- _SpecularOcclusionMode: 1
- _SphereSize: 0.94285715
- _SphereStretch: 0.5928571
- _SrcBlend: 1
- _StencilRef: 0
- _StencilRefDepth: 8
- _StencilRefGBuffer: 10
- _StencilRefMV: 40
- _StencilWriteMask: 6
- _StencilWriteMaskDepth: 8
- _StencilWriteMaskGBuffer: 14
- _StencilWriteMaskMV: 40
- _SubsurfaceMask: 1
- _SupportDecals: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _TexWorldScaleEmissive: 1
- _ThemeStrength: 4.67
- _Thickness: 1
- _TransmissionEnable: 1
- _TransparentBackfaceEnable: 0
- _TransparentCullMode: 2
- _TransparentDepthPostpassEnable: 0
- _TransparentDepthPrepassEnable: 0
- _TransparentSortPriority: 0
- _TransparentWritingMotionVec: 0
- _TransparentZWrite: 0
- _UVBase: 0
- _UVDetail: 0
- _UVEmissive: 0
- _UseEmissiveIntensity: 0
- _UseShadowThreshold: 0
- _Wildness: 0.2
- _Wow: 4
- _ZTestDepthEqualForOpaque: 3
- _ZTestGBuffer: 4
- _ZTestTransparent: 4
- _ZWrite: 1
- _Zing: 0
- _Zip: 0.5
- _Zoom: 4.99
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1}
- _InvPrimScale: {r: 1, g: 1, b: 0, a: 0}
- _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0}
- _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0}
m_BuildTextureStacks: []
--- !u!114 &6020743418383276577
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: da692e001514ec24dbc4cca1949ff7e8, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 12
hdPluginSubTargetMaterialVersions:
m_Keys: []
m_Values:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2c8435a47ec6074469329ccda22afc1c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
+93
View File
@@ -0,0 +1,93 @@
Shader "FullScreen/Silicon"
{
Properties
{
_SpectrumTexture("SpectrumTexture", 2D) = "white" {}
_ThemeTexture("ThemeTexture", 2D) = "white" {}
_SpectrumSize("SpectrumSize", float) = 16
_SphereSize("SphereSize", range(0, 3)) = 1
_SphereStretch("SphereStretch", range(0, 3)) = 1
}
HLSLINCLUDE
// HDRP stuff
#pragma vertex Vert
#pragma target 4.5
#pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassCommon.hlsl"
// here we go...
sampler2D _SpectrumTexture;
sampler2D _ThemeTexture;
float _SpectrumSize;
float4 FullScreenPass(Varyings varyings) : SV_Target {
float depth = LoadCameraDepth(varyings.positionCS.xy);
PositionInputs posInput = GetPositionInput(varyings.positionCS.xy, _ScreenSize.zw, depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_V);
float3 viewDirection = GetWorldSpaceNormalizeViewDir(posInput.positionWS);
float2 ndc = posInput.positionNDC;
float4 color = float4(0.0, 0.0, 0.0, 0.0);
// convert to glsl mode and fix aspect ratio
float2 uv = posInput.positionNDC - 0.5;
uv.x *= _ScreenParams.x / _ScreenParams.y;
float time = _Time.y;
// Background
float4 outColour = float4(0.8+0.2*uv.y,0.8+0.2*uv.y,0.8+0.2*uv.y,1);
// [unroll(100)]
for(int i=0; i<40; i++) {
// bubble seeds
float pha = sin(float(i)*546.13+1.0)*0.5 + 0.5;
float siz = pow( sin(float(i)*651.74+5.0)*0.5 + 0.5, 4.0 );
float pox = sin(float(i)*321.55+4.1) * 1 / 1;
// buble size, position and color
float band = 1 / ((i % _SpectrumSize) + 1);
float freq = tex2D(_SpectrumTexture, band);
float rad = 0.1 + 0.1*freq;
float2 pos = float2( pox, -1.0-rad + (2.0+2.0*rad)*fmod(pha+0.1*time*(0.2+0.8*siz),1.0));
float dis = length( uv - pos );
float3 col = lerp( float3(0.94,0.3,0.0), float3(0.1,0.4,0.8), 0.5+0.5*sin(float(i)*1.2+1.9));
col+= 8.0*smoothstep( rad*0.95, rad, dis );
// render
float f = length(uv-pos)/rad;
f = sqrt(clamp(1.0-f*f,0.0,1.0));
outColour -= float4(col.zyx *(1.0-smoothstep( rad*0.95, rad, dis )) * f, 0.0);
}
// Vignetting
// outColour *= sqrt(1.5-0.5*length(uv));
return outColour;
}
ENDHLSL
SubShader
{
Tags{ "RenderPipeline" = "HDRenderPipeline" }
Pass
{
Name "GeneDrive"
ZWrite Off
ZTest Always
// Blend SrcAlpha OneMinusSrcAlpha
Cull Off
HLSLPROGRAM
#pragma fragment FullScreenPass
ENDHLSL
}
}
Fallback Off
}
@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 5be30a06faf5a124fa31edf103be3e86
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
preprocessorOverride: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,22 @@
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
public class SiliconBinder : MonoBehaviour {
public Material material;
private void Start() {
if (material == null) {
Debug.Log("Material Binder needs a Material.");
gameObject.SetActive(false);
}
}
public void UpdateGrid(Slider s) {
material.SetFloat("_SphereStretch", s.value);
}
public void UpdateResonance(Slider s) {
material.SetFloat("_SphereSize", s.value);
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f254fb3ffb1421f4f83130c38e341de7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: