Sensors/Post Processing

This commit is contained in:
Josef 2024-05-08 09:20:23 +02:00
parent 1b1ebb1430
commit 3e6ee6b124
30 changed files with 985 additions and 5 deletions

View File

@ -0,0 +1,34 @@
[gd_resource type="StandardMaterial3D" load_steps=7 format=3 uid="uid://bpl7mn4afiypj"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_vagmq"]
frequency = 0.0039
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_6gvwn"]
noise = SubResource("FastNoiseLite_vagmq")
[sub_resource type="FastNoiseLite" id="FastNoiseLite_ly2yb"]
noise_type = 5
frequency = 0.0147
fractal_type = 2
domain_warp_enabled = true
domain_warp_type = 2
domain_warp_frequency = -0.005
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_bmio7"]
as_normal_map = true
bump_strength = 4.7
noise = SubResource("FastNoiseLite_ly2yb")
[sub_resource type="FastNoiseLite" id="FastNoiseLite_g3ai8"]
frequency = 0.0169
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_ltldy"]
noise = SubResource("FastNoiseLite_g3ai8")
[resource]
albedo_color = Color(1, 0.46585, 0, 1)
metallic = 1.0
metallic_texture = SubResource("NoiseTexture2D_6gvwn")
roughness_texture = SubResource("NoiseTexture2D_ltldy")
normal_enabled = true
normal_texture = SubResource("NoiseTexture2D_bmio7")

34
Scenes/Main/Cube/Red.tres Normal file
View File

@ -0,0 +1,34 @@
[gd_resource type="StandardMaterial3D" load_steps=7 format=3 uid="uid://b80wiio2w25qh"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_vagmq"]
frequency = 0.0039
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_6gvwn"]
noise = SubResource("FastNoiseLite_vagmq")
[sub_resource type="FastNoiseLite" id="FastNoiseLite_ly2yb"]
noise_type = 5
frequency = 0.0147
fractal_type = 2
domain_warp_enabled = true
domain_warp_type = 2
domain_warp_frequency = -0.005
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_bmio7"]
as_normal_map = true
bump_strength = 4.7
noise = SubResource("FastNoiseLite_ly2yb")
[sub_resource type="FastNoiseLite" id="FastNoiseLite_g3ai8"]
frequency = 0.0169
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_ltldy"]
noise = SubResource("FastNoiseLite_g3ai8")
[resource]
albedo_color = Color(0.90732, 0.131442, 0.131442, 1)
metallic = 1.0
metallic_texture = SubResource("NoiseTexture2D_6gvwn")
roughness_texture = SubResource("NoiseTexture2D_ltldy")
normal_enabled = true
normal_texture = SubResource("NoiseTexture2D_bmio7")

Binary file not shown.

View File

@ -0,0 +1,39 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://gklcgf7sdl3q"
path="res://.godot/imported/bevel-cube.glb-1420044da87cfe88eecc87b48a426dc1.scn"
[deps]
source_file="res://Scenes/Main/Cube/bevel-cube.glb"
dest_files=["res://.godot/imported/bevel-cube.glb-1420044da87cfe88eecc87b48a426dc1.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
gltf/naming_version=1
gltf/embedded_image_handling=1

Binary file not shown.

View File

@ -0,0 +1,156 @@
{
"asset": {
"generator": "Khronos glTF Blender I/O v1.5.17",
"version": "2.0"
},
"scene": 0,
"scenes": [
{
"name": "Scene",
"nodes": [
0
]
}
],
"nodes": [
{
"mesh": 0,
"name": "sphere_gltf"
}
],
"materials": [
{
"doubleSided": true,
"name": "forrest_ground_01",
"normalTexture": {
"index": 0
},
"pbrMetallicRoughness": {
"baseColorTexture": {
"index": 1
},
"metallicFactor": 0,
"metallicRoughnessTexture": {
"index": 2
}
}
}
],
"meshes": [
{
"name": "Sphere.001",
"primitives": [
{
"attributes": {
"POSITION": 0,
"NORMAL": 1,
"TEXCOORD_0": 2
},
"indices": 3,
"material": 0
}
]
}
],
"textures": [
{
"sampler": 0,
"source": 0
},
{
"sampler": 0,
"source": 1
},
{
"sampler": 0,
"source": 2
}
],
"images": [
{
"mimeType": "image/jpeg",
"name": "forrest_ground_01_nor_gl_4k",
"uri": "textures/forrest_ground_01_nor_gl_4k.jpg"
},
{
"mimeType": "image/jpeg",
"name": "forrest_ground_01_diff_4k",
"uri": "textures/forrest_ground_01_diff_4k.jpg"
},
{
"mimeType": "image/jpeg",
"name": "forrest_ground_01_rough_4k",
"uri": "textures/forrest_ground_01_rough_4k.jpg"
}
],
"accessors": [
{
"bufferView": 0,
"componentType": 5126,
"count": 53903,
"max": [
0.9983099102973938,
1.0054845809936523,
0.9994760155677795
],
"min": [
-0.9983590245246887,
-1.0049073696136475,
-0.9994903802871704
],
"type": "VEC3"
},
{
"bufferView": 1,
"componentType": 5126,
"count": 53903,
"type": "VEC3"
},
{
"bufferView": 2,
"componentType": 5126,
"count": 53903,
"type": "VEC2"
},
{
"bufferView": 3,
"componentType": 5123,
"count": 322170,
"type": "SCALAR"
}
],
"bufferViews": [
{
"buffer": 0,
"byteLength": 646836,
"byteOffset": 0
},
{
"buffer": 0,
"byteLength": 646836,
"byteOffset": 646836
},
{
"buffer": 0,
"byteLength": 431224,
"byteOffset": 1293672
},
{
"buffer": 0,
"byteLength": 644340,
"byteOffset": 1724896
}
],
"samplers": [
{
"magFilter": 9729,
"minFilter": 9987
}
],
"buffers": [
{
"byteLength": 2369236,
"uri": "forrest_ground_01.bin"
}
]
}

View File

@ -0,0 +1,39 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c4fldr3i0oyrp"
path="res://.godot/imported/forrest_ground_01_4k.gltf-7ecf18e5fcbd362b7bf6f0e48a5f00b2.scn"
[deps]
source_file="res://Scenes/Main/Ground/forrest_ground_01_4k.gltf/forrest_ground_01_4k.gltf"
dest_files=["res://.godot/imported/forrest_ground_01_4k.gltf-7ecf18e5fcbd362b7bf6f0e48a5f00b2.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
gltf/naming_version=1
gltf/embedded_image_handling=1

View File

@ -0,0 +1,19 @@
[gd_resource type="StandardMaterial3D" load_steps=4 format=3 uid="uid://bonr80mq4fvdt"]
[ext_resource type="Texture2D" uid="uid://iug8rifnhrif" path="res://Scenes/Main/Ground/forrest_ground_01_4k.gltf/textures/forrest_ground_01_diff_4k.jpg" id="1_8ocav"]
[ext_resource type="Texture2D" uid="uid://dymhwuu5px0tv" path="res://Scenes/Main/Ground/forrest_ground_01_4k.gltf/textures/forrest_ground_01_nor_gl_4k.jpg" id="2_r5bm1"]
[ext_resource type="Texture2D" uid="uid://c4g7uo6y56me" path="res://Scenes/Main/Ground/forrest_ground_01_4k.gltf/textures/forrest_ground_01_rough_4k.jpg" id="3_k30h8"]
[resource]
albedo_color = Color(0.775275, 0.832644, 0.772255, 1)
albedo_texture = ExtResource("1_8ocav")
metallic = 0.17
metallic_specular = 0.0
roughness = 0.7
roughness_texture = ExtResource("3_k30h8")
normal_enabled = true
normal_texture = ExtResource("2_r5bm1")
anisotropy_enabled = true
anisotropy = 0.53
heightmap_texture = ExtResource("2_r5bm1")
uv1_scale = Vector3(25, 25, 25)

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 MiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://iug8rifnhrif"
path.s3tc="res://.godot/imported/forrest_ground_01_diff_4k.jpg-3ccef6dd76ee25b1e195a8d224b00817.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Scenes/Main/Ground/forrest_ground_01_4k.gltf/textures/forrest_ground_01_diff_4k.jpg"
dest_files=["res://.godot/imported/forrest_ground_01_diff_4k.jpg-3ccef6dd76ee25b1e195a8d224b00817.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 MiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dymhwuu5px0tv"
path.s3tc="res://.godot/imported/forrest_ground_01_nor_gl_4k.jpg-3af546e0540b33bfa6305607f38424ec.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Scenes/Main/Ground/forrest_ground_01_4k.gltf/textures/forrest_ground_01_nor_gl_4k.jpg"
dest_files=["res://.godot/imported/forrest_ground_01_nor_gl_4k.jpg-3af546e0540b33bfa6305607f38424ec.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=1
roughness/src_normal="res://Scenes/Main/Ground/forrest_ground_01_4k.gltf/textures/forrest_ground_01_nor_gl_4k.jpg"
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c4g7uo6y56me"
path.s3tc="res://.godot/imported/forrest_ground_01_rough_4k.jpg-9d281beec41e42908b52690c2a4baac7.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Scenes/Main/Ground/forrest_ground_01_4k.gltf/textures/forrest_ground_01_rough_4k.jpg"
dest_files=["res://.godot/imported/forrest_ground_01_rough_4k.jpg-9d281beec41e42908b52690c2a4baac7.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

View File

@ -0,0 +1,160 @@
{
"asset": {
"generator": "Khronos glTF Blender I/O v4.0.44",
"version": "2.0"
},
"scene": 0,
"scenes": [
{
"name": "Scene",
"nodes": [
0
]
}
],
"nodes": [
{
"mesh": 0,
"name": "sphere_gltf"
}
],
"materials": [
{
"doubleSided": true,
"name": "rock_face_03",
"normalTexture": {
"index": 0
},
"pbrMetallicRoughness": {
"baseColorTexture": {
"index": 1
},
"metallicFactor": 0,
"metallicRoughnessTexture": {
"index": 2
}
}
}
],
"meshes": [
{
"name": "Sphere.001",
"primitives": [
{
"attributes": {
"POSITION": 0,
"NORMAL": 1,
"TEXCOORD_0": 2
},
"indices": 3,
"material": 0
}
]
}
],
"textures": [
{
"sampler": 0,
"source": 0
},
{
"sampler": 0,
"source": 1
},
{
"sampler": 0,
"source": 2
}
],
"images": [
{
"mimeType": "image/jpeg",
"name": "rock_face_03_nor_gl",
"uri": "textures/rock_face_03_nor_gl_4k.jpg"
},
{
"mimeType": "image/jpeg",
"name": "rock_face_03_diff",
"uri": "textures/rock_face_03_diff_4k.jpg"
},
{
"mimeType": "image/jpeg",
"name": "rock_face_03_rough",
"uri": "textures/rock_face_03_arm_4k.jpg"
}
],
"accessors": [
{
"bufferView": 0,
"componentType": 5126,
"count": 53919,
"max": [
1.3686755895614624,
1.3827217817306519,
1.3623400926589966
],
"min": [
-1.368674635887146,
-1.3813852071762085,
-1.362335205078125
],
"type": "VEC3"
},
{
"bufferView": 1,
"componentType": 5126,
"count": 53919,
"type": "VEC3"
},
{
"bufferView": 2,
"componentType": 5126,
"count": 53919,
"type": "VEC2"
},
{
"bufferView": 3,
"componentType": 5123,
"count": 322170,
"type": "SCALAR"
}
],
"bufferViews": [
{
"buffer": 0,
"byteLength": 647028,
"byteOffset": 0,
"target": 34962
},
{
"buffer": 0,
"byteLength": 647028,
"byteOffset": 647028,
"target": 34962
},
{
"buffer": 0,
"byteLength": 431352,
"byteOffset": 1294056,
"target": 34962
},
{
"buffer": 0,
"byteLength": 644340,
"byteOffset": 1725408,
"target": 34963
}
],
"samplers": [
{
"magFilter": 9729,
"minFilter": 9987
}
],
"buffers": [
{
"byteLength": 2369748,
"uri": "rock_face_03.bin"
}
]
}

View File

@ -0,0 +1,39 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bwruwojuogvmo"
path="res://.godot/imported/rock_face_03_4k.gltf-50bd5e53d3378ff465e3cd29d4316100.scn"
[deps]
source_file="res://Scenes/Main/Ground/rock_face_03_4k.gltf/rock_face_03_4k.gltf"
dest_files=["res://.godot/imported/rock_face_03_4k.gltf-50bd5e53d3378ff465e3cd29d4316100.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
gltf/naming_version=1
gltf/embedded_image_handling=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ku62flkr1c5h"
path.s3tc="res://.godot/imported/rock_face_03_arm_4k.jpg-5d576245185961973ef1424db24b39f4.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Scenes/Main/Ground/rock_face_03_4k.gltf/textures/rock_face_03_arm_4k.jpg"
dest_files=["res://.godot/imported/rock_face_03_arm_4k.jpg-5d576245185961973ef1424db24b39f4.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 MiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dvrjek3d1oa1l"
path.s3tc="res://.godot/imported/rock_face_03_diff_4k.jpg-2ab3b928289d559a526fdbb87839c3d2.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Scenes/Main/Ground/rock_face_03_4k.gltf/textures/rock_face_03_diff_4k.jpg"
dest_files=["res://.godot/imported/rock_face_03_diff_4k.jpg-2ab3b928289d559a526fdbb87839c3d2.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 MiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c8ak4lk888f0n"
path.s3tc="res://.godot/imported/rock_face_03_nor_gl_4k.jpg-539bac2957fa1b581aea82b54b94ba99.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Scenes/Main/Ground/rock_face_03_4k.gltf/textures/rock_face_03_nor_gl_4k.jpg"
dest_files=["res://.godot/imported/rock_face_03_nor_gl_4k.jpg-539bac2957fa1b581aea82b54b94ba99.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=1
roughness/src_normal="res://Scenes/Main/Ground/rock_face_03_4k.gltf/textures/rock_face_03_nor_gl_4k.jpg"
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@ -0,0 +1,33 @@
[gd_resource type="ShaderMaterial" load_steps=6 format=3 uid="uid://clmaht40xnoks"]
[ext_resource type="Shader" path="res://Scenes/Main/Post Processing/Post Processing.gdshader" id="1_t3jqc"]
[sub_resource type="Curve" id="Curve_72bdg"]
bake_resolution = 256
_data = [Vector2(0, 0), 0.934966, 0.952334, 0, 0, Vector2(0.5, 0.462264), 0.988347, 0.988347, 0, 0, Vector2(1, 1), 0.888561, 0.662796, 0, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_1xu1n"]
curve = SubResource("Curve_72bdg")
[sub_resource type="Curve" id="Curve_l5ikv"]
bake_resolution = 256
_data = [Vector2(0, 0.502168), 0.0, 2.2638, 0, 0, Vector2(0.164234, 0.745283), 0.158148, 0.158148, 0, 0, Vector2(0.50365, 0.556604), -0.544191, -0.544191, 0, 0, Vector2(0.985401, 0), -2.10622, 0.0, 0, 0]
point_count = 4
[sub_resource type="CurveTexture" id="CurveTexture_bljsk"]
curve = SubResource("Curve_l5ikv")
[resource]
shader = ExtResource("1_t3jqc")
shader_parameter/distortionSpread = 0.0
shader_parameter/distortionOffset = 0.0
shader_parameter/saturationMultiply = 1.05
shader_parameter/effectStrength = 1.0
shader_parameter/vignetteStrength = 0.595
shader_parameter/vignetteSize = 0.772
shader_parameter/vignetteSmoothnes = 7.257
shader_parameter/vignetteColor = Vector4(0.06, 0.24, 0.68, 0)
shader_parameter/vignetteOffset = 0.1
shader_parameter/lightnessCurve = SubResource("CurveTexture_1xu1n")
shader_parameter/lightnessSaturationCurve = SubResource("CurveTexture_bljsk")

View File

@ -0,0 +1,94 @@
shader_type canvas_item;
const float HCV_EPSILON = 1e-10;
const float HSL_EPSILON = 1e-10;
uniform sampler2D screen_texture:
hint_screen_texture,
repeat_disable,
filter_linear_mipmap;
uniform sampler2D distortion:source_color;
uniform float distortionSpread : hint_range(0,0.08) = 0.05;
uniform float distortionOffset : hint_range(0,0.08) = 0.05;
uniform sampler2D lightnessCurve;
uniform sampler2D lightnessSaturationCurve;
uniform float saturationMultiply: hint_range(0,10) = 1;
uniform float effectStrength : hint_range(0,1) = 1;
uniform float vignetteStrength : hint_range(0,1) =1;
uniform float vignetteSize : hint_range(0.1,10)=1;
uniform float vignetteSmoothnes : hint_range(0.1,10) =1;
uniform vec4 vignetteColor = vec4(0,0,0,1);
uniform float vignetteOffset : hint_range(-1,1) =0.1;
vec3 RGBtoHCV( vec3 rgb )
{
vec4 P = (rgb.g < rgb.b) ? vec4(rgb.bg, -1.0, 2.0/3.0) : vec4(rgb.gb, 0.0, -1.0/3.0);
vec4 Q = (rgb.r < P.x) ? vec4(P.xyw, rgb.r) : vec4(rgb.r, P.yzx);
float C = Q.x - min(Q.w, Q.y);
float H = abs((Q.w - Q.y) / (6.0 * C + HCV_EPSILON) + Q.z);
return vec3(H, C, Q.x);
}
vec3 RGBtoHSL( vec3 rgb )
{
vec3 HCV = RGBtoHCV( rgb );
float L = HCV.z - HCV.y * 0.5;
float S = HCV.y / (1.0 - abs(L * 2.0 - 1.0) + HSL_EPSILON);
return vec3( HCV.x, S, L);
}
vec3 HuetoRGB( float hue )
{
float R = abs(hue * 6.0 - 3.0) - 1.0;
float G = 2.0 - abs(hue * 6.0 - 2.0);
float B = 2.0 - abs(hue * 6.0 - 4.0);
return clamp(vec3(R,G,B),0,1);
}
vec3 HSLtoRGB( vec3 hsl)
{
vec3 rgb = HuetoRGB( hsl.x );
float C = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y;
return (rgb - 0.5) * C + hsl.z;
}
vec3 toLinear( vec3 sRGB )
{
return mix(pow((sRGB + vec3(0.055)) * (1.0 / (1.0 + 0.055)),vec3(2.4)),sRGB * (1.0 / 12.92),lessThan(sRGB,vec3(0.04045)));
}
void fragment()
{
vec3 distortionValues = texture( distortion, UV ).rgb;
// distortionValues = toLinear( distortionValues );
distortionValues -= vec3( 0.5, 0.5, 0 );
vec2 seperation = vec2( distortionValues.z, 0 ) * distortionSpread;
vec2 uvDistortion = distortionValues.xy * distortionOffset;
vec2 uv = UV + uvDistortion;
float r = texture( screen_texture, uv - seperation ).r;
float g = texture( screen_texture, uv ).g;
float b = texture( screen_texture, uv + seperation ).b;
vec3 rgb = vec3( r, g, b);
vec3 hsl = RGBtoHSL( rgb );
float mappedLightness = texture( lightnessCurve, vec2(hsl.z,0) ).r;
hsl.z = mappedLightness;
float saturationOffset = texture( lightnessSaturationCurve, vec2(mappedLightness,0) ).r;
hsl.y = clamp( hsl.y + (saturationOffset - 0.5),0,1);
hsl.y = hsl.y * saturationMultiply;
rgb = mix( rgb, HSLtoRGB( hsl ), effectStrength ) ;
float d = ( max(0,vignetteOffset + length( UV - vec2(0.5,0.5 )) )) / vignetteSize;
d = pow( d, vignetteSmoothnes );
rgb = mix( rgb, vignetteColor.rgb * rgb, d * vignetteStrength );
COLOR = vec4( rgb, 1 );
}

View File

@ -0,0 +1,6 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://boee6yoxxqlh4"]
[resource]
albedo_color = Color(0.846222, 0.795978, 0.808724, 1)
metallic = 0.75
roughness = 0.17

View File

@ -1,15 +1,65 @@
[gd_scene load_steps=8 format=3 uid="uid://i7w8ikjtrf50"]
[gd_scene load_steps=16 format=4 uid="uid://i7w8ikjtrf50"]
[ext_resource type="Script" path="res://Scripts/Rokojori/Rokojori-Action-Library/Runtime/Actions/OnReady.cs" id="1_yccmv"]
[ext_resource type="Script" path="res://Scripts/Rokojori/Rokojori-Action-Library/Runtime/Actions/ActionList.cs" id="2_700ed"]
[ext_resource type="Script" path="res://Scripts/Rokojori/Rokojori-Action-Library/Runtime/Actions/GDPrint.cs" id="3_1k601"]
[ext_resource type="Script" path="res://Scripts/Rokojori/Rokojori-Action-Library/Runtime/Sensors/InputSensor.cs" id="4_n75gv"]
[ext_resource type="Material" uid="uid://clmaht40xnoks" path="res://Scenes/Main/Post Processing/Post Processing Material.tres" id="4_nld4j"]
[ext_resource type="Script" path="res://Scripts/Rokojori/Rokojori-Action-Library/Runtime/Sensors/OnSensor.cs" id="5_2svkf"]
[ext_resource type="Sky" uid="uid://bh5lty4gkpl05" path="res://Scenes/Main/Sky/Sky.tres" id="6_j62u8"]
[ext_resource type="Material" uid="uid://boee6yoxxqlh4" path="res://Scenes/Main/Sphere/SphereMaterial.tres" id="7_4bw4m"]
[ext_resource type="Material" uid="uid://bonr80mq4fvdt" path="res://Scenes/Main/Ground/forrest_ground_01_4k.gltf/textures/Forest Ground.tres" id="7_nxv8j"]
[ext_resource type="Material" uid="uid://b80wiio2w25qh" path="res://Scenes/Main/Cube/Red.tres" id="10_1p0wn"]
[ext_resource type="Material" uid="uid://bpl7mn4afiypj" path="res://Scenes/Main/Cube/OrangeCube.tres" id="11_aafwq"]
[sub_resource type="Environment" id="Environment_ac8gh"]
background_mode = 2
sky = ExtResource("6_j62u8")
tonemap_white = 2.0
ssao_enabled = true
ssao_radius = 0.75
ssao_intensity = 2.88
ssao_power = 1.60766
ssao_detail = 0.71
ssao_horizon = 0.07
ssao_sharpness = 1.0
ssao_light_affect = 1.0
ssao_ao_channel_affect = 1.0
glow_enabled = true
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5npgd"]
[sub_resource type="ArrayMesh" id="ArrayMesh_84g0c"]
_surfaces = [{
"aabb": AABB(-1, -1, -1, 2, 2, 2),
"format": 34896613377,
"index_count": 324,
"index_data": PackedByteArray("HgAHACQAHgABAAcALAAlADIALAAdACUAMQAIABUAMQAjAAgAAgAXAAkAAgAPABcAEAAzABYAEAArADMAAAAEAAMAAAAGAAQAAQAEAAUAAQADAAQAAgAEAAYAAgAFAAQABwALAAoABwANAAsACAALAAwACAAKAAsACQALAA0ACQAMAAsADgASABEADgAUABIADwASABMADwARABIAEAASABQAEAATABIAFQAZABgAFQAbABkAFgAZABoAFgAYABkAFwAZABsAFwAaABkAHAAgAB8AHAAiACAAHQAgACEAHQAfACAAHgAgACIAHgAhACAAIwAnACYAIwApACcAJAAnACgAJAAmACcAJQAnACkAJQAoACcAKgAuAC0AKgAwAC4AKwAuAC8AKwAtAC4ALAAuADAALAAvAC4AMQA1ADQAMQA3ADUAMgA1ADYAMgA0ADUAMwA1ADcAMwA2ADUADgAGAAAADgARAAYAEQACAAYAEQAPAAIAAQANAAcAAQAFAA0ABQAJAA0ABQACAAkACAAbABUACAAMABsADAAXABsADAAJABcAFgATABAAFgAaABMAGgAPABMAGgAXAA8AKgAUAA4AKgAtABQALQAQABQALQArABAAFQA3ADEAFQAYADcAGAAzADcAGAAWADMAMgAvACwAMgA2AC8ANgArAC8ANgAzACsAHAAwACoAHAAfADAAHwAsADAAHwAdACwAMQApACMAMQA0ACkANAAlACkANAAyACUAJAAhAB4AJAAoACEAKAAdACEAKAAlAB0AAAAiABwAAAADACIAAwAeACIAAwABAB4AIwAKAAgAIwAmAAoAJgAHAAoAJgAkAAcADgAcACoADgAAABwA"),
"lods": [0.0117929, PackedByteArray("HgAKACYAJgAlAB4ACgANAAsABQANAAoAHgAFAAoAAwAFAB4ABQADAAQAAwAeACIAHgAgACIAJQAgAB4ALAAgACUALAAlADUAIAAsAC0ANQAzACwAMwAtACwAHAAgAC0AHAAiACAAAwAiABwAEQAcAC0AEQADABwALQAUABEAEQAUABIAEQAGAAMAAwAGAAQAEAAtADMALQAQABQAEAASABQAEAATABIAEAAzABoAGgATABAAGAAaADMAGgAYABkAGAAzADcAMwA1ADcAEwARABIAEQATAAYAGgAXABMABgATABcAFwAaABkAFwAZABsADAAXABsADAANABcABgAXAA0ADQAMAAsABQAGAA0ABgAFAAQANQAlACYAMQA1ACYAMQA3ADUAGAA3ADEAMQAmAAwAMQAMABgAJgAKAAwADAAKAAsADAAbABgAGAAbABkAJgAnACUAJQAnACYALQAuACwALAAuAC0A"), 0.173892, PackedByteArray("IgAFACYAJgAFAAsABQAiAAQAJgAnACIAJwAgACIALgAnADUALgAgACcANwAmABsANwAbABkAGwAmAAsANwA1ACYANQAnACYABgAbAAUABgAFAAQABQAbAAsABgATABsAEwAGABIAGgAbABMAGwAaABkALQA3ABoAGgA3ABkAGgATAC0ALQATABIANwAtAC4ANQA3AC4AIgAGAAQABgAiAC0ABgAtABIAIgAgAC0AIAAuAC0A")],
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 56,
"vertex_data": PackedByteArray("egQAAIT7AAB6BHoE//8AAAAAegSE+wAAegRPAa/+AADkAeQBGv4AAE8BegSv/gAATwFPAYT7AAB6BIT7//8AAHoE//+E+wAAAACE+4T7AAB6BK/+r/4AAOQBGv4a/gAATwGv/oT7AABPAYT7r/4AAHoEAAB6BAAAAAB6BHoEAAB6BHoEAAAAAE8BTwF6BAAA5AHkAeQBAABPAXoETwEAAHoETwFPAQAAegT//3oEAAB6BIT7AAAAAAAAhPt6BAAAegSv/k8BAADkARr+5AEAAE8BhPtPAQAATwGv/noEAACE+wAAhPsAAP//egSE+wAAhPt6BP//AACv/k8BhPsAABr+5AEa/gAAr/56BK/+AACE+08Br/4AAIT7//+E+wAAhPuE+///AAD//4T7hPsAAIT7r/6v/gAAGv4a/hr+AACv/oT7r/4AAK/+r/6E+wAAhPsAAHoEAACE+3oEAAAAAP//egR6BAAAhPtPAU8BAAAa/uQB5AEAAK/+egRPAQAAr/5PAXoEAACE+///egQAAP//hPt6BAAAhPuE+wAAAACv/q/+egQAABr+Gv7kAQAAr/6E+08BAACE+6/+TwEAAA==")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_hfjcl"]
resource_name = "bevel-cube_Cube"
_surfaces = [{
"aabb": AABB(-1, -1, -1, 2, 2, 2),
"attribute_data": PackedByteArray("HiEeQR5hHgEeYeD+HiH/P/9fHgF5IP8//1+F/3hgAAAeYQAAHmH///8fHkH/X+D+4J4eAeDeHkHgnuD+/58eAeDe/z+Gn////595AP/feED/n+D+/98eQeCeAADgnv//HiHgfh5hHcEeYeC+/x/gfv9fHcH/H4Z//1+Gv3hg/78eYf+/HiH/f/9f4L7g3uB+4J7gvuCeHcH/n+C+4N7/f4af/7//n3jAhd//f+Ce/7//nx3B/9/gfuBeHkEeYR5BHmHhPv9fHkEoYP8/HmH/P+Be/z//X+E+HqEeQeCe4T7gnh5B/5/hPh6h/z//nyhA4J7/P/+fHkHgXuB+HmEegR5h4H7gXv9//18egf9f138eYf9//1/gfh6h4H7gnuB+4J4egf+f4H7Wn/9/4J7/f/+fHoEeof9/eSD/P3hgAAAeYQAAHmH///8fHkH/X+D+hp////+feQD/33hA/x+Gf/9fhr94YP+/HmH/vx5h/7+Gn/+/hd//f+Ce/7//nx3B/9/gfihg/z8oYP8/KGD/P+Be/z//X+E+/5/hPh6h/z//nyhA/58oQP+fKEDgXv9//18egf9f13//X9d//1/Xf9af/3/Wn/9/1p//f/+fHoEeof9/HiH/Px5hAAD/X+D+/58eAf+f4P7/3x5B4J7///8f4H4eYf+/HiH/f/+f4L7g3v9/4J7/vx5h4T4oYP8/KGD/P+CeHkHgnh5B/5/hPh6h/z8eYeB+4F7/f/9fHoHgnh6B1p//f9af/38="),
"format": 34896613399,
"index_count": 324,
"index_data": PackedByteArray("MAAMADcAMAABAAwAQAA4AEcAQAAvADgARgANACMARgA2AA0AAgAlAA4AAgAZACUAGgBIACQAGgA/AEgAAAAFAAMAAAAKAAUAAQAHAAgAAQAEAAcAAgAGAAsAAgAJAAYADAASAA8ADAAWABIADQATABUADQAQABMADgARABcADgAUABEAGAAdABsAGAAhAB0AGQAfACAAGQAcAB8AGgAeACIAGgAgAB4AIwAqACcAIwAtACoAJAAoACsAJAAmACgAJQApACwAJQArACkALgAyADEALgA0ADIALwAyADMALwAxADIAMAAyADUAMAAzADIANgA7ADoANgA9ADsANwA7ADwANwA5ADsAOAA7AD0AOAA8ADsAPgBDAEEAPgBFAEMAPwBDAEQAPwBCAEMAQABDAEUAQABEAEMARgBKAEkARgBNAEoARwBKAEsARwBJAEoASABKAEwASABLAEoAGAAKAAAAGAAbAAoAHAACAAsAHAAZAAIAAQAWAAwAAQAIABYACQAOABcACQACAA4ADQAtACMADQAVAC0AFAAlACwAFAAOACUAJAAgABoAJAArACAAKwAZACAAKwAlABkAPgAhABgAPgBBACEAQgAaACIAQgA/ABoAIwBNAEYAIwAnAE0AJgBIAEwAJgAkAEgARwBEAEAARwBLAEQASwA/AEQASwBIAD8ALgBFAD4ALgAxAEUAMQBAAEUAMQAvAEAARgA9ADYARgBJAD0ASQA4AD0ASQBHADgANwAzADAANwA8ADMAPAAvADMAPAA4AC8AAAA0AC4AAAADADQABAAwADUABAABADAANgAQAA0ANgA6ABAAOQAMAA8AOQA3AAwAGAAuAD4AGAAAAC4A"),
"lods": [0.0117929, PackedByteArray("ggB4AIcAhwCGAIIAeAAWABIAdgAWAHgAggB2AHgABAB2AIIAdgAEAAcABACCADUAggCEADUAhQCDAIIAiQCDAIUAiQCFAI0AgwCJAIoAjQCMAIkAjACLAIkALgCEAIoALgA0AIQAdQA0AC4AfAAuAIoAfAB1AC4AigB+AHwAfAB+AB0AfAAKAHUAdQAKAAUAGgCLAIwAiwAaACIAGgAeACIAGgB9AB4AGgCMAIEAgQB9ABoAfwCBAIwAgQB/ACgAfwCMAEwAjACOAEwAfQAcAB8AHAB9AHcAgQAlAH0AdwB9ACUAJQCBACkAJQApACwAeQAlACwAeQB7ACUAdwAlAHsAewB5ABEACQB3AHsAdwAJAAYAjgCFAIgARgCOAIgARgBNAI4AgABNAEYARgCIAHoARgB6AIAAiAAQAHoAegAQABMAegAtAIAAgAAtACoAOQA7ADgAOAA7ADoAQgBDAEAAQABDAEEA"), 0.173892, PackedByteArray("ZQBQAGYAZgBQAFUAUABlAE8AZgBqAGUAagBjAGUAbQBoAHAAbQBhAGgAdABnAGAAdABgAF0AYABnAFYAdAByAGcAcgBpAGcAUwBfAFEAUwBRAAYAUQBfAFQAUwBaAF8AWgBTAFkAKwBfAFoAXwArACkAbABzAF4AXgBzAFwAXgBbAGwAbABbAFgAcwBsAG4AcQBzAG4AZABSAE4AUgBkAGsAUgBrAFcAZABiAGsAYgBvAGsA")],
"material": SubResource("StandardMaterial3D_5npgd"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 143,
"vertex_data": PackedByteArray("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")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_84g0c")
[node name="Main" type="Node3D"]
@ -32,7 +82,15 @@ message = "I'm Ready"
[node name="Camera Rig" type="Node" parent="."]
[node name="Camera3D" type="Camera3D" parent="Camera Rig"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.56642)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 4)
[node name="ColorRect" type="ColorRect" parent="Camera Rig"]
material = ExtResource("4_nld4j")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Interactions" type="Node" parent="."]
@ -51,9 +109,68 @@ onStart = NodePath("Print Pressed")
script = ExtResource("3_1k601")
message = "Pressed"
[node name="Node" type="Node" parent="."]
[node name="Level" type="Node" parent="."]
[node name="WorldEnvironment" type="WorldEnvironment" parent="Level"]
environment = SubResource("Environment_ac8gh")
[node name="Floor" type="CSGBox3D" parent="Level"]
transform = Transform3D(100, 0, 0, 0, 1, 0, 0, 0, 100, 0, -0.5, 0)
material_override = ExtResource("7_nxv8j")
metadata/_edit_lock_ = true
[node name="Sphere" type="CSGSphere3D" parent="Level"]
transform = Transform3D(1.40501, 0, 0, 0, 1.40501, 0, 0, 0, 1.40501, 0, 0.0667043, 0)
material_override = ExtResource("7_4bw4m")
radial_segments = 32
rings = 32
[node name="Sphere4" type="CSGSphere3D" parent="Level"]
transform = Transform3D(1.40501, 0, 0, 0, 1.40447, -0.0389359, 0, 0.0389359, 1.40447, -2.45914, 0.0667043, -3.91798)
material_override = ExtResource("7_4bw4m")
radial_segments = 32
rings = 32
[node name="Sphere5" type="CSGSphere3D" parent="Level"]
transform = Transform3D(0.852811, 0, 0, 0, 0.852811, 0, 0, 0, 0.852811, -2.45914, 1.0601, -3.91798)
material_override = ExtResource("7_4bw4m")
radial_segments = 32
rings = 32
[node name="Sphere6" type="CSGSphere3D" parent="Level"]
transform = Transform3D(1.40501, 0, 0, 0, 1.40447, -0.0389359, 0, 0.0389359, 1.40447, 3.55949, 0.0667043, -3.91798)
material_override = ExtResource("7_4bw4m")
radial_segments = 32
rings = 32
[node name="Sphere7" type="CSGSphere3D" parent="Level"]
transform = Transform3D(0.852811, 0, 0, 0, 0.852811, 0, 0, 0, 0.852811, 3.55949, 1.0601, -3.91798)
material_override = ExtResource("7_4bw4m")
radial_segments = 32
rings = 32
[node name="Sphere2" type="CSGSphere3D" parent="Level"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.86503, 0)
material_override = ExtResource("7_4bw4m")
radial_segments = 32
rings = 32
[node name="Sphere3" type="CSGSphere3D" parent="Level"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.09204, 0)
material_override = ExtResource("7_4bw4m")
radial_segments = 32
rings = 32
[node name="Cube2" type="MeshInstance3D" parent="Level"]
transform = Transform3D(0.47285, 0, 0.16252, 0, 0.5, 0, -0.16252, 0, 0.47285, -1.63786, 0.5, -5.75436)
material_override = ExtResource("10_1p0wn")
extra_cull_margin = 50.0
mesh = SubResource("ArrayMesh_hfjcl")
skeleton = NodePath("")
[node name="Cube3" type="MeshInstance3D" parent="Level"]
transform = Transform3D(0.389297, 0, 0.313764, 0, 0.5, 0, -0.313764, 0, 0.389297, 2.30825, 0.5, -4.76624)
material_override = ExtResource("11_aafwq")
extra_cull_margin = 50.0
mesh = SubResource("ArrayMesh_hfjcl")
skeleton = NodePath("")

@ -1 +1 @@
Subproject commit 7886e824243e4c2b7a9170f7adef915d3afa84a5
Subproject commit a8e7988c2a6bd980b513ec10115cc691afb20c2d