From 87b88629536ace71df8d42894bb1c62ff82e0f97 Mon Sep 17 00:00:00 2001 From: Josef Date: Sat, 19 Jul 2025 08:23:19 +0200 Subject: [PATCH] Render Update & Sync --- Example Grass/Example-Grass.tscn | 422 ++++++++++++++++++++++++++++--- addons/rokojori_action_library | 2 +- 2 files changed, 384 insertions(+), 40 deletions(-) diff --git a/Example Grass/Example-Grass.tscn b/Example Grass/Example-Grass.tscn index c261e39..527cb99 100644 --- a/Example Grass/Example-Grass.tscn +++ b/Example Grass/Example-Grass.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=79 format=4 uid="uid://bi4sydudfwap6"] +[gd_scene load_steps=116 format=4 uid="uid://bi4sydudfwap6"] [ext_resource type="Script" uid="uid://bo0awqfi5eqg4" path="res://addons/rokojori_action_library/Runtime/Procedural/Assets/Grass/GrassPatch.cs" id="1_ajxn3"] [ext_resource type="Texture2D" uid="uid://bs16srd4audv6" path="res://Example Grass/Sky.jpg" id="1_wf46h"] @@ -30,7 +30,7 @@ tonemap_mode = 2 tonemap_exposure = 1.2 ssao_enabled = true ssao_radius = 0.5 -ssao_intensity = 3.0 +ssao_intensity = 3.41 ssao_light_affect = 1.0 ssao_ao_channel_affect = 1.0 glow_enabled = true @@ -41,6 +41,8 @@ fog_density = 0.003 fog_aerial_perspective = 1.0 fog_sky_affect = 0.0 +[sub_resource type="Compositor" id="Compositor_n7e3p"] + [sub_resource type="FastNoiseLite" id="FastNoiseLite_n7e3p"] frequency = 0.0055 fractal_lacunarity = 6.0 @@ -120,6 +122,15 @@ shader_parameter/windStart = 0.067 shader_parameter/windEnd = 0.467 shader_parameter/windWeightCurve = 0.015 shader_parameter/windHeightCompensation = 0.655 +shader_parameter/obstaclesEnabeld = true +shader_parameter/obstacle1 = Vector4(5.38014, 0.668354, 10.6536, 0.8265) +shader_parameter/obstacle2 = Vector4(0, 0, 0, 0) +shader_parameter/obstacle3 = Vector4(0, 0, 0, 0) +shader_parameter/obstacle4 = Vector4(0, 0, 0, 0) +shader_parameter/obstacleDeformation = 2.0 +shader_parameter/obstacleScale = 1.0 +shader_parameter/maxDeformation = 0.2 +shader_parameter/maxYOffset = 0.02 [sub_resource type="Curve" id="Curve_q33fm"] _data = [Vector2(0, 0), 0.0, 1.0, 0, 1, Vector2(1, 1), 1.0, 0.0, 1, 0] @@ -291,16 +302,25 @@ shader_parameter/ao_light_affect = 1.0 shader_parameter/uv1_scale = Vector3(1, 1, 0) shader_parameter/uv1_offset = Vector3(0, 0, 0) shader_parameter/windEnabled = true -shader_parameter/windStrength = 0.3 +shader_parameter/windStrength = 0.479 shader_parameter/windSpeed = Vector2(0.118, 0.1) shader_parameter/windScale = 0.1 shader_parameter/windNoise = SubResource("NoiseTexture2D_enf7l") shader_parameter/windNoiseAngleOffset = Vector2(0, 0) shader_parameter/windNoiseStrengthOffset = Vector2(0.2, 0) -shader_parameter/windStart = 0.0485 +shader_parameter/windStart = 0.0291 shader_parameter/windEnd = 0.3285 -shader_parameter/windWeightCurve = 0.0 -shader_parameter/windHeightCompensation = 0.0 +shader_parameter/windWeightCurve = 0.175 +shader_parameter/windHeightCompensation = 0.027 +shader_parameter/obstaclesEnabeld = true +shader_parameter/obstacle1 = Vector4(5.38014, 0.668354, 10.6536, 0.8265) +shader_parameter/obstacle2 = Vector4(0, 0, 0, 0) +shader_parameter/obstacle3 = Vector4(0, 0, 0, 0) +shader_parameter/obstacle4 = Vector4(0, 0, 0, 0) +shader_parameter/obstacleDeformation = 1.0 +shader_parameter/obstacleScale = 1.0 +shader_parameter/maxDeformation = 0.3 +shader_parameter/maxYOffset = 0.1 [sub_resource type="Curve" id="Curve_wf46h"] _data = [Vector2(0, 0.0837276), 0.0, 0.147587, 0, 1, Vector2(1, 0.231315), 0.147587, 0.0, 1, 0] @@ -358,6 +378,7 @@ _surfaces = [{ [sub_resource type="Resource" id="Resource_8t2rj"] script = ExtResource("6_ukfl2") meshInstanceReference = NodePath("../GrassPatch/MeshInstance3D") +enabled = true cellSize = 0.8475 visibilityRange = 40.0 visibilityFadeRelative = 0.72 @@ -378,8 +399,8 @@ scaleVarianceMaxScale = Vector3(1.5, 2.2405, 1.5) scaleVarianceScale = 0.126 scaleVarianceOffset = Vector2(0, 0) occupancyVarianceAmount = 1.0 -occupancyVariancePower = 25.223 -occupancyTreshold = 0.4695 +occupancyVariancePower = 50.0 +occupancyTreshold = 0.3869 occupancyHideOffset = -0.047 occupancyHideScale = 0.135 occupancyVarianceScale = 0.7285 @@ -389,11 +410,12 @@ metadata/_custom_type_script = "uid://c5ia5ogtg1725" [sub_resource type="Resource" id="Resource_0em6d"] script = ExtResource("6_ukfl2") meshInstanceReference = NodePath("../GrassPatch2/Grass Patch") -cellSize = 0.548 +enabled = true +cellSize = 0.58 visibilityRange = 5.0 visibilityFadeRelative = 0.5 visibilityFadeAbsolute = 0.0 -visibilityFadeHidingOffset = -0.023 +visibilityFadeHidingOffset = -0.128 renderPriority = 0 qualitySettings = [] layerName = "" @@ -405,7 +427,7 @@ rotationMax = Vector3(0, 1, 0) rotationVarianceScale = 1.0 rotationVarianceOffset = Vector2(0, 0) scaleVarianceMinScale = Vector3(0.2, 0.2, 0.2) -scaleVarianceMaxScale = Vector3(2, 2, 2) +scaleVarianceMaxScale = Vector3(3, 3, 3) scaleVarianceScale = 1.0 scaleVarianceOffset = Vector2(0, 0) occupancyVarianceAmount = 0.0 @@ -417,6 +439,38 @@ occupancyVarianceScale = 1.0 occupancyVarianceOffset = Vector2(0, 0) metadata/_custom_type_script = "uid://c5ia5ogtg1725" +[sub_resource type="Resource" id="Resource_uh2yf"] +script = ExtResource("6_ukfl2") +meshInstanceReference = NodePath("../GrassPatch3/Grass Patch") +enabled = true +cellSize = 2.0985 +visibilityRange = 45.0 +visibilityFadeRelative = 0.5 +visibilityFadeAbsolute = 0.0 +visibilityFadeHidingOffset = -1.0 +renderPriority = 0 +qualitySettings = [] +layerName = "" +positionVarianceMaxOffset = Vector3(30, 0, 30) +positionVarianceScale = 1.0 +positionVarianceOffset = Vector2(0, 0) +rotationMin = Vector3(-0.2, 0, -0.2) +rotationMax = Vector3(0.2, 1, 0.2) +rotationVarianceScale = 5.6525 +rotationVarianceOffset = Vector2(0, 0) +scaleVarianceMinScale = Vector3(0.1, 0.1, 0.1) +scaleVarianceMaxScale = Vector3(3, 3, 3) +scaleVarianceScale = 4.0 +scaleVarianceOffset = Vector2(0, 0) +occupancyVarianceAmount = 0.0 +occupancyVariancePower = 26.8948 +occupancyTreshold = 0.476 +occupancyHideOffset = -2.0 +occupancyHideScale = 0.1 +occupancyVarianceScale = 1.0 +occupancyVarianceOffset = Vector2(0, 0) +metadata/_custom_type_script = "uid://c5ia5ogtg1725" + [sub_resource type="Resource" id="Resource_lvhug"] script = ExtResource("9_n7e3p") qualityLevel = 0.0 @@ -438,13 +492,13 @@ cellSizeMultiply = 0.77 visibilityRangeMultiply = 1.6195 metadata/_custom_type_script = "uid://bdcpb8ug5evdx" -[sub_resource type="ShaderMaterial" id="ShaderMaterial_uh2yf"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_n7e3p"] shader = ExtResource("9_wf46h") -shader_parameter/cameraPosition = Vector3(45.0788, 3.24521, 3.59066) +shader_parameter/cameraPosition = Vector3(-1.06688, 3.13132, 10.4573) shader_parameter/yaw = 0.0 -shader_parameter/cellSize = 0.652575 -shader_parameter/width = 200 -shader_parameter/height = 200 +shader_parameter/cellSize = 0.8475 +shader_parameter/width = 96 +shader_parameter/height = 96 shader_parameter/positionVariance = ExtResource("7_q33fm") shader_parameter/maxPositionOffset = Vector3(3, 0, 3) shader_parameter/positionUVScale = Vector2(0.2135, 0.2135) @@ -461,27 +515,27 @@ shader_parameter/maxScale = Vector3(1.5, 2.2405, 1.5) shader_parameter/scaleUVScale = Vector2(0.126, 0.126) shader_parameter/scaleUVOffset = Vector2(0, 0) shader_parameter/occupancyAmount = 1.0 -shader_parameter/occupancyPower = 25.223 -shader_parameter/occupancyTreshold = 0.4695 +shader_parameter/occupancyPower = 50.0 +shader_parameter/occupancyTreshold = 0.3869 shader_parameter/occupancyHideOffset = -0.047 shader_parameter/occupancyHideScale = 0.135 shader_parameter/occupancyVariance = ExtResource("7_q33fm") shader_parameter/occupancyUVScale = Vector2(0.7285, 0.7285) shader_parameter/occupancyUVOffset = Vector2(0, 0) -shader_parameter/hideStart = 18.1384 -shader_parameter/hideMax = 64.78 +shader_parameter/hideStart = 11.2 +shader_parameter/hideMax = 40.0 shader_parameter/hideOffset = -0.5322 shader_parameter/mapSize = Vector2(1024, 1024) shader_parameter/mapCenter = Vector2(0, 0) script = ExtResource("8_3k1et") -[sub_resource type="ShaderMaterial" id="ShaderMaterial_jsf0k"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_lvhug"] shader = ExtResource("9_wf46h") -shader_parameter/cameraPosition = Vector3(45.0788, 3.24521, 3.59066) +shader_parameter/cameraPosition = Vector3(-1.06688, 3.13132, 10.4573) shader_parameter/yaw = 0.0 -shader_parameter/cellSize = 0.42196 -shader_parameter/width = 40 -shader_parameter/height = 40 +shader_parameter/cellSize = 0.58 +shader_parameter/width = 18 +shader_parameter/height = 18 shader_parameter/positionVariance = ExtResource("7_q33fm") shader_parameter/maxPositionOffset = Vector3(10, 0, 10) shader_parameter/positionUVScale = Vector2(3, 3) @@ -494,7 +548,7 @@ shader_parameter/rotationUVScale = Vector2(1, 1) shader_parameter/rotationUVOffset = Vector2(0, 0) shader_parameter/scaleVariance = ExtResource("7_q33fm") shader_parameter/minScale = Vector3(0.2, 0.2, 0.2) -shader_parameter/maxScale = Vector3(2, 2, 2) +shader_parameter/maxScale = Vector3(3, 3, 3) shader_parameter/scaleUVScale = Vector2(1, 1) shader_parameter/scaleUVOffset = Vector2(0, 0) shader_parameter/occupancyAmount = 0.0 @@ -505,17 +559,248 @@ shader_parameter/occupancyHideScale = 0.044 shader_parameter/occupancyVariance = ExtResource("7_q33fm") shader_parameter/occupancyUVScale = Vector2(1, 1) shader_parameter/occupancyUVOffset = Vector2(0, 0) -shader_parameter/hideStart = 4.04875 -shader_parameter/hideMax = 8.0975 -shader_parameter/hideOffset = -0.023 +shader_parameter/hideStart = 2.5 +shader_parameter/hideMax = 5.0 +shader_parameter/hideOffset = -0.128 shader_parameter/mapSize = Vector2(1024, 1024) shader_parameter/mapCenter = Vector2(0, 0) script = ExtResource("8_3k1et") +[sub_resource type="ShaderMaterial" id="ShaderMaterial_6u5q2"] +shader = ExtResource("9_wf46h") +shader_parameter/cameraPosition = Vector3(-1.06688, 3.13132, 10.4573) +shader_parameter/yaw = 0.0 +shader_parameter/cellSize = 2.0985 +shader_parameter/width = 44 +shader_parameter/height = 44 +shader_parameter/positionVariance = ExtResource("7_q33fm") +shader_parameter/maxPositionOffset = Vector3(30, 0, 30) +shader_parameter/positionUVScale = Vector2(1, 1) +shader_parameter/positionUVOffset = Vector2(0, 0) +shader_parameter/heightOffset = 0.0 +shader_parameter/rotationVariance = ExtResource("7_q33fm") +shader_parameter/minRotation = Vector3(-0.2, 0, -0.2) +shader_parameter/maxRotation = Vector3(0.2, 1, 0.2) +shader_parameter/rotationUVScale = Vector2(5.6525, 5.6525) +shader_parameter/rotationUVOffset = Vector2(0, 0) +shader_parameter/scaleVariance = ExtResource("7_q33fm") +shader_parameter/minScale = Vector3(0.1, 0.1, 0.1) +shader_parameter/maxScale = Vector3(3, 3, 3) +shader_parameter/scaleUVScale = Vector2(4, 4) +shader_parameter/scaleUVOffset = Vector2(0, 0) +shader_parameter/occupancyAmount = 0.0 +shader_parameter/occupancyPower = 26.8948 +shader_parameter/occupancyTreshold = 0.476 +shader_parameter/occupancyHideOffset = -2.0 +shader_parameter/occupancyHideScale = 0.1 +shader_parameter/occupancyVariance = ExtResource("7_q33fm") +shader_parameter/occupancyUVScale = Vector2(1, 1) +shader_parameter/occupancyUVOffset = Vector2(0, 0) +shader_parameter/hideStart = 22.5 +shader_parameter/hideMax = 45.0 +shader_parameter/hideOffset = -1.0 +shader_parameter/mapSize = Vector2(1024, 1024) +shader_parameter/mapCenter = Vector2(0, 0) +script = ExtResource("8_3k1et") + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_51g00"] +load_path = "res://.godot/imported/grass-albedo.jpg-c84cfed4e689cec916b830b5e61c6fc2.s3tc.ctex" + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_w6lq2"] +load_path = "res://.godot/imported/grass-orm.jpg-c21643a740d42c09c2f89b7bf2e82eda.s3tc.ctex" + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_7dtm4"] +load_path = "res://.godot/imported/grass-orm.jpg-c21643a740d42c09c2f89b7bf2e82eda.s3tc.ctex" + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_8t2rj"] +load_path = "res://.godot/imported/grass-normal.jpg-161cf607f42dce5cf9be332a6b828c4c.s3tc.ctex" + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_jd0ku"] +load_path = "res://.godot/imported/grass-orm.jpg-c21643a740d42c09c2f89b7bf2e82eda.s3tc.ctex" + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_8f5gl"] +frequency = 0.006 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_dmgk3"] +seamless = true +noise = SubResource("FastNoiseLite_8f5gl") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_1q7ky"] +render_priority = 0 +shader = ExtResource("2_ukfl2") +shader_parameter/albedo = Color(0.85301, 0.699405, 0.454554, 1) +shader_parameter/hslVariation = Vector4(200, 0, 0, 0) +shader_parameter/hslVariationUVScale = 1.1365 +shader_parameter/hslVariationUVOffset = Vector2(0, 0) +shader_parameter/texture_albedo = SubResource("CompressedTexture2D_51g00") +shader_parameter/albedoToBacklight = 0.637 +shader_parameter/backlight = Color(0.116962, 0.683294, 0.219731, 1) +shader_parameter/roughness = 0.867 +shader_parameter/texture_metallic = SubResource("CompressedTexture2D_7dtm4") +shader_parameter/metallic_texture_channel = Vector4(0, 0, 1, 0) +shader_parameter/texture_roughness = SubResource("CompressedTexture2D_jd0ku") +shader_parameter/specular = 0.18 +shader_parameter/metallic = 0.06 +shader_parameter/texture_normal = SubResource("CompressedTexture2D_8t2rj") +shader_parameter/normal_scale = 2.651 +shader_parameter/texture_ambient_occlusion = SubResource("CompressedTexture2D_w6lq2") +shader_parameter/ao_texture_channel = Vector4(1, 0, 0, 0) +shader_parameter/ao_light_affect = 1.0 +shader_parameter/uv1_scale = Vector3(1, 1, 0) +shader_parameter/uv1_offset = Vector3(0, 0, 0) +shader_parameter/windEnabled = true +shader_parameter/windStrength = 0.133 +shader_parameter/windSpeed = Vector2(0.118, 0.1) +shader_parameter/windScale = 0.1 +shader_parameter/windNoise = SubResource("NoiseTexture2D_dmgk3") +shader_parameter/windNoiseAngleOffset = Vector2(0, 0) +shader_parameter/windNoiseStrengthOffset = Vector2(0.2, 0) +shader_parameter/windStart = 0.046 +shader_parameter/windEnd = 0.13 +shader_parameter/windWeightCurve = 1.0 +shader_parameter/windHeightCompensation = 0.0 +shader_parameter/obstaclesEnabeld = true +shader_parameter/obstacle1 = Vector4(5.38014, 0.668354, 10.6536, 0.8265) +shader_parameter/obstacle2 = Vector4(0, 0, 0, 0) +shader_parameter/obstacle3 = Vector4(0, 0, 0, 0) +shader_parameter/obstacle4 = Vector4(0, 0, 0, 0) +shader_parameter/obstacleDeformation = 2.0 +shader_parameter/obstacleScale = 1.0 +shader_parameter/maxDeformation = 0.3 +shader_parameter/maxYOffset = 0.1 + +[sub_resource type="ArrayMesh" id="ArrayMesh_uh2yf"] +_surfaces = [{ +"aabb": AABB(-0.164829, -0.05, -0.271967, 0.404427, 0.656133, 0.693902), +"attribute_data": PackedByteArray("mpkZPgAAgD/NzMw9AABgP83MTD4AAGA/zczMPQAAQD/NzEw+AABAP83MzD0AACA/zcxMPgAAID/NzMw9AAAAP83MTD4AAAA/zczMPQAAwD7NzEw+AADAPs3MzD0AAIA+zcxMPgAAgD7NzMw9AAAAPs3MTD4AAAA+zczMPQAAAADNzEw+AAAAAM3MTD4AAGA/zczMPQAAYD+amRk+AACAP83MzD0AAEA/zcxMPgAAQD/NzMw9AAAgP83MTD4AACA/zczMPQAAAD/NzEw+AAAAP83MzD0AAMA+zcxMPgAAwD7NzMw9AACAPs3MTD4AAIA+zczMPQAAAD7NzEw+AAAAPs3MzD0AAAAAzcxMPgAAAABmZuY+AACAP83MzD4AAGA/AAAAPwAAYD/NzMw+AABAPwAAAD8AAEA/zczMPgAAID8AAAA/AAAgP83MzD4AAAA/AAAAPwAAAD/NzMw+AADAPgAAAD8AAMA+zczMPgAAgD4AAAA/AACAPs3MzD4AAAA+AAAAPwAAAD7NzMw+AAAAAAAAAD8AAAAAAAAAPwAAYD/NzMw+AABgP2Zm5j4AAIA/zczMPgAAQD8AAAA/AABAP83MzD4AACA/AAAAPwAAID/NzMw+AAAAPwAAAD8AAAA/zczMPgAAwD4AAAA/AADAPs3MzD4AAIA+AAAAPwAAgD7NzMw+AAAAPgAAAD8AAAA+zczMPgAAAAAAAAA/AAAAADQzcz8AAIA/Z2ZmPwAAYD8AAIA/AABgP2dmZj8AAEA/AACAPwAAQD9nZmY/AAAgPwAAgD8AACA/Z2ZmPwAAAD8AAIA/AAAAP2dmZj8AAMA+AACAPwAAwD5nZmY/AACAPgAAgD8AAIA+Z2ZmPwAAAD4AAIA/AAAAPmdmZj8AAAAAAACAPwAAAAAAAIA/AABgP2dmZj8AAGA/NDNzPwAAgD9nZmY/AABAPwAAgD8AAEA/Z2ZmPwAAID8AAIA/AAAgP2dmZj8AAAA/AACAPwAAAD9nZmY/AADAPgAAgD8AAMA+Z2ZmPwAAgD4AAIA/AACAPmdmZj8AAAA+AACAPwAAAD5nZmY/AAAAAAAAgD8AAAAAAACAPgAAgD/NzEw+AABgP5qZmT4AAGA/zcxMPgAAQD+amZk+AABAP83MTD4AACA/mpmZPgAAID/NzEw+AAAAP5qZmT4AAAA/zcxMPgAAwD6amZk+AADAPs3MTD4AAIA+mpmZPgAAgD7NzEw+AAAAPpqZmT4AAAA+zcxMPgAAAACamZk+AAAAAJqZmT4AAGA/zcxMPgAAYD8AAIA+AACAP83MTD4AAEA/mpmZPgAAQD/NzEw+AAAgP5qZmT4AACA/zcxMPgAAAD+amZk+AAAAP83MTD4AAMA+mpmZPgAAwD7NzEw+AACAPpqZmT4AAIA+zcxMPgAAAD6amZk+AAAAPs3MTD4AAAAAmpmZPgAAAAA0M7M+AACAP5qZmT4AAGA/zczMPgAAYD+amZk+AABAP83MzD4AAEA/mpmZPgAAID/NzMw+AAAgP5qZmT4AAAA/zczMPgAAAD+amZk+AADAPs3MzD4AAMA+mpmZPgAAgD7NzMw+AACAPpqZmT4AAAA+zczMPgAAAD6amZk+AAAAAM3MzD4AAAAAzczMPgAAYD+amZk+AABgPzQzsz4AAIA/mpmZPgAAQD/NzMw+AABAP5qZmT4AACA/zczMPgAAID+amZk+AAAAP83MzD4AAAA/mpmZPgAAwD7NzMw+AADAPpqZmT4AAIA+zczMPgAAgD6amZk+AAAAPs3MzD4AAAA+mpmZPgAAAADNzMw+AAAAADQzcz8AAIA/Z2ZmPwAAYD8AAIA/AABgP2dmZj8AAEA/AACAPwAAQD9nZmY/AAAgPwAAgD8AACA/Z2ZmPwAAAD8AAIA/AAAAP2dmZj8AAMA+AACAPwAAwD5nZmY/AACAPgAAgD8AAIA+Z2ZmPwAAAD4AAIA/AAAAPmdmZj8AAAAAAACAPwAAAAAAAIA/AABgP2dmZj8AAGA/NDNzPwAAgD9nZmY/AABAPwAAgD8AAEA/Z2ZmPwAAID8AAIA/AAAgP2dmZj8AAAA/AACAPwAAAD9nZmY/AADAPgAAgD8AAMA+Z2ZmPwAAgD4AAIA/AACAPmdmZj8AAAA+AACAPwAAAD5nZmY/AAAAAAAAgD8AAAAAAACAPgAAgD/NzEw+AABgP5qZmT4AAGA/zcxMPgAAQD+amZk+AABAP83MTD4AACA/mpmZPgAAID/NzEw+AAAAP5qZmT4AAAA/zcxMPgAAwD6amZk+AADAPs3MTD4AAIA+mpmZPgAAgD7NzEw+AAAAPpqZmT4AAAA+zcxMPgAAAACamZk+AAAAAJqZmT4AAGA/zcxMPgAAYD8AAIA+AACAP83MTD4AAEA/mpmZPgAAQD/NzEw+AAAgP5qZmT4AACA/zcxMPgAAAD+amZk+AAAAP83MTD4AAMA+mpmZPgAAwD7NzEw+AACAPpqZmT4AAIA+zcxMPgAAAD6amZk+AAAAPs3MTD4AAAAAmpmZPgAAAAA0M7M+AACAP5qZmT4AAGA/zczMPgAAYD+amZk+AABAP83MzD4AAEA/mpmZPgAAID/NzMw+AAAgP5qZmT4AAAA/zczMPgAAAD+amZk+AADAPs3MzD4AAMA+mpmZPgAAgD7NzMw+AACAPpqZmT4AAAA+zczMPgAAAD6amZk+AAAAAM3MzD4AAAAAzczMPgAAYD+amZk+AABgPzQzsz4AAIA/mpmZPgAAQD/NzMw+AABAP5qZmT4AACA/zczMPgAAID+amZk+AAAAP83MzD4AAAA/mpmZPgAAwD7NzMw+AADAPpqZmT4AAIA+zczMPgAAgD6amZk+AAAAPs3MzD4AAAA+mpmZPgAAAADNzMw+AAAAADQzcz8AAIA/Z2ZmPwAAYD8AAIA/AABgP2dmZj8AAEA/AACAPwAAQD9nZmY/AAAgPwAAgD8AACA/Z2ZmPwAAAD8AAIA/AAAAP2dmZj8AAMA+AACAPwAAwD5nZmY/AACAPgAAgD8AAIA+Z2ZmPwAAAD4AAIA/AAAAPmdmZj8AAAAAAACAPwAAAAAAAIA/AABgP2dmZj8AAGA/NDNzPwAAgD9nZmY/AABAPwAAgD8AAEA/Z2ZmPwAAID8AAIA/AAAgP2dmZj8AAAA/AACAPwAAAD9nZmY/AADAPgAAgD8AAMA+Z2ZmPwAAgD4AAIA/AACAPmdmZj8AAAA+AACAPwAAAD5nZmY/AAAAAAAAgD8AAAAA"), +"format": 34359742487, +"index_count": 810, +"index_data": PackedByteArray("AAABAAIAAwACAAEAAgADAAQABQAEAAMABAAFAAYABwAGAAUABgAHAAgACQAIAAcACAAJAAoACwAKAAkACgALAAwADQAMAAsADAANAA4ADwAOAA0ADgAPABAAEQASABMAEgARABQAFQAUABEAFAAVABYAFwAWABUAFgAXABgAGQAYABcAGAAZABoAGwAaABkAGgAbABwAHQAcABsAHAAdAB4AHwAeAB0AHgAfACAAIQAgAB8AIgAjACQAJQAkACMAJAAlACYAJwAmACUAJgAnACgAKQAoACcAKAApACoAKwAqACkAKgArACwALQAsACsALAAtAC4ALwAuAC0ALgAvADAAMQAwAC8AMAAxADIAMwA0ADUANAAzADYANwA2ADMANgA3ADgAOQA4ADcAOAA5ADoAOwA6ADkAOgA7ADwAPQA8ADsAPAA9AD4APwA+AD0APgA/AEAAQQBAAD8AQABBAEIAQwBCAEEARABFAEYARwBGAEUARgBHAEgASQBIAEcASABJAEoASwBKAEkASgBLAEwATQBMAEsATABNAE4ATwBOAE0ATgBPAFAAUQBQAE8AUABRAFIAUwBSAFEAUgBTAFQAVQBWAFcAVgBVAFgAWQBYAFUAWABZAFoAWwBaAFkAWgBbAFwAXQBcAFsAXABdAF4AXwBeAF0AXgBfAGAAYQBgAF8AYABhAGIAYwBiAGEAYgBjAGQAZQBkAGMAZgBnAGgAaQBoAGcAaABpAGoAawBqAGkAagBrAGwAbQBsAGsAbABtAG4AbwBuAG0AbgBvAHAAcQBwAG8AcABxAHIAcwByAHEAcgBzAHQAdQB0AHMAdAB1AHYAdwB4AHkAeAB3AHoAewB6AHcAegB7AHwAfQB8AHsAfAB9AH4AfwB+AH0AfgB/AIAAgQCAAH8AgACBAIIAgwCCAIEAggCDAIQAhQCEAIMAhACFAIYAhwCGAIUAiACJAIoAiwCKAIkAigCLAIwAjQCMAIsAjACNAI4AjwCOAI0AjgCPAJAAkQCQAI8AkACRAJIAkwCSAJEAkgCTAJQAlQCUAJMAlACVAJYAlwCWAJUAlgCXAJgAmQCaAJsAmgCZAJwAnQCcAJkAnACdAJ4AnwCeAJ0AngCfAKAAoQCgAJ8AoAChAKIAowCiAKEAogCjAKQApQCkAKMApAClAKYApwCmAKUApgCnAKgAqQCoAKcAqgCrAKwArQCsAKsArACtAK4ArwCuAK0ArgCvALAAsQCwAK8AsACxALIAswCyALEAsgCzALQAtQC0ALMAtAC1ALYAtwC2ALUAtgC3ALgAuQC4ALcAuAC5ALoAuwC8AL0AvAC7AL4AvwC+ALsAvgC/AMAAwQDAAL8AwADBAMIAwwDCAMEAwgDDAMQAxQDEAMMAxADFAMYAxwDGAMUAxgDHAMgAyQDIAMcAyADJAMoAywDKAMkAzADNAM4AzwDOAM0AzgDPANAA0QDQAM8A0ADRANIA0wDSANEA0gDTANQA1QDUANMA1ADVANYA1wDWANUA1gDXANgA2QDYANcA2ADZANoA2wDaANkA2gDbANwA3QDeAN8A3gDdAOAA4QDgAN0A4ADhAOIA4wDiAOEA4gDjAOQA5QDkAOMA5ADlAOYA5wDmAOUA5gDnAOgA6QDoAOcA6ADpAOoA6wDqAOkA6gDrAOwA7QDsAOsA7gDvAPAA8QDwAO8A8ADxAPIA8wDyAPEA8gDzAPQA9QD0APMA9AD1APYA9wD2APUA9gD3APgA+QD4APcA+AD5APoA+wD6APkA+gD7APwA/QD8APsA/AD9AP4A/wAAAQEBAAH/AAIBAwECAf8AAgEDAQQBBQEEAQMBBAEFAQYBBwEGAQUBBgEHAQgBCQEIAQcBCAEJAQoBCwEKAQkBCgELAQwBDQEMAQsBDAENAQ4BDwEOAQ0BEAERARIBEwESAREBEgETARQBFQEUARMBFAEVARYBFwEWARUBFgEXARgBGQEYARcBGAEZARoBGwEaARkBGgEbARwBHQEcARsBHAEdAR4BHwEeAR0BHgEfASABIQEiASMBIgEhASQBJQEkASEBJAElASYBJwEmASUBJgEnASgBKQEoAScBKAEpASoBKwEqASkBKgErASwBLQEsASsBLAEtAS4BLwEuAS0BLgEvATABMQEwAS8B"), +"material": SubResource("ShaderMaterial_1q7ky"), +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 306, +"vertex_data": PackedByteArray("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") +}] + +[sub_resource type="Curve" id="Curve_rkenn"] +_data = [Vector2(0, 0), 0.0, 1.0, 0, 1, Vector2(1, 1), 1.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_twcim"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 1, Vector2(1, 1), 0.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_kjgep"] +_data = [Vector2(0, 0.652632), 0.0, 0.189474, 0, 1, Vector2(1, 0.842105), 0.189474, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_x1wfr"] +_data = [Vector2(0, 0.05), 0.0, 0.0, 0, 1, Vector2(1, 0.05), 0.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_18epq"] +_data = [Vector2(0, 0), 0.0, 0.226316, 0, 1, Vector2(0.325581, 0.0736842), 0.0, 0.0, 0, 0, Vector2(0.99999, 0), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 1, 0] +point_count = 4 + +[sub_resource type="Curve" id="Curve_jum4v"] +_limits = [-0.1, 0.1, 0.0, 1.0] +_data = [Vector2(0, 0), 0.0, 0.13076, 0, 1, Vector2(0.313953, 0.0410526), 0.0, 0.0, 0, 0, Vector2(0.686047, -0.0115789), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0368811, 0.0, 1, 0] +point_count = 4 + +[sub_resource type="Curve" id="Curve_m8utg"] +_limits = [0.0, 360.0, 0.0, 1.0] +_data = [Vector2(0, 0), 0.0, 73.0454, 0, 1, Vector2(0.674419, 49.2632), 222.201, 222.201, 0, 0, Vector2(0.854651, 200.842), 950.526, 950.526, 0, 0, Vector2(0.982558, 360), 0.0, 0.0, 0, 0] +point_count = 4 + +[sub_resource type="Curve" id="Curve_pi5qu"] +_data = [Vector2(0, 0), 0.0, 0.0, 0, 1, Vector2(1, 0), 0.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_crsbr"] +_data = [Vector2(0, 0.05), 0.0, 0.0, 0, 1, Vector2(1, 0.05), 0.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_2spu3"] +_data = [Vector2(0, 0.05), 0.0, 0.0, 0, 1, Vector2(1, 0.05), 0.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_idmc0"] +_data = [Vector2(0, 1), 0.0, -53684.2, 0, 1, Vector2(1e-05, 0.463158), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.536847, 0.0, 1, 0] +point_count = 3 + +[sub_resource type="Curve" id="Curve_y37cr"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 1, Vector2(1, 1), 0.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_0lw2o"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 1, Vector2(1, 1), 0.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_rurxr"] +_data = [Vector2(0, 0), 0.0, 1.0, 0, 1, Vector2(1, 1), 1.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_exacl"] +_limits = [0.0, 180.0, 0.0, 1.0] +_data = [Vector2(0, 0), 0.0, 128.842, 0, 1, Vector2(1, 128.842), 128.842, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_80mtg"] +_data = [Vector2(0, 0), 0.0, 0.0, 0, 1, Vector2(1, 0), 0.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_ye1gb"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 1, Vector2(1, 1), 0.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_bpxvl"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 1, Vector2(1, 1), 0.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_23irh"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 1, Vector2(1, 1), 0.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_6t05l"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 1, Vector2(1, 1), 0.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_2k365"] +_data = [Vector2(0, 0.5), 0.0, 0.0, 0, 1, Vector2(1, 0.5), 0.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_vhmrv"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 1, Vector2(1, 1), 0.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_gtqde"] +_data = [Vector2(0, 0), 0.0, 1.0, 0, 1, Vector2(1, 1), 1.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="Curve" id="Curve_n1vra"] +_data = [Vector2(0, 0), 0.0, 1.0, 0, 1, Vector2(1, 1), 1.0, 0.0, 1, 0] +point_count = 2 + +[sub_resource type="ArrayMesh" id="ArrayMesh_n7e3p"] +_surfaces = [{ +"aabb": AABB(-0.164829, -0.05, -0.271967, 0.404427, 0.656133, 0.693902), +"attribute_data": PackedByteArray("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mpmZPgAAQD/NzEw+AAAgP5qZmT4AACA/zcxMPgAAAD+amZk+AAAAP83MTD4AAMA+mpmZPgAAwD7NzEw+AACAPpqZmT4AAIA+zcxMPgAAAD6amZk+AAAAPs3MTD4AAAAAmpmZPgAAAAA0M7M+AACAP5qZmT4AAGA/zczMPgAAYD+amZk+AABAP83MzD4AAEA/mpmZPgAAID/NzMw+AAAgP5qZmT4AAAA/zczMPgAAAD+amZk+AADAPs3MzD4AAMA+mpmZPgAAgD7NzMw+AACAPpqZmT4AAAA+zczMPgAAAD6amZk+AAAAAM3MzD4AAAAAzczMPgAAYD+amZk+AABgPzQzsz4AAIA/mpmZPgAAQD/NzMw+AABAP5qZmT4AACA/zczMPgAAID+amZk+AAAAP83MzD4AAAA/mpmZPgAAwD7NzMw+AADAPpqZmT4AAIA+zczMPgAAgD6amZk+AAAAPs3MzD4AAAA+mpmZPgAAAADNzMw+AAAAADQzcz8AAIA/Z2ZmPwAAYD8AAIA/AABgP2dmZj8AAEA/AACAPwAAQD9nZmY/AAAgPwAAgD8AACA/Z2ZmPwAAAD8AAIA/AAAAP2dmZj8AAMA+AACAPwAAwD5nZmY/AACAPgAAgD8AAIA+Z2ZmPwAAAD4AAIA/AAAAPmdmZj8AAAAAAACAPwAAAAAAAIA/AABgP2dmZj8AAGA/NDNzPwAAgD9nZmY/AABAPwAAgD8AAEA/Z2ZmPwAAID8AAIA/AAAgP2dmZj8AAAA/AACAPwAAAD9nZmY/AADAPgAAgD8AAMA+Z2ZmPwAAgD4AAIA/AACAPmdmZj8AAAA+AACAPwAAAD5nZmY/AAAAAAAAgD8AAAAA"), +"format": 34359742487, +"index_count": 810, +"index_data": PackedByteArray("AAABAAIAAwACAAEAAgADAAQABQAEAAMABAAFAAYABwAGAAUABgAHAAgACQAIAAcACAAJAAoACwAKAAkACgALAAwADQAMAAsADAANAA4ADwAOAA0ADgAPABAAEQASABMAEgARABQAFQAUABEAFAAVABYAFwAWABUAFgAXABgAGQAYABcAGAAZABoAGwAaABkAGgAbABwAHQAcABsAHAAdAB4AHwAeAB0AHgAfACAAIQAgAB8AIgAjACQAJQAkACMAJAAlACYAJwAmACUAJgAnACgAKQAoACcAKAApACoAKwAqACkAKgArACwALQAsACsALAAtAC4ALwAuAC0ALgAvADAAMQAwAC8AMAAxADIAMwA0ADUANAAzADYANwA2ADMANgA3ADgAOQA4ADcAOAA5ADoAOwA6ADkAOgA7ADwAPQA8ADsAPAA9AD4APwA+AD0APgA/AEAAQQBAAD8AQABBAEIAQwBCAEEARABFAEYARwBGAEUARgBHAEgASQBIAEcASABJAEoASwBKAEkASgBLAEwATQBMAEsATABNAE4ATwBOAE0ATgBPAFAAUQBQAE8AUABRAFIAUwBSAFEAUgBTAFQAVQBWAFcAVgBVAFgAWQBYAFUAWABZAFoAWwBaAFkAWgBbAFwAXQBcAFsAXABdAF4AXwBeAF0AXgBfAGAAYQBgAF8AYABhAGIAYwBiAGEAYgBjAGQAZQBkAGMAZgBnAGgAaQBoAGcAaABpAGoAawBqAGkAagBrAGwAbQBsAGsAbABtAG4AbwBuAG0AbgBvAHAAcQBwAG8AcABxAHIAcwByAHEAcgBzAHQAdQB0AHMAdAB1AHYAdwB4AHkAeAB3AHoAewB6AHcAegB7AHwAfQB8AHsAfAB9AH4AfwB+AH0AfgB/AIAAgQCAAH8AgACBAIIAgwCCAIEAggCDAIQAhQCEAIMAhACFAIYAhwCGAIUAiACJAIoAiwCKAIkAigCLAIwAjQCMAIsAjACNAI4AjwCOAI0AjgCPAJAAkQCQAI8AkACRAJIAkwCSAJEAkgCTAJQAlQCUAJMAlACVAJYAlwCWAJUAlgCXAJgAmQCaAJsAmgCZAJwAnQCcAJkAnACdAJ4AnwCeAJ0AngCfAKAAoQCgAJ8AoAChAKIAowCiAKEAogCjAKQApQCkAKMApAClAKYApwCmAKUApgCnAKgAqQCoAKcAqgCrAKwArQCsAKsArACtAK4ArwCuAK0ArgCvALAAsQCwAK8AsACxALIAswCyALEAsgCzALQAtQC0ALMAtAC1ALYAtwC2ALUAtgC3ALgAuQC4ALcAuAC5ALoAuwC8AL0AvAC7AL4AvwC+ALsAvgC/AMAAwQDAAL8AwADBAMIAwwDCAMEAwgDDAMQAxQDEAMMAxADFAMYAxwDGAMUAxgDHAMgAyQDIAMcAyADJAMoAywDKAMkAzADNAM4AzwDOAM0AzgDPANAA0QDQAM8A0ADRANIA0wDSANEA0gDTANQA1QDUANMA1ADVANYA1wDWANUA1gDXANgA2QDYANcA2ADZANoA2wDaANkA2gDbANwA3QDeAN8A3gDdAOAA4QDgAN0A4ADhAOIA4wDiAOEA4gDjAOQA5QDkAOMA5ADlAOYA5wDmAOUA5gDnAOgA6QDoAOcA6ADpAOoA6wDqAOkA6gDrAOwA7QDsAOsA7gDvAPAA8QDwAO8A8ADxAPIA8wDyAPEA8gDzAPQA9QD0APMA9AD1APYA9wD2APUA9gD3APgA+QD4APcA+AD5APoA+wD6APkA+gD7APwA/QD8APsA/AD9AP4A/wAAAQEBAAH/AAIBAwECAf8AAgEDAQQBBQEEAQMBBAEFAQYBBwEGAQUBBgEHAQgBCQEIAQcBCAEJAQoBCwEKAQkBCgELAQwBDQEMAQsBDAENAQ4BDwEOAQ0BEAERARIBEwESAREBEgETARQBFQEUARMBFAEVARYBFwEWARUBFgEXARgBGQEYARcBGAEZARoBGwEaARkBGgEbARwBHQEcARsBHAEdAR4BHwEeAR0BHgEfASABIQEiASMBIgEhASQBJQEkASEBJAElASYBJwEmASUBJgEnASgBKQEoAScBKAEpASoBKwEqASkBKgErASwBLQEsASsBLAEtAS4BLwEuAS0BLgEvATABMQEwAS8B"), +"material": SubResource("ShaderMaterial_1q7ky"), +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 306, +"vertex_data": PackedByteArray("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") +}] + [node name="Example Grass" type="Node3D"] [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_6u5q2") +compositor = SubResource("Compositor_n7e3p") [node name="Ground" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0) @@ -527,6 +812,7 @@ transform = Transform3D(0.932324, 0.246165, -0.264906, 0, 0.732543, 0.680721, 0. light_color = Color(0.927686, 0.882655, 0.774991, 1) [node name="GrassPatch" type="Node3D" parent="." node_paths=PackedStringArray("output")] +visible = false script = ExtResource("1_ajxn3") output = NodePath("MeshInstance3D") seed = 1234 @@ -564,7 +850,6 @@ highCurve = SubResource("Curve_mcpgn") metadata/_custom_type_script = "uid://bo0awqfi5eqg4" [node name="MeshInstance3D" type="MeshInstance3D" parent="GrassPatch"] -visible = false mesh = SubResource("ArrayMesh_3k2ek") [node name="GrassPatch2" type="Node3D" parent="." node_paths=PackedStringArray("output")] @@ -606,45 +891,104 @@ highCurve = SubResource("Curve_mcpgn") metadata/_custom_type_script = "uid://bo0awqfi5eqg4" [node name="Grass Patch" type="MeshInstance3D" parent="GrassPatch2"] -visible = false mesh = SubResource("ArrayMesh_rkenn") -[node name="FoliageRenderer" type="Node3D" parent="."] +[node name="FoliageRenderer" type="Node3D" parent="." node_paths=PackedStringArray("obstacles")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.169384, 0.0314023, -0.292542) script = ExtResource("5_pne4w") -foliage = [SubResource("Resource_8t2rj"), SubResource("Resource_0em6d")] -quality = 200.0 +foliage = [SubResource("Resource_8t2rj"), SubResource("Resource_0em6d"), SubResource("Resource_uh2yf")] qualitySettingsAll = [SubResource("Resource_lvhug"), SubResource("Resource_6u5q2"), SubResource("Resource_3k2ek")] +obstacles = [NodePath("../CSGSphere3D")] +obstacleSizes = PackedFloat32Array(0.8265) updateLayers = false noise = ExtResource("7_q33fm") metadata/_custom_type_script = "uid://b1sjdhnriaeg6" [node name="GpuParticles3D" type="GPUParticles3D" parent="FoliageRenderer"] custom_aabb = AABB(-5000, -5000, -5000, 10000, 10000, 10000) -amount = 40000 +amount = 9216 lifetime = 0.01 explosiveness = 1.0 fixed_fps = 0 interpolate = false fract_delta = false -process_material = SubResource("ShaderMaterial_uh2yf") +process_material = SubResource("ShaderMaterial_n7e3p") draw_pass_1 = SubResource("ArrayMesh_3k2ek") [node name="GpuParticles3D2" type="GPUParticles3D" parent="FoliageRenderer"] custom_aabb = AABB(-5000, -5000, -5000, 10000, 10000, 10000) -amount = 1600 +amount = 324 lifetime = 0.01 explosiveness = 1.0 fixed_fps = 0 interpolate = false fract_delta = false -process_material = SubResource("ShaderMaterial_jsf0k") +process_material = SubResource("ShaderMaterial_lvhug") draw_pass_1 = SubResource("ArrayMesh_rkenn") +[node name="GpuParticles3D3" type="GPUParticles3D" parent="FoliageRenderer"] +custom_aabb = AABB(-5000, -5000, -5000, 10000, 10000, 10000) +amount = 1936 +lifetime = 0.01 +explosiveness = 1.0 +fixed_fps = 0 +interpolate = false +fract_delta = false +process_material = SubResource("ShaderMaterial_6u5q2") +draw_pass_1 = SubResource("ArrayMesh_uh2yf") + [node name="OnProcess" type="Node" parent="."] script = ExtResource("11_3k1et") +executeInEditor = true metadata/_custom_type_script = "uid://cl36x2jgfuypo" [node name="UpdateGrassPatch" type="Node" parent="OnProcess" node_paths=PackedStringArray("grassPatch")] script = ExtResource("12_wf46h") -grassPatch = NodePath("../../GrassPatch2") +grassPatch = NodePath("../../GrassPatch3") metadata/_custom_type_script = "uid://bdjcmayust2t0" + +[node name="GrassPatch3" type="Node3D" parent="." node_paths=PackedStringArray("output")] +script = ExtResource("1_ajxn3") +output = NodePath("Grass Patch") +seed = 1994 +material = SubResource("ShaderMaterial_1q7ky") +patchSize = 0.0 +blades = 3 +X_numBlades = 9 +bladeSegments = 8 +X_numTriangles = 270 +bladeSegmentMapping = SubResource("Curve_rkenn") +uvSegmentColumns = 10 +uvSegmentWeightsClose = SubResource("Curve_twcim") +uvSegmentDistortion = 1.0 +uvSegmentMaxRange = 0.5 +bladeHeight = SubResource("Curve_kjgep") +bladeInGround = SubResource("Curve_x1wfr") +bladeWidth = SubResource("Curve_18epq") +bladeBending = SubResource("Curve_jum4v") +rolling = SubResource("Curve_m8utg") +positionJitter = SubResource("Curve_pi5qu") +positionJitterX = SubResource("Curve_crsbr") +positionJitterZ = SubResource("Curve_2spu3") +bladeScale = SubResource("Curve_idmc0") +scaleByDistanceX = SubResource("Curve_y37cr") +scaleByDistanceZ = SubResource("Curve_0lw2o") +yawRotation = SubResource("Curve_rurxr") +randomRotation = SubResource("Curve_exacl") +vertexTurbulenceAmount = SubResource("Curve_80mtg") +vertexTurbulenceScale = SubResource("Curve_ye1gb") +vertexTurbulenceScaleX = SubResource("Curve_bpxvl") +vertexTurbulenceScaleY = SubResource("Curve_23irh") +vertexTurbulenceScaleZ = SubResource("Curve_6t05l") +normalBlending = SubResource("Curve_2k365") +normalBlendingAmountOverY = SubResource("Curve_vhmrv") +lowCurve = SubResource("Curve_gtqde") +highCurve = SubResource("Curve_n1vra") +metadata/_custom_type_script = "uid://bo0awqfi5eqg4" + +[node name="Grass Patch" type="MeshInstance3D" parent="GrassPatch3"] +mesh = SubResource("ArrayMesh_n7e3p") + +[node name="CSGSphere3D" type="CSGSphere3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.38014, 0.668354, 10.6536) +visible = false diff --git a/addons/rokojori_action_library b/addons/rokojori_action_library index 843b407..e5166dd 160000 --- a/addons/rokojori_action_library +++ b/addons/rokojori_action_library @@ -1 +1 @@ -Subproject commit 843b407bf559a3f3e713a5c2633edd784f54d79a +Subproject commit e5166dd7cfcf535e717546a8fa75e0fbb3d5a384