add wip raymarching shaders
This commit is contained in:
parent
58f266d600
commit
3408d9ff8e
17 changed files with 1242 additions and 103 deletions
80
Assets/raymarched/Distortion.mat
Normal file
80
Assets/raymarched/Distortion.mat
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
%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: Distortion
|
||||||
|
m_Shader: {fileID: 4800000, guid: ebb4c5ee330ee4a57bf8516adc9a7828, type: 3}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
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: 0}
|
||||||
|
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}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _MaxDist: 128
|
||||||
|
- _MaxSteps: 256
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _SurfDist: 0.001
|
||||||
|
- _UVSec: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
8
Assets/raymarched/Distortion.mat.meta
Normal file
8
Assets/raymarched/Distortion.mat.meta
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d41f18ea246cea60bae44bca806c0728
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
80
Assets/raymarched/Nut.mat
Normal file
80
Assets/raymarched/Nut.mat
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
%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: Nut
|
||||||
|
m_Shader: {fileID: 4800000, guid: 4ba2b5d5658a2f257b227615f65e87f6, type: 3}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
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: 0}
|
||||||
|
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}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _MaxDist: 32
|
||||||
|
- _MaxSteps: 128
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _SurfDist: 0.002
|
||||||
|
- _UVSec: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
8
Assets/raymarched/Nut.mat.meta
Normal file
8
Assets/raymarched/Nut.mat.meta
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c881d33e96e5ee113a7ca92a93839d15
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -338,7 +338,7 @@ GameObject:
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 0
|
||||||
--- !u!114 &365616531
|
--- !u!114 &365616531
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -444,7 +444,7 @@ Transform:
|
||||||
m_LocalScale: {x: 5, y: 5, z: 5}
|
m_LocalScale: {x: 5, y: 5, z: 5}
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 11
|
m_RootOrder: 10
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &393448822
|
--- !u!1 &393448822
|
||||||
GameObject:
|
GameObject:
|
||||||
|
@ -733,7 +733,7 @@ Transform:
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 7
|
m_RootOrder: 6
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!114 &683266148
|
--- !u!114 &683266148
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
|
@ -787,98 +787,6 @@ MonoBehaviour:
|
||||||
snappingReferences: []
|
snappingReferences: []
|
||||||
autoHold: 0
|
autoHold: 0
|
||||||
ikReference: {fileID: 0}
|
ikReference: {fileID: 0}
|
||||||
--- !u!1 &695617482
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 695617484}
|
|
||||||
- component: {fileID: 695617483}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Point Light
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!108 &695617483
|
|
||||||
Light:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 695617482}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 10
|
|
||||||
m_Type: 2
|
|
||||||
m_Shape: 0
|
|
||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
m_Intensity: 1
|
|
||||||
m_Range: 10
|
|
||||||
m_SpotAngle: 30
|
|
||||||
m_InnerSpotAngle: 21.80208
|
|
||||||
m_CookieSize: 10
|
|
||||||
m_Shadows:
|
|
||||||
m_Type: 0
|
|
||||||
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 &695617484
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 695617482}
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0.464, y: -0.099, z: 0.326}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 5
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!1 &703968045
|
--- !u!1 &703968045
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -938,6 +846,154 @@ MonoBehaviour:
|
||||||
maxValue: 1
|
maxValue: 1
|
||||||
updateMethod: 1
|
updateMethod: 1
|
||||||
sampleDirection: 0
|
sampleDirection: 0
|
||||||
|
--- !u!1 &772903850
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 772903857}
|
||||||
|
- component: {fileID: 772903856}
|
||||||
|
- component: {fileID: 772903855}
|
||||||
|
- component: {fileID: 772903854}
|
||||||
|
- component: {fileID: 772903853}
|
||||||
|
- component: {fileID: 772903852}
|
||||||
|
- component: {fileID: 772903851}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Spinny
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &772903851
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 772903850}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 990f6f4efb7f4ec98ad99f6dff1bc6f6, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
type: 3
|
||||||
|
objectId: 267a3820-e773-4d80-aa35-8f7551bc813a
|
||||||
|
--- !u!114 &772903852
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 772903850}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: a37fd8d654d5c2840a0ab3a5ad65a5ae, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
spawnHeight: 0.5
|
||||||
|
useAdditionalValues: 0
|
||||||
|
syncValues: []
|
||||||
|
propPrivacy: 1
|
||||||
|
subSyncs: []
|
||||||
|
spawnableType: 0
|
||||||
|
preGeneratedInstanceId:
|
||||||
|
--- !u!114 &772903853
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 772903850}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 12974925555b471580cacf5d2d5fa9e3, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
gripType: 1
|
||||||
|
gripOrigin: {fileID: 0}
|
||||||
|
disallowTheft: 0
|
||||||
|
maximumGrabDistance: 0
|
||||||
|
snappingReferences: []
|
||||||
|
autoHold: 0
|
||||||
|
ikReference: {fileID: 0}
|
||||||
|
--- !u!65 &772903854
|
||||||
|
BoxCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 772903850}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IsTrigger: 1
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Size: {x: 1, y: 1, z: 1}
|
||||||
|
m_Center: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!23 &772903855
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 772903850}
|
||||||
|
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_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: ae433e7abcbb34568a34bf2056a24a89, 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
|
||||||
|
--- !u!33 &772903856
|
||||||
|
MeshFilter:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 772903850}
|
||||||
|
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
--- !u!4 &772903857
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 772903850}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0.75, y: 0, z: 1.75}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 11
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &779234488
|
--- !u!1 &779234488
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -978,7 +1034,7 @@ Transform:
|
||||||
- {fileID: 393448823}
|
- {fileID: 393448823}
|
||||||
- {fileID: 307897119}
|
- {fileID: 307897119}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 6
|
m_RootOrder: 5
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!114 &779234490
|
--- !u!114 &779234490
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
|
@ -1431,7 +1487,7 @@ Transform:
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 10
|
m_RootOrder: 9
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!114 &887058546
|
--- !u!114 &887058546
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
|
@ -1713,7 +1769,7 @@ Transform:
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 9
|
m_RootOrder: 8
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!114 &1057832715
|
--- !u!114 &1057832715
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
|
@ -1741,7 +1797,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: a37fd8d654d5c2840a0ab3a5ad65a5ae, type: 3}
|
m_Script: {fileID: 11500000, guid: a37fd8d654d5c2840a0ab3a5ad65a5ae, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
spawnHeight: 1
|
spawnHeight: 0.55
|
||||||
useAdditionalValues: 0
|
useAdditionalValues: 0
|
||||||
syncValues: []
|
syncValues: []
|
||||||
propPrivacy: 1
|
propPrivacy: 1
|
||||||
|
@ -1780,12 +1836,12 @@ GameObject:
|
||||||
- component: {fileID: 1274159450}
|
- component: {fileID: 1274159450}
|
||||||
- component: {fileID: 1274159449}
|
- component: {fileID: 1274159449}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: Cube (2)
|
m_Name: (old) spinny
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 0
|
||||||
--- !u!65 &1274159449
|
--- !u!65 &1274159449
|
||||||
BoxCollider:
|
BoxCollider:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -1854,11 +1910,11 @@ Transform:
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1274159448}
|
m_GameObject: {fileID: 1274159448}
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 1, y: 0.26, z: -0.407}
|
m_LocalPosition: {x: -0.5, y: 0.01, z: 2.093}
|
||||||
m_LocalScale: {x: 0.05, y: 0.05, z: 0.05}
|
m_LocalScale: {x: 0.05, y: 0.05, z: 0.05}
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 8
|
m_RootOrder: 7
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &1450495540
|
--- !u!1 &1450495540
|
||||||
GameObject:
|
GameObject:
|
||||||
|
|
123
Assets/raymarched/Spinny Sunset.mat
Normal file
123
Assets/raymarched/Spinny Sunset.mat
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
%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: Spinny Sunset
|
||||||
|
m_Shader: {fileID: 4800000, guid: bf32a865560b32c028bf9030b99bb087, type: 3}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
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: 1f675a065618d234abec48e229fcf618, 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}
|
||||||
|
- _NoiseTex:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 1f675a065618d234abec48e229fcf618, type: 3}
|
||||||
|
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}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _TempTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _WaterAO:
|
||||||
|
m_Texture: {fileID: 2800000, guid: dd4d5ec12dc0480c4844ce7523f236de, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _WaterHeight:
|
||||||
|
m_Texture: {fileID: 2800000, guid: f7d421fd3d8201f31938dea0107230ef, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _WaterNormal:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 5da9476453fb6074bb8baeb93d8c9513, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _WaterSurface:
|
||||||
|
m_Texture: {fileID: 2800000, guid: cafeae09bbcef5a6cabeaac76bab5462, type: 3}
|
||||||
|
m_Scale: {x: 1.6, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Grid: 0
|
||||||
|
- _HeightOffset: 0
|
||||||
|
- _HorizonTint: 0.1
|
||||||
|
- _MaxDist: 4000
|
||||||
|
- _MaxSteps: 128
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _StarDensity: 30
|
||||||
|
- _StarRandom: 0.85
|
||||||
|
- _StarSize: 0.06
|
||||||
|
- _StarSizeRandom: 0.5
|
||||||
|
- _StarTint: 0.2
|
||||||
|
- _StarsMissing: 0.75
|
||||||
|
- _SunAngle: 0
|
||||||
|
- _SunCutoff: 0.121
|
||||||
|
- _SunRadius: 0.037
|
||||||
|
- _SurfDist: 0.001
|
||||||
|
- _Temp: 0.703
|
||||||
|
- _UVSec: 0
|
||||||
|
- _WaveSpeed: 1
|
||||||
|
- _WaveStrength: 0.5
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _HorizonCol: {r: 0.43, g: 0.27, b: 0.49, a: 1}
|
||||||
|
- _SkyCol: {r: 0.08235293, g: 0.09343877, b: 0.27450982, a: 1}
|
||||||
|
- _SunCol: {r: 1, g: 0.5988961, b: 0.05098039, a: 1}
|
||||||
|
- _WaterCol: {r: 0.6035511, g: 0.9339623, b: 0.63756216, a: 1}
|
8
Assets/raymarched/Spinny Sunset.mat.meta
Normal file
8
Assets/raymarched/Spinny Sunset.mat.meta
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 628e41df70b6f01c9ae6b4499ad54dd6
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
80
Assets/raymarched/Spinny.mat
Normal file
80
Assets/raymarched/Spinny.mat
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
%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: Spinny
|
||||||
|
m_Shader: {fileID: 4800000, guid: 0779c46007e531d31b99fa29d899e9ab, type: 3}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
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: 0}
|
||||||
|
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}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _MaxDist: 128
|
||||||
|
- _MaxSteps: 128
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _SurfDist: 0.001
|
||||||
|
- _UVSec: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
8
Assets/raymarched/Spinny.mat.meta
Normal file
8
Assets/raymarched/Spinny.mat.meta
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ae433e7abcbb34568a34bf2056a24a89
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
271
Assets/raymarched/Spinny_Sunset.shader
Normal file
271
Assets/raymarched/Spinny_Sunset.shader
Normal file
|
@ -0,0 +1,271 @@
|
||||||
|
Shader "CrispyPin/Spinny_Sunset"
|
||||||
|
{
|
||||||
|
Properties
|
||||||
|
{
|
||||||
|
[Header(Raymarcher Properties)]
|
||||||
|
_MaxSteps ("Max steps", Int) = 128
|
||||||
|
_MaxDist ("Max distance", Float) = 128
|
||||||
|
_SurfDist ("Surface distance threshold", Range(0.0001, 0.05)) = 0.001
|
||||||
|
[Header(Sky)]
|
||||||
|
_SkyCol ("Sky color", Color) = (0.22, 0.23, 0.58, 1.0)
|
||||||
|
_HorizonTint ("Horizon tint", Range(0, 1)) = 0.1
|
||||||
|
[Header(Sun)]
|
||||||
|
_SunCol ("Sun color", Color) = (1.0, 0.65, 0.05, 1.0)
|
||||||
|
_SunAngle ("Sun angle", Range(0, 6.28)) = 0
|
||||||
|
_SunRadius ("Sun radius", Range(0, 0.3)) = 0.06
|
||||||
|
_SunCutoff ("Sun cutoff", Range(0, 0.5)) = 0.08
|
||||||
|
[Header(Star Layout)]
|
||||||
|
[NoScaleOffset]
|
||||||
|
_NoiseTex ("Noise source", 2D) = "white" {}
|
||||||
|
_StarDensity ("Star density", Range(4, 50)) = 20
|
||||||
|
_StarRandom ("Star randomness", Range(0, 1)) = 0.85
|
||||||
|
[Header(Star)]
|
||||||
|
_StarsMissing ("Stars missing", Range(0, 1)) = 0.75
|
||||||
|
_StarSize ("Star size", Range(0, 0.1)) = 0.06
|
||||||
|
_StarSizeRandom ("Star size randomness", Range(0, 1)) = 0.5
|
||||||
|
_StarTint ("Star tint", Range(0, 1)) = 0.4
|
||||||
|
[Header(Water)]
|
||||||
|
_HeightOffset ("Height offset", Range(-10, 10)) = -0.5
|
||||||
|
_WaterCol ("Water color", Color) = (0.03, 0.08, 0.12, 1.0)
|
||||||
|
_WaveStrength ("Wave scale", Range(0, 1)) = 1
|
||||||
|
_WaveSpeed ("Wave speed", Range(0, 5)) = 1
|
||||||
|
[NoScaleOffset]
|
||||||
|
_WaterNormal ("Surface Normal", 2D) = "white" {}
|
||||||
|
[Header(Debug)]
|
||||||
|
_Grid ("Grid visibility", Range(0, 1)) = 0
|
||||||
|
|
||||||
|
}
|
||||||
|
SubShader
|
||||||
|
{
|
||||||
|
Tags { "RenderType"="Opaque" }
|
||||||
|
LOD 100
|
||||||
|
Cull front
|
||||||
|
|
||||||
|
Pass
|
||||||
|
{
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma vertex vert
|
||||||
|
#pragma fragment frag
|
||||||
|
|
||||||
|
|
||||||
|
int _MaxSteps;
|
||||||
|
float _MaxDist;
|
||||||
|
float _SurfDist;
|
||||||
|
#define MAX_STEPS 512
|
||||||
|
#define MAX_DIST _MaxDist
|
||||||
|
#define SURF_DIST _SurfDist
|
||||||
|
|
||||||
|
#define LIGHT_FN lighting
|
||||||
|
#define SCENE_FN main
|
||||||
|
#define REFLECTIONS 3
|
||||||
|
#define SCENE_SCALE 0.025
|
||||||
|
#define LIMIT_DEPTH_TO_MESH
|
||||||
|
|
||||||
|
#include "lib/libgarbage.cginc"
|
||||||
|
|
||||||
|
#define PI 3.1416f
|
||||||
|
#define WHITE 1
|
||||||
|
#define UP float3(0, 1, 0)
|
||||||
|
|
||||||
|
sampler2D _NoiseTex;
|
||||||
|
float3 _SkyCol;
|
||||||
|
float _HorizonTint;
|
||||||
|
|
||||||
|
float _StarsMissing;
|
||||||
|
float _StarDensity;
|
||||||
|
float _StarRandom;
|
||||||
|
|
||||||
|
float _StarSize;
|
||||||
|
float _StarSizeRandom;
|
||||||
|
float _StarTint;
|
||||||
|
|
||||||
|
float3 _SunCol;
|
||||||
|
float _SunAngle;
|
||||||
|
float _SunRadius;
|
||||||
|
float _SunCutoff;
|
||||||
|
|
||||||
|
sampler2D _WaterNormal;
|
||||||
|
// sampler2D _WaterHeight;
|
||||||
|
// sampler2D _WaterAO;
|
||||||
|
float3 _WaterCol;
|
||||||
|
float _HeightOffset;
|
||||||
|
float _WaveStrength;
|
||||||
|
float _WaveSpeed;
|
||||||
|
|
||||||
|
float _Grid;
|
||||||
|
|
||||||
|
float3 get_water_normal(float2 pos) {
|
||||||
|
pos *= 0.5;
|
||||||
|
float time = _Time.x * _WaveSpeed + 5; // offset is to make it look better at frame 0
|
||||||
|
float t1 = time * 0.18;
|
||||||
|
float3 normal = (tex2D(_WaterNormal, pos + float2(t1, -t1 * 0.5)) - 0.5) * 0.5;
|
||||||
|
float t2 = time * 0.37;
|
||||||
|
normal += (tex2D(_WaterNormal, pos * 0.276 + float2(t2 * 0.8, t2)) - 0.5);
|
||||||
|
float t3 = time * 0.08;
|
||||||
|
normal += (tex2D(_WaterNormal, pos * 0.07 + float2(t3 * 0.8, -t3)) - 0.5);
|
||||||
|
// normal = normalize(normal.zxy); // normal map import settings
|
||||||
|
normal = normalize(normal.rbg) * float3(-1, 1, -1); // standard import settings
|
||||||
|
|
||||||
|
// normal = normalize(normal);
|
||||||
|
|
||||||
|
// return UP;
|
||||||
|
return lerp(UP, normal, _WaveStrength);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
float3 sun(float3 base_col, float3 dir, float3 sun_dir) {
|
||||||
|
float alignment = min(acos(dot(dir, sun_dir)), 1);
|
||||||
|
float sun_amount = smax(min(_SunRadius / alignment, 5) - _SunCutoff, 0, 0.15);
|
||||||
|
return lerp(base_col, _SunCol, sun_amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
float3 sky(float3 dir, float3 sun_dir) {
|
||||||
|
float theta = atan2(dir.x, dir.z); // latitude
|
||||||
|
float phi = asin(dir.y); // longitude
|
||||||
|
/// background
|
||||||
|
float factor = smoothstep(0, 0.5, dir.y + 0.2);
|
||||||
|
float3 horizon_col = lerp(_SkyCol, _SunCol, _HorizonTint);
|
||||||
|
float3 col = lerp(horizon_col, _SkyCol, factor);
|
||||||
|
|
||||||
|
/// stars
|
||||||
|
float2 cells = float2(-1, floor(_StarDensity));
|
||||||
|
float cell_x_base = floor(cells.y * PI);
|
||||||
|
float celly = phi * cells.y;
|
||||||
|
// cells per ring depend on y pos, to reduce warping around the poles:
|
||||||
|
cells.x = floor(cos(floor(celly) / _StarDensity) * cell_x_base);
|
||||||
|
float cellx = (theta / PI * cells.x);
|
||||||
|
|
||||||
|
float2 pos = float2(cellx, celly); // cell-space pos of this pixel
|
||||||
|
float2 cell_pos = float2(floor(cellx), floor(celly)); // position of this cell
|
||||||
|
float2 cell_center = cell_pos + 0.5;
|
||||||
|
|
||||||
|
float2 star_pos = cell_center + (tex2D(_NoiseTex, cell_pos / cells + float2(0, 0.1)) - 0.5) * _StarRandom;
|
||||||
|
|
||||||
|
/// star color
|
||||||
|
float3 r = tex2D(_NoiseTex, cell_pos / cells);
|
||||||
|
float rnum = frac((r.r + r.g - r.b) * 10);
|
||||||
|
float rnum2 = frac((r.r - r.g + r.b) * 10);
|
||||||
|
|
||||||
|
float star_size = _StarSize * (rnum * _StarSizeRandom + (1 - _StarSizeRandom));
|
||||||
|
|
||||||
|
float distance = length(pos - star_pos);
|
||||||
|
float star_strength = max(min(star_size / distance * 0.5, 1.25) - 0.25, 0); // star glow
|
||||||
|
|
||||||
|
star_strength *= clamp(sin(phi * 2) - 0.1, 0, 1); // fade stars near/under horizon
|
||||||
|
star_strength *= length(r) / 2; // fade stars
|
||||||
|
star_strength *= rnum2 > _StarsMissing; // remove stars
|
||||||
|
|
||||||
|
float3 star_col = lerp(WHITE, r, _StarTint);
|
||||||
|
|
||||||
|
col = lerp(col, star_col, star_strength);
|
||||||
|
|
||||||
|
col = sun(col, dir, sun_dir);
|
||||||
|
/// debug grid
|
||||||
|
col = lerp(col, WHITE, _Grid * (
|
||||||
|
pow(frac( cellx), 20) +
|
||||||
|
pow(frac( celly), 20) +
|
||||||
|
pow(frac(-cellx), 20) +
|
||||||
|
pow(frac(-celly), 20)
|
||||||
|
));
|
||||||
|
|
||||||
|
return col;
|
||||||
|
}
|
||||||
|
|
||||||
|
float3 sunset_env(float3 dir, float3 ray_origin) {
|
||||||
|
ray_origin = 0;
|
||||||
|
|
||||||
|
// float3 horizon_col = lerp(_SkyCol, _SunCol, _HorizonTint);
|
||||||
|
float3 origin = mul(unity_ObjectToWorld, float4(0, 0, 0, 1));
|
||||||
|
origin = 0;
|
||||||
|
float3 sun_dir = float3(sin(_SunAngle), 0.0, cos(_SunAngle));
|
||||||
|
|
||||||
|
float3 col;
|
||||||
|
|
||||||
|
if (dir.y < 0) {
|
||||||
|
origin.y += _HeightOffset;
|
||||||
|
float3 camera_local_pos = ray_origin;
|
||||||
|
camera_local_pos.y = max(camera_local_pos.y, 0.01); // don't allow looking under water surface; it renders backwards.
|
||||||
|
float3 surface_pos = float3 (
|
||||||
|
camera_local_pos.x - camera_local_pos.y / (dir.y / dir.x),
|
||||||
|
0,
|
||||||
|
camera_local_pos.z - camera_local_pos.y / (dir.y / dir.z)
|
||||||
|
);
|
||||||
|
float3 water_normal = get_water_normal(surface_pos.xz);
|
||||||
|
|
||||||
|
float3 reflected_dir = reflect(dir, water_normal);
|
||||||
|
float3 sky_reflection = sky(reflected_dir, sun_dir) ;
|
||||||
|
|
||||||
|
float3 water_col = lerp(_SkyCol, _SunCol, 0.01) * _WaterCol;
|
||||||
|
float3 refracted_dir = normalize(refract(dir, water_normal, 1/1.333));
|
||||||
|
float subsurf = (refracted_dir.y + 1);
|
||||||
|
|
||||||
|
col = water_col * max(subsurf * 12 - 2, 0.7);
|
||||||
|
|
||||||
|
float diffuse = max(dot(sun_dir, water_normal), 0);
|
||||||
|
col += water_col * _SunCol * diffuse * 10;
|
||||||
|
|
||||||
|
// float3 water_ao = get_ao(surface_pos.xz);
|
||||||
|
// col = water_col * lerp(0.1, water_ao, _WaveStrength) * 7;
|
||||||
|
|
||||||
|
float hit_angle = dot(dir, -water_normal);
|
||||||
|
col = lerp(sky_reflection, col, hit_angle);
|
||||||
|
|
||||||
|
// col = sky_reflection;
|
||||||
|
// col *= pow(dot(UP, water_normal), 512); // EVIL in the water
|
||||||
|
// col = pow((tex2D(_WaterNormal, surface_pos.xz).zxy), 2);
|
||||||
|
// col = tex2D(_WaterAO, surface_pos.xz);
|
||||||
|
|
||||||
|
// float distance = length(surface_pos - camera_local_pos);
|
||||||
|
// float fog_factor = smoothstep(10, 70, distance) * 0.4;
|
||||||
|
// col = lerp(col, horizon_col, fog_factor);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
col = sky(dir, sun_dir);
|
||||||
|
}
|
||||||
|
return col;
|
||||||
|
}
|
||||||
|
|
||||||
|
SurfacePoint main(float3 p) {
|
||||||
|
Material grass = mat(float3(0.05, 0.5, 0.1), 0.3);
|
||||||
|
Material dirt = mat(float3(0.5, 0.2, 0.05), 0);
|
||||||
|
Material metal = mat(1, 1);
|
||||||
|
Material blue = mat(float3(0.5, 0.6, 1), 0);
|
||||||
|
|
||||||
|
SurfacePoint d = mPlaneY(p, 0, grass);
|
||||||
|
d = qIntersect(d, mSphere(p, 9, dirt), 0.5);
|
||||||
|
d = qUnion(d, mSphere(p - float3(0, 2, 0), 2, metal));
|
||||||
|
d = qUnion(d, mTorus(rotX(p, _Time * 40 + UNITY_PI / 2), 5, 0.5, blue), 0.5);
|
||||||
|
d = qUnion(d, mTorus(rotZ(p, _Time * 40 + UNITY_PI / 2), 5, 0.5, blue), 0.5);
|
||||||
|
d = qUnion(d, mTorus(rotX(p, _Time * 40), 5, 0.5, blue), 0.5);
|
||||||
|
d = qUnion(d, mTorus(rotZ(p, _Time * 40), 5, 0.5, blue), 0.5);
|
||||||
|
// small spheres
|
||||||
|
float3 p2 = abs(rotY(p, -20 * _Time)) - float3(1.5, sin(_Time.y * 5) + 1, 1.5);
|
||||||
|
d = qUnion(d, mSphere(p2, 0.7, metal), 0.2);
|
||||||
|
|
||||||
|
Material water = mat(float3(0.01, 0.015, 0.025), 0.7);
|
||||||
|
float h = 0;// sin(p.x + sin(p.z * 2+ _Time.y) * 0.3);
|
||||||
|
h *= 0.1;
|
||||||
|
h = - 2;
|
||||||
|
// d = qUnion(d, mPlaneY(p, h - snoise(p / 10 + _Time.xyz * 0.2) * 0.2, water));
|
||||||
|
float3 p3 = repXZ(p, 20, 20);
|
||||||
|
// d = qUnion(d, mSphere(p3 - float3(snoise(p), -5, 1), 8, water), 3);
|
||||||
|
// d = qUnion(d, mSphere(p3 - float3(3, h - 1.5, 2 + sin(p.x / 20)*3), 4, water), 3);
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
|
float3 lighting(Ray ray) {
|
||||||
|
if (ray.missed) {
|
||||||
|
return sunset_env(ray.dir, ray.start / SCENE_SCALE);
|
||||||
|
}
|
||||||
|
|
||||||
|
float3 sun_dir = normalize(float3(0, 1, 10));
|
||||||
|
float3 col = 0;
|
||||||
|
col = ray.mat.col * lSun(ray.normal, sun_dir);
|
||||||
|
col *= lShadow(ray.hit_pos + ray.normal * SURF_DIST, sun_dir, 50);
|
||||||
|
col += ray.mat.col * lSky(ray.normal);
|
||||||
|
return col;
|
||||||
|
}
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
Assets/raymarched/Spinny_Sunset.shader.meta
Normal file
9
Assets/raymarched/Spinny_Sunset.shader.meta
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bf32a865560b32c028bf9030b99bb087
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
131
Assets/raymarched/distortion.shader
Normal file
131
Assets/raymarched/distortion.shader
Normal file
|
@ -0,0 +1,131 @@
|
||||||
|
Shader "CrispyPin/Distortion"
|
||||||
|
{
|
||||||
|
Properties
|
||||||
|
{
|
||||||
|
[Header(Raymarcher Properties)]
|
||||||
|
_MaxSteps ("Max steps", Int) = 128
|
||||||
|
_MaxDist ("Max distance", Float) = 128
|
||||||
|
_SurfDist ("Surface distance threshold", Range(0.0001, 0.05)) = 0.001
|
||||||
|
|
||||||
|
}
|
||||||
|
SubShader
|
||||||
|
{
|
||||||
|
Tags { "RenderType"="Opaque" }
|
||||||
|
Cull Front
|
||||||
|
LOD 100
|
||||||
|
|
||||||
|
Pass
|
||||||
|
{
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma vertex vert
|
||||||
|
#pragma fragment frag
|
||||||
|
|
||||||
|
int _MaxSteps;
|
||||||
|
float _MaxDist;
|
||||||
|
float _SurfDist;
|
||||||
|
#define MAX_STEPS _MaxSteps
|
||||||
|
#define MAX_DIST _MaxDist
|
||||||
|
#define SURF_DIST _SurfDist
|
||||||
|
|
||||||
|
#define REFLECTIONS 3
|
||||||
|
|
||||||
|
#define LIGHT_FN lighting
|
||||||
|
#define SCENE_FN main
|
||||||
|
|
||||||
|
// #define SEPARATE_MATERIAL_AND_DIST_FUNCTIONS
|
||||||
|
// #define SCENE_FN separate_mat
|
||||||
|
// #define DISTANCE_FN separate_dist
|
||||||
|
|
||||||
|
// #define DISABLE_DEPTH
|
||||||
|
// #define DISCARD_ON_MISS
|
||||||
|
// #define USE_WORLD_SPACE
|
||||||
|
#define STEP_MULTIPLIER 0.5
|
||||||
|
#define SCENE_SCALE 0.2
|
||||||
|
#define LIMIT_DEPTH_TO_MESH
|
||||||
|
#include "lib/libgarbage.cginc"
|
||||||
|
|
||||||
|
float3 distort(float3 p) {
|
||||||
|
p = rotY(p, sin(length(p.xz) * 0.2) * 0.2);
|
||||||
|
p.x += smoothstep(0, 0.5, fmod(_Time.x, 1)) * 2;
|
||||||
|
p.z += smoothstep(0.5, 1, fmod(_Time.x, 1)) * 2;
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
float3 checkers(float3 p, float3 a, float3 b, float2 size) {
|
||||||
|
float2 q = p.xz / size;
|
||||||
|
q = int2(abs(q) + 0.5);
|
||||||
|
int s = ((q.x + q.y) % 2);
|
||||||
|
return s * a + (1 - s) * b;
|
||||||
|
}
|
||||||
|
|
||||||
|
float3 floor_col(float3 p) {
|
||||||
|
// oscillating warp
|
||||||
|
// p = rotY(p, length(p.xz)*0.03*sin(_Time.y) + _Time.y*0.1);
|
||||||
|
// constant movement with warped grid
|
||||||
|
// p = rotY(p, sin(length(p.xz) * 0.2) * 0.2);
|
||||||
|
// p.x += fmod(_Time.y, 4);
|
||||||
|
//
|
||||||
|
// p.x += smoothstep(0, 0.5, fmod(_Time.y, 1)) * 2;
|
||||||
|
// p.z += smoothstep(0.5, 1, fmod(_Time.y, 1)) * 2;
|
||||||
|
return lerp(0.08,
|
||||||
|
checkers(p - 1, 0.06, 0.12, 2),
|
||||||
|
smoothstep(64, 0, length(p))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
SurfacePoint main(float3 p) {
|
||||||
|
float3 twistp = rotY(p, sin(length(p.xz) * 0.2) * 0.2);
|
||||||
|
|
||||||
|
p = distort(p);
|
||||||
|
Material floor = mat(floor_col(p));
|
||||||
|
|
||||||
|
p.y += 2.5;
|
||||||
|
|
||||||
|
Material black = mat(0.05);
|
||||||
|
|
||||||
|
SurfacePoint d;
|
||||||
|
// d = mSphere(p - float3(0, -1, 0), 0.1);
|
||||||
|
d = mPlaneY(p, 0, floor);
|
||||||
|
d = qIntersect(d, mSphere(p, 20, d.mat));
|
||||||
|
float3 rp = repXZ(p, 2, 2);
|
||||||
|
float h = sin(twistp.x - rp.x) + 2 + sin((twistp.z - rp.z)* 0.17);
|
||||||
|
d = qUnion(d, mBox(rp - float3(0, h*0.5, 0), float3(0.5, h, 0.5), black));
|
||||||
|
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
|
float3 lighting(Ray ray) {
|
||||||
|
float3 sun_dir = normalize(float3(2, 1, -1));
|
||||||
|
if (ray.missed) {
|
||||||
|
if (ray.dir.y >= 0) {
|
||||||
|
return lRenderSky(ray.dir, sun_dir);
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
float3 cam = ray.start;
|
||||||
|
cam.y += 2.5;
|
||||||
|
float3 dir = ray.dir;
|
||||||
|
float3 surface_pos = float3(
|
||||||
|
cam.x - cam.y / (dir.y / dir.x),
|
||||||
|
0,
|
||||||
|
cam.z - cam.y / (dir.y / dir.z)
|
||||||
|
);
|
||||||
|
float col = floor_col(distort(surface_pos));
|
||||||
|
return col * (lSky(float3(0,1,0)) + lSun(float3(0,1,0), sun_dir));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
float3 col = lSun(ray.normal, sun_dir);
|
||||||
|
col *= lShadow(ray.hit_pos + ray.normal * SURF_DIST, sun_dir, 50);
|
||||||
|
col += lSky(ray.normal);
|
||||||
|
// col = clamp(col, 0, 1);
|
||||||
|
// col = smoothstep(0,1,col);
|
||||||
|
// col = pow(col, 1.3);
|
||||||
|
|
||||||
|
return ray.mat.col * col ;
|
||||||
|
// return col*0.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
Assets/raymarched/distortion.shader.meta
Normal file
9
Assets/raymarched/distortion.shader.meta
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ebb4c5ee330ee4a57bf8516adc9a7828
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
158
Assets/raymarched/nut.shader
Normal file
158
Assets/raymarched/nut.shader
Normal file
|
@ -0,0 +1,158 @@
|
||||||
|
Shader "CrispyPin/Nut"
|
||||||
|
{
|
||||||
|
Properties
|
||||||
|
{
|
||||||
|
[Header(Raymarcher Properties)]
|
||||||
|
_MaxSteps ("Max steps", Int) = 128
|
||||||
|
_MaxDist ("Max distance", Float) = 128
|
||||||
|
_SurfDist ("Surface distance threshold", Range(0.0001, 0.05)) = 0.001
|
||||||
|
}
|
||||||
|
SubShader
|
||||||
|
{
|
||||||
|
Tags { "RenderType"="Opaque" }
|
||||||
|
Cull Front
|
||||||
|
LOD 100
|
||||||
|
|
||||||
|
Pass
|
||||||
|
{
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma vertex vert
|
||||||
|
#pragma fragment frag
|
||||||
|
|
||||||
|
int _MaxSteps;
|
||||||
|
float _MaxDist;
|
||||||
|
float _SurfDist;
|
||||||
|
#define MAX_STEPS _MaxSteps
|
||||||
|
#define MAX_DIST _MaxDist
|
||||||
|
#define SURF_DIST _SurfDist
|
||||||
|
|
||||||
|
#define REFLECTIONS 2
|
||||||
|
|
||||||
|
#define SCENE_FN main
|
||||||
|
#define LIGHT_FN lighting
|
||||||
|
|
||||||
|
// #define SEPARATE_MATERIAL_AND_DIST_FUNCTIONS
|
||||||
|
// #define SCENE_FN separate_mat
|
||||||
|
// #define DISTANCE_FN separate_dist
|
||||||
|
// #define STEP_MULTIPLIER 0.1
|
||||||
|
|
||||||
|
#define SCENE_SCALE 0.8
|
||||||
|
|
||||||
|
// #define DISABLE_DEPTH
|
||||||
|
// #define DISCARD_ON_MISS
|
||||||
|
#define LIMIT_DEPTH_TO_MESH
|
||||||
|
// #define USE_WORLD_SPACE
|
||||||
|
#include "lib/libgarbage.cginc"
|
||||||
|
|
||||||
|
float3 checkers(float3 p, float3 a, float3 b, float2 size) {
|
||||||
|
float2 q = p.xz / size;
|
||||||
|
q = int2(abs(q) + 0.5);
|
||||||
|
int s = ((q.x + q.y) % 2);
|
||||||
|
return s * a + (1 - s) * b;
|
||||||
|
}
|
||||||
|
|
||||||
|
float3 floor(float3 p) {
|
||||||
|
return lerp(0.15,
|
||||||
|
checkers(p - 1, 0.10, 0.18, .2),
|
||||||
|
smoothstep(16, 0, length(p))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
SurfacePoint mRoundedHex(float3 p, float girth, float height) {
|
||||||
|
SurfacePoint d;
|
||||||
|
d = qRound(mHexPrism(p, girth, height), 0.01);
|
||||||
|
float rounding = 3;
|
||||||
|
d = qIntersect(d, mSphere(p - float3(0, -rounding + height, 0), rounding), 0.01);
|
||||||
|
d = qIntersect(d, mSphere(p + float3(0, -rounding + height, 0), rounding), 0.01);
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
|
SurfacePoint main(float3 p) {
|
||||||
|
float girth = 0.3;
|
||||||
|
float height = 0.1;
|
||||||
|
float inner_radius = 0.18;
|
||||||
|
float thread = 0.013;
|
||||||
|
// float thread = 0.01 + sin(_Time.x * 8) * 0.01 + 0.01;
|
||||||
|
SurfacePoint d;
|
||||||
|
|
||||||
|
float3 rp = rotY(p, _Time.y);
|
||||||
|
rp = rotX(rp, _Time.x);
|
||||||
|
// nut
|
||||||
|
d = mRoundedHex(rp, girth, height);
|
||||||
|
d = qSub(d, mInfCylinder(rp, float3(0, 0, inner_radius)), 0.02);
|
||||||
|
d = qSub(d, mHelix(rp - float3(0, -1, 0), inner_radius, thread, thread/2), 0.003);
|
||||||
|
|
||||||
|
// bolt
|
||||||
|
SurfacePoint bolt_thread = mInfCylinder(rp, float3(0, 0, inner_radius + 0.3));
|
||||||
|
bolt_thread = qSub(bolt_thread, mInfCylinder(rp, float3(0, 0, inner_radius)), 0.02);
|
||||||
|
bolt_thread = qSub(bolt_thread, mHelix(rp - float3(0, -1, 0), inner_radius, thread, thread/2), 0.03);
|
||||||
|
|
||||||
|
|
||||||
|
// d = qUnion(d, bolt_thread);
|
||||||
|
float h = sin(_Time.y) * 0.15 + 0.2;
|
||||||
|
float3 bp = rotY(rp, sin(_Time.y) * UNITY_PI * 4);
|
||||||
|
bp.y -= h;
|
||||||
|
SurfacePoint bolt = qSub(mCylinder(bp, inner_radius+thread*2, 0.2), bolt_thread);
|
||||||
|
bolt = qUnion(bolt, mRoundedHex(bp - float3(0, 0.13, 0), girth, height));
|
||||||
|
bolt = qUnion(bolt, mCylinder(bp - float3(0, -0.17, 0), inner_radius , 0.1), 0.05);
|
||||||
|
Material metal1 = mat(float3(0.5, 0.3, 0.1), 1);
|
||||||
|
Material metal2 = mat(float3(0.3, 0.3, 0.5), 1);
|
||||||
|
d.mat = metal1;
|
||||||
|
bolt.mat = metal2;
|
||||||
|
|
||||||
|
// cube
|
||||||
|
// float3 cp = rotX(bp - float3(0, -0.32, 0), _Time.w * 5);
|
||||||
|
// bolt = qUnion(bolt, mBox(cp, 0.1, mat(float3(0,1,1))),.1);
|
||||||
|
|
||||||
|
d = qUnion(d, bolt);
|
||||||
|
|
||||||
|
// floor
|
||||||
|
|
||||||
|
// d = qUnion(d, mPlaneY(p, -0.5, mat(floor_col, 0)), 0.01);
|
||||||
|
// d = qIntersect(d, mPlaneY(-p, 0.6, mat(floor_col, 0)), 0.01);
|
||||||
|
d = qUnion(d, mBox(p - float3(0, -0.6, 0), float3(6, 0.05, 6), mat(floor(p), 0)));
|
||||||
|
|
||||||
|
// d = qUnion(d, mSphere(p - float3(0, -0.5, 1), 0.4));
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
|
float3 lighting(Ray ray) {
|
||||||
|
float3 sun_dir = normalize(float3(4, 2, 1));
|
||||||
|
|
||||||
|
if (ray.missed) {
|
||||||
|
if (ray.dir.y >= 0) {
|
||||||
|
return lRenderSky(ray.dir, sun_dir);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
float3 cam = ray.start;
|
||||||
|
cam.y += 0.6 - 0.0275;
|
||||||
|
float3 dir = ray.dir;
|
||||||
|
float3 surface_pos = float3 (
|
||||||
|
cam.x - cam.y / (dir.y / dir.x),
|
||||||
|
0,
|
||||||
|
cam.z - cam.y / (dir.y / dir.z)
|
||||||
|
);
|
||||||
|
float col = 1;
|
||||||
|
col = floor(surface_pos);
|
||||||
|
return col * (lSky(float3(0,1,0)) + lSun(float3(0,1,0), sun_dir));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
float3 col = 0;
|
||||||
|
col =
|
||||||
|
// ray.mat.col *
|
||||||
|
lSun(ray.normal, sun_dir);
|
||||||
|
col *= lShadow(ray.hit_pos + ray.normal * SURF_DIST, sun_dir, 50);
|
||||||
|
col +=
|
||||||
|
// ray.mat.col *
|
||||||
|
lSky(ray.normal);
|
||||||
|
// float3(0.5, 0.8, 0.9);
|
||||||
|
// col = ray.mat.col;
|
||||||
|
|
||||||
|
return col*ray.mat.col;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
Assets/raymarched/nut.shader.meta
Normal file
9
Assets/raymarched/nut.shader.meta
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4ba2b5d5658a2f257b227615f65e87f6
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
92
Assets/raymarched/spinny.shader
Normal file
92
Assets/raymarched/spinny.shader
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
Shader "CrispyPin/LibGarbageSpinny"
|
||||||
|
{
|
||||||
|
Properties
|
||||||
|
{
|
||||||
|
[Header(Raymarcher Properties)]
|
||||||
|
_MaxSteps ("Max steps", Int) = 128
|
||||||
|
_MaxDist ("Max distance", Float) = 128
|
||||||
|
_SurfDist ("Surface distance threshold", Range(0.0001, 0.05)) = 0.001
|
||||||
|
}
|
||||||
|
SubShader
|
||||||
|
{
|
||||||
|
Tags { "RenderType"="Opaque" }
|
||||||
|
Cull Front
|
||||||
|
LOD 100
|
||||||
|
|
||||||
|
Pass
|
||||||
|
{
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma vertex vert
|
||||||
|
#pragma fragment frag
|
||||||
|
|
||||||
|
int _MaxSteps;
|
||||||
|
float _MaxDist;
|
||||||
|
float _SurfDist;
|
||||||
|
#define MAX_STEPS _MaxSteps
|
||||||
|
#define MAX_DIST _MaxDist
|
||||||
|
#define SURF_DIST _SurfDist
|
||||||
|
|
||||||
|
#define REFLECTIONS 3
|
||||||
|
|
||||||
|
#define LIGHT_FN lighting
|
||||||
|
#define SCENE_FN main
|
||||||
|
|
||||||
|
// #define SEPARATE_MATERIAL_AND_DIST_FUNCTIONS
|
||||||
|
// #define SCENE_FN separate_mat
|
||||||
|
// #define DISTANCE_FN separate_dist
|
||||||
|
|
||||||
|
// #define DISABLE_DEPTH
|
||||||
|
#define DISCARD_ON_MISS
|
||||||
|
// #define USE_WORLD_SPACE
|
||||||
|
#define SCENE_SCALE 0.05
|
||||||
|
#include "lib/libgarbage.cginc"
|
||||||
|
|
||||||
|
SurfacePoint main(float3 p) {
|
||||||
|
Material grass = mat(float3(0.05, 0.5, 0.1), 0.3);
|
||||||
|
Material dirt = mat(float3(0.5, 0.2, 0.05), 0);
|
||||||
|
Material metal = mat(1, 1);
|
||||||
|
Material blue = mat(float3(0.5, 0.6, 1), 0);
|
||||||
|
|
||||||
|
SurfacePoint d = mPlaneY(p, 0, grass);
|
||||||
|
d = qIntersect(d, mSphere(p, 9, dirt), 0.5);
|
||||||
|
d = qUnion(d, mSphere(p - float3(0, 2, 0), 2, metal));
|
||||||
|
d = qUnion(d, mTorus(rotX(p, _Time * 40 + UNITY_PI / 2), 5, 0.5, blue), 0.5);
|
||||||
|
d = qUnion(d, mTorus(rotZ(p, _Time * 40 + UNITY_PI / 2), 5, 0.5, blue), 0.5);
|
||||||
|
d = qUnion(d, mTorus(rotX(p, _Time * 40), 5, 0.5, blue), 0.5);
|
||||||
|
d = qUnion(d, mTorus(rotZ(p, _Time * 40), 5, 0.5, blue), 0.5);
|
||||||
|
// small spheres
|
||||||
|
float3 p2 = abs(rotY(p, -20 * _Time)) - float3(1.5, sin(_Time.y * 5) + 1, 1.5);
|
||||||
|
d = qUnion(d, mSphere(p2, 0.7, metal), 0.2);
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SurfacePoint separate_mat(float3 p) {
|
||||||
|
// Material blue = mat(float3(0.05, 0.1, 0.2), 0);
|
||||||
|
// SurfacePoint d = mSphere(p, 1, blue);
|
||||||
|
// return d;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// float separate_dist(float3 p) {
|
||||||
|
// return main(p).dist;
|
||||||
|
// }
|
||||||
|
|
||||||
|
float3 lighting(Ray ray) {
|
||||||
|
if (ray.missed)
|
||||||
|
return lRenderSky(ray.dir, normalize(float3(4,2,1)));
|
||||||
|
|
||||||
|
float3 sun_dir = normalize(float3(4, 2, 1));
|
||||||
|
float3 col = 0;
|
||||||
|
col = //ray.mat.col *
|
||||||
|
lSun(ray.normal, sun_dir);
|
||||||
|
col *= lShadow(ray.hit_pos + ray.normal * SURF_DIST, sun_dir, 50);
|
||||||
|
col +=
|
||||||
|
// ray.mat.col *
|
||||||
|
lSky(ray.normal);
|
||||||
|
|
||||||
|
return col * ray.mat.col;
|
||||||
|
}
|
||||||
|
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
Assets/raymarched/spinny.shader.meta
Normal file
9
Assets/raymarched/spinny.shader.meta
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0779c46007e531d31b99fa29d899e9ab
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Loading…
Reference in a new issue