Browse Source

Add a 3D decals demo (#756)

Co-authored-by: dzil123 <[email protected]>
Hugo Locurcio 2 years ago
parent
commit
a667e74db5
56 changed files with 1193 additions and 0 deletions
  1. 23 0
      3d/decals/README.md
  2. 91 0
      3d/decals/decal.tscn
  3. 7 0
      3d/decals/default_env.tres
  4. BIN
      3d/decals/icon.png
  5. 36 0
      3d/decals/icon.png.import
  6. 39 0
      3d/decals/project.godot
  7. 0 0
      3d/decals/screenshots/.gdignore
  8. BIN
      3d/decals/screenshots/decals.png
  9. 165 0
      3d/decals/test.tscn
  10. 88 0
      3d/decals/tester.gd
  11. 7 0
      3d/decals/textures/checker.LICENSE.md
  12. BIN
      3d/decals/textures/checker.png
  13. 36 0
      3d/decals/textures/checker.png.import
  14. BIN
      3d/decals/textures/circle_blob.png
  15. 34 0
      3d/decals/textures/circle_blob.png.import
  16. BIN
      3d/decals/textures/circle_blob_emissive.png
  17. 34 0
      3d/decals/textures/circle_blob_emissive.png.import
  18. BIN
      3d/decals/textures/icon_outlined.png
  19. 34 0
      3d/decals/textures/icon_outlined.png.import
  20. BIN
      3d/decals/textures/icon_outlined_normal.png
  21. 34 0
      3d/decals/textures/icon_outlined_normal.png.import
  22. 7 0
      3d/decals/textures/paint.LICENSE.md
  23. BIN
      3d/decals/textures/paint.png
  24. 34 0
      3d/decals/textures/paint.png.import
  25. BIN
      3d/decals/textures/paint_normal.png
  26. 34 0
      3d/decals/textures/paint_normal.png.import
  27. 7 0
      3d/decals/textures/paintedarrow.LICENSE.md
  28. BIN
      3d/decals/textures/paintedarrow.png
  29. 34 0
      3d/decals/textures/paintedarrow.png.import
  30. BIN
      3d/decals/textures/paintedarrow_normal.png
  31. 34 0
      3d/decals/textures/paintedarrow_normal.png.import
  32. BIN
      3d/decals/textures/plasma_emissive.png
  33. 34 0
      3d/decals/textures/plasma_emissive.png.import
  34. BIN
      3d/decals/textures/plasma_stain.png
  35. 34 0
      3d/decals/textures/plasma_stain.png.import
  36. BIN
      3d/decals/textures/puddles_albedo.png
  37. 34 0
      3d/decals/textures/puddles_albedo.png.import
  38. BIN
      3d/decals/textures/puddles_orm.png
  39. 34 0
      3d/decals/textures/puddles_orm.png.import
  40. 7 0
      3d/decals/textures/scifi.LICENSE.md
  41. BIN
      3d/decals/textures/scifi_1_albedo.png
  42. 34 0
      3d/decals/textures/scifi_1_albedo.png.import
  43. BIN
      3d/decals/textures/scifi_1_normal.png
  44. 34 0
      3d/decals/textures/scifi_1_normal.png.import
  45. BIN
      3d/decals/textures/scifi_2_albedo.png
  46. 34 0
      3d/decals/textures/scifi_2_albedo.png.import
  47. BIN
      3d/decals/textures/scifi_2_normal.png
  48. 34 0
      3d/decals/textures/scifi_2_normal.png.import
  49. BIN
      3d/decals/textures/scifi_3_albedo.png
  50. 34 0
      3d/decals/textures/scifi_3_albedo.png.import
  51. BIN
      3d/decals/textures/scifi_3_normal.png
  52. 34 0
      3d/decals/textures/scifi_3_normal.png.import
  53. BIN
      3d/decals/textures/scifi_4_albedo.png
  54. 34 0
      3d/decals/textures/scifi_4_albedo.png.import
  55. BIN
      3d/decals/textures/scifi_4_normal.png
  56. 34 0
      3d/decals/textures/scifi_4_normal.png.import

+ 23 - 0
3d/decals/README.md

@@ -0,0 +1,23 @@
+# Decals
+
+This demo includes many examples of Decal nodes in action,
+for the purpose of showcasing Godot's rendering capabilities.
+
+The decal filter mode can be adjusted in the top-left corner:
+
+- For games with a pixel art appearance, the Nearest filter mode can be used
+  instead of Linear.
+- Filter modes with Mipmaps prevent decals from looking grainy at a distance, at
+  a small performance cost. When mipmaps are used without anisotropic filtering,
+  decals will look blurry when viewed at oblique angles.
+- Filter modes with Anisotropic don't look grainy at a distance and also avoid
+  looking blurry when viewed at oblique angles. However, filter modes with
+  Anisotropic have a greater performance cost than enabling Mipmaps alone.
+
+Language: GDScript
+
+Renderer: Vulkan Clustered
+
+## Screenshots
+
+![Screenshot](screenshots/decals.png)

+ 91 - 0
3d/decals/decal.tscn

@@ -0,0 +1,91 @@
+[gd_scene load_steps=5 format=3 uid="uid://cblgs4wjl5s1e"]
+
+[ext_resource type="Texture2D" uid="uid://ccgkupemr6e1q" path="res://textures/paint.png" id="1_1ro0v"]
+
+[sub_resource type="Animation" id="Animation_cxvbq"]
+length = 0.001
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("Decal:modulate")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Color(1, 1, 1, 1)]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("Decal:extents")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Vector3(0, 0, 0)]
+}
+
+[sub_resource type="Animation" id="Animation_ev4ve"]
+resource_name = "fade"
+length = 5.0
+tracks/0/type = "method"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath(".")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(5),
+"transitions": PackedFloat32Array(1),
+"values": [{
+"args": [],
+"method": &"queue_free"
+}]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("Decal:modulate")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0, 5),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
+}
+tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/path = NodePath("Decal:extents")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/keys = {
+"times": PackedFloat32Array(0, 0.2),
+"transitions": PackedFloat32Array(0.5, 0.5),
+"update": 0,
+"values": [Vector3(0, 0, 0), Vector3(1, 1, 1)]
+}
+
+[sub_resource type="AnimationLibrary" id="AnimationLibrary_kqdmn"]
+_data = {
+"RESET": SubResource("Animation_cxvbq"),
+"fade": SubResource("Animation_ev4ve")
+}
+
+[node name="DecalHolder" type="Node3D"]
+
+[node name="Decal" type="Decal" parent="."]
+transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0)
+extents = Vector3(0, 0, 0)
+texture_albedo = ExtResource("1_1ro0v")
+
+[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
+autoplay = "fade"
+libraries = {
+"": SubResource("AnimationLibrary_kqdmn")
+}

+ 7 - 0
3d/decals/default_env.tres

@@ -0,0 +1,7 @@
+[gd_resource type="Environment" load_steps=2 format=2]
+
+[sub_resource type="Sky" id=1]
+
+[resource]
+background_mode = 2
+sky = SubResource( 1 )

BIN
3d/decals/icon.png


+ 36 - 0
3d/decals/icon.png.import

@@ -0,0 +1,36 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://8c1xtc7yj6s5"
+path.s3tc="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.s3tc.ctex"
+path.etc2="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc", "etc2"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://icon.png"
+dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.s3tc.ctex", "res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+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

+ 39 - 0
3d/decals/project.godot

@@ -0,0 +1,39 @@
+; Engine configuration file.
+; It's best edited using the editor UI and not directly,
+; since the parameters that go here are not all obvious.
+;
+; Format:
+;   [section] ; section goes between []
+;   param=value ; assign values to parameters
+
+config_version=5
+
+_global_script_classes=[]
+_global_script_class_icons={}
+
+[application]
+
+config/name="Decals"
+run/main_scene="res://test.tscn"
+config/features=PackedStringArray("4.0")
+config/icon="res://icon.png"
+
+[display]
+
+window/stretch/mode="canvas_items"
+window/stretch/aspect="expand"
+
+[input]
+
+place_decal={
+"deadzone": 0.5,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":80,"unicode":0,"echo":false,"script":null)
+]
+}
+
+[rendering]
+
+textures/default_filters/anisotropic_filtering_level=4
+textures/decals/filter=5
+quality/screen_filters/msaa=3
+environment/default_environment="res://default_env.tres"

+ 0 - 0
3d/decals/screenshots/.gdignore


BIN
3d/decals/screenshots/decals.png


File diff suppressed because it is too large
+ 165 - 0
3d/decals/test.tscn


+ 88 - 0
3d/decals/tester.gd

@@ -0,0 +1,88 @@
+extends WorldEnvironment
+
+const ROT_SPEED = 0.003
+const ZOOM_SPEED = 0.125
+const MAIN_BUTTONS = MOUSE_BUTTON_MASK_LEFT | MOUSE_BUTTON_MASK_RIGHT | MOUSE_BUTTON_MASK_MIDDLE
+
+var tester_index = 0
+var rot_x = deg_to_rad(-22.5)  # This must be kept in sync with RotationX.
+var rot_y = deg_to_rad(90)  # This must be kept in sync with CameraHolder.
+var zoom = 1.5
+var base_height = ProjectSettings.get_setting("display/window/size/viewport_height")
+
+@onready var testers = $Testers
+@onready var camera_holder = $CameraHolder # Has a position and rotates on Y.
+@onready var rotation_x = $CameraHolder/RotationX
+@onready var camera = $CameraHolder/RotationX/Camera3D
+
+func _ready():
+	camera_holder.transform.basis = Basis.from_euler(Vector3(0, rot_y, 0))
+	rotation_x.transform.basis = Basis.from_euler(Vector3(rot_x, 0, 0))
+	update_gui()
+
+
+func _unhandled_input(event):
+	if event.is_action_pressed("ui_left"):
+		_on_previous_pressed()
+	if event.is_action_pressed("ui_right"):
+		_on_next_pressed()
+
+	if event.is_action_pressed("place_decal"):
+		var origin = camera.global_position
+		var target = camera.project_position(get_viewport().get_mouse_position(), 100)
+
+		var query = PhysicsRayQueryParameters3D.create(origin, target)
+		var result = camera.get_world_3d().direct_space_state.intersect_ray(query)
+
+		if not result.is_empty():
+			var decal = preload("res://decal.tscn").instantiate()
+			add_child(decal)
+			decal.get_node("Decal").modulate = Color(1.0,0.0,0)
+			decal.position = result["position"]
+			decal.transform.basis = camera.global_transform.basis
+
+	if event is InputEventMouseButton:
+		if event.button_index == MOUSE_BUTTON_WHEEL_UP:
+			zoom -= ZOOM_SPEED
+		if event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
+			zoom += ZOOM_SPEED
+		zoom = clampf(zoom, 1.5, 4)
+
+	if event is InputEventMouseMotion and event.button_mask & MAIN_BUTTONS:
+		# Compensate motion speed to be resolution-independent (based on the window height).
+		var relative_motion = event.relative * DisplayServer.window_get_size().y / base_height
+		rot_y -= relative_motion.x * ROT_SPEED
+		rot_x -= relative_motion.y * ROT_SPEED
+		rot_x = clampf(rot_x, deg_to_rad(-90), 0)
+		camera_holder.transform.basis = Basis.from_euler(Vector3(0, rot_y, 0))
+		rotation_x.transform.basis = Basis.from_euler(Vector3(rot_x, 0, 0))
+
+
+func _process(delta):
+	var current_tester = testers.get_child(tester_index)
+	# This code assumes CameraHolder's X and Y coordinates are already correct.
+	var current_position = camera_holder.global_transform.origin.z
+	var target_position = current_tester.global_transform.origin.z
+	camera_holder.global_transform.origin.z = lerpf(current_position, target_position, 3 * delta)
+	camera.position.z = lerpf(camera.position.z, zoom, 10 * delta)
+
+
+func _on_previous_pressed():
+	tester_index = max(0, tester_index - 1)
+	update_gui()
+
+
+func _on_next_pressed():
+	tester_index = min(tester_index + 1, testers.get_child_count() - 1)
+	update_gui()
+
+
+func update_gui():
+	$TestName.text = str(testers.get_child(tester_index).name).capitalize()
+	$Previous.disabled = tester_index == 0
+	$Next.disabled = tester_index == testers.get_child_count() - 1
+
+
+func _on_decal_filter_mode_item_selected(index):
+	# Indices in the OptionButton match RenderingServer decal filtering constants.
+	RenderingServer.decals_set_filter(index)

+ 7 - 0
3d/decals/textures/checker.LICENSE.md

@@ -0,0 +1,7 @@
+# License for `checker.png`
+
+Copyright (c) 2020 Kenney
+
+Licensed under CC0 1.0 Universal.
+
+Downloaded from https://kenney.nl/assets/prototype-textures

BIN
3d/decals/textures/checker.png


+ 36 - 0
3d/decals/textures/checker.png.import

@@ -0,0 +1,36 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://chjqieyps5n5r"
+path.s3tc="res://.godot/imported/checker.png-d334a8ae07de292fd4162f184b9dd7bc.s3tc.ctex"
+path.etc2="res://.godot/imported/checker.png-d334a8ae07de292fd4162f184b9dd7bc.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc", "etc2"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://textures/checker.png"
+dest_files=["res://.godot/imported/checker.png-d334a8ae07de292fd4162f184b9dd7bc.s3tc.ctex", "res://.godot/imported/checker.png-d334a8ae07de292fd4162f184b9dd7bc.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+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

BIN
3d/decals/textures/circle_blob.png


+ 34 - 0
3d/decals/textures/circle_blob.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://3mobae4q0h8u"
+path="res://.godot/imported/circle_blob.png-465e17a135068a8aa91a1644bf70d07d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/circle_blob.png"
+dest_files=["res://.godot/imported/circle_blob.png-465e17a135068a8aa91a1644bf70d07d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

BIN
3d/decals/textures/circle_blob_emissive.png


+ 34 - 0
3d/decals/textures/circle_blob_emissive.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://nmhoqlrypsov"
+path="res://.godot/imported/circle_blob_emissive.png-ee3c7333e8008f01485f2e01afc3bec3.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/circle_blob_emissive.png"
+dest_files=["res://.godot/imported/circle_blob_emissive.png-ee3c7333e8008f01485f2e01afc3bec3.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

BIN
3d/decals/textures/icon_outlined.png


+ 34 - 0
3d/decals/textures/icon_outlined.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://co20qeesefkhn"
+path="res://.godot/imported/icon_outlined.png-69c9923303c66a64fe5b0208e9f2325d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/icon_outlined.png"
+dest_files=["res://.godot/imported/icon_outlined.png-69c9923303c66a64fe5b0208e9f2325d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

BIN
3d/decals/textures/icon_outlined_normal.png


+ 34 - 0
3d/decals/textures/icon_outlined_normal.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c4xcp8bsukmny"
+path="res://.godot/imported/icon_outlined_normal.png-2573d0f760b55be338be5e9a5c6707c7.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/icon_outlined_normal.png"
+dest_files=["res://.godot/imported/icon_outlined_normal.png-2573d0f760b55be338be5e9a5c6707c7.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=true
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 7 - 0
3d/decals/textures/paint.LICENSE.md

@@ -0,0 +1,7 @@
+# License for `paint.png` and `paint_normal.png`
+
+Copyright (c) 2010 johndn
+
+Licensed under CC BY 3.0 Unported.
+
+Downloaded from https://opengameart.org/content/splatter-pack

BIN
3d/decals/textures/paint.png


+ 34 - 0
3d/decals/textures/paint.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ccgkupemr6e1q"
+path="res://.godot/imported/paint.png-879be22678d20d2d134debfc46f5226d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/paint.png"
+dest_files=["res://.godot/imported/paint.png-879be22678d20d2d134debfc46f5226d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

BIN
3d/decals/textures/paint_normal.png


+ 34 - 0
3d/decals/textures/paint_normal.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bm6eht0bqttpo"
+path="res://.godot/imported/paint_normal.png-7924e58454336706ecd6d73c7236cdd3.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/paint_normal.png"
+dest_files=["res://.godot/imported/paint_normal.png-7924e58454336706ecd6d73c7236cdd3.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=true
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 7 - 0
3d/decals/textures/paintedarrow.LICENSE.md

@@ -0,0 +1,7 @@
+# License for `paintedarrow.png` and `paintedarrow_normal.png`
+
+Copyright (c) 2020 Alex Foster
+
+Licensed under CC BY-SA 3.0 Unported.
+
+Downloaded from https://github.com/redeclipse/decals/blob/master/molexted/paintedarrow.png

BIN
3d/decals/textures/paintedarrow.png


+ 34 - 0
3d/decals/textures/paintedarrow.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ch1lpd6csfh11"
+path="res://.godot/imported/paintedarrow.png-afd3ac8a02b78c875f47d9f11160da86.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/paintedarrow.png"
+dest_files=["res://.godot/imported/paintedarrow.png-afd3ac8a02b78c875f47d9f11160da86.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

BIN
3d/decals/textures/paintedarrow_normal.png


+ 34 - 0
3d/decals/textures/paintedarrow_normal.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b6yhgco8h4kgi"
+path="res://.godot/imported/paintedarrow_normal.png-4b8bc9f8589f160a2725bb7ce4e78f8e.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/paintedarrow_normal.png"
+dest_files=["res://.godot/imported/paintedarrow_normal.png-4b8bc9f8589f160a2725bb7ce4e78f8e.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=true
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

BIN
3d/decals/textures/plasma_emissive.png


+ 34 - 0
3d/decals/textures/plasma_emissive.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bm2iexos5pt2u"
+path="res://.godot/imported/plasma_emissive.png-d3e120dfac38a705e3cbba393f3374a0.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/plasma_emissive.png"
+dest_files=["res://.godot/imported/plasma_emissive.png-d3e120dfac38a705e3cbba393f3374a0.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

BIN
3d/decals/textures/plasma_stain.png


+ 34 - 0
3d/decals/textures/plasma_stain.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://d2rsv7jw807fs"
+path="res://.godot/imported/plasma_stain.png-fb1b75df8104df81c128085d44cae093.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/plasma_stain.png"
+dest_files=["res://.godot/imported/plasma_stain.png-fb1b75df8104df81c128085d44cae093.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

BIN
3d/decals/textures/puddles_albedo.png


+ 34 - 0
3d/decals/textures/puddles_albedo.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://8plv4ws2kg70"
+path="res://.godot/imported/puddles_albedo.png-34ab8e60908190d6183f3888021a458e.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/puddles_albedo.png"
+dest_files=["res://.godot/imported/puddles_albedo.png-34ab8e60908190d6183f3888021a458e.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

BIN
3d/decals/textures/puddles_orm.png


+ 34 - 0
3d/decals/textures/puddles_orm.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cxswl7oeqadys"
+path="res://.godot/imported/puddles_orm.png-977c027ea1bee06a0306ab7a786fb713.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/puddles_orm.png"
+dest_files=["res://.godot/imported/puddles_orm.png-977c027ea1bee06a0306ab7a786fb713.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

+ 7 - 0
3d/decals/textures/scifi.LICENSE.md

@@ -0,0 +1,7 @@
+# License for `scifi_*.png`
+
+Copyright (c) 2012 Yughues
+
+Licensed under CC0 1.0 Universal.
+
+Downloaded from https://opengameart.org/content/free-decals-01-sci-fi

BIN
3d/decals/textures/scifi_1_albedo.png


+ 34 - 0
3d/decals/textures/scifi_1_albedo.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://d3tsa78sl6f5o"
+path="res://.godot/imported/scifi_1_albedo.png-508e162c91511036575fdb6b008a06ff.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/scifi_1_albedo.png"
+dest_files=["res://.godot/imported/scifi_1_albedo.png-508e162c91511036575fdb6b008a06ff.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

BIN
3d/decals/textures/scifi_1_normal.png


+ 34 - 0
3d/decals/textures/scifi_1_normal.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c6h101xwgiroy"
+path="res://.godot/imported/scifi_1_normal.png-d536a2a8e5910209b99dba70cad76c7a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/scifi_1_normal.png"
+dest_files=["res://.godot/imported/scifi_1_normal.png-d536a2a8e5910209b99dba70cad76c7a.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

BIN
3d/decals/textures/scifi_2_albedo.png


+ 34 - 0
3d/decals/textures/scifi_2_albedo.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bu0lxkb3046jw"
+path="res://.godot/imported/scifi_2_albedo.png-c4a001d2893dff30ad740589199edd6a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/scifi_2_albedo.png"
+dest_files=["res://.godot/imported/scifi_2_albedo.png-c4a001d2893dff30ad740589199edd6a.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

BIN
3d/decals/textures/scifi_2_normal.png


+ 34 - 0
3d/decals/textures/scifi_2_normal.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://5wewxgmcpq2t"
+path="res://.godot/imported/scifi_2_normal.png-fa904ec2a7759f5d1f019bc46a4b445e.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/scifi_2_normal.png"
+dest_files=["res://.godot/imported/scifi_2_normal.png-fa904ec2a7759f5d1f019bc46a4b445e.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

BIN
3d/decals/textures/scifi_3_albedo.png


+ 34 - 0
3d/decals/textures/scifi_3_albedo.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cyh57iw40y5pc"
+path="res://.godot/imported/scifi_3_albedo.png-4396f6a4198bfacdd7eac036f62447b6.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/scifi_3_albedo.png"
+dest_files=["res://.godot/imported/scifi_3_albedo.png-4396f6a4198bfacdd7eac036f62447b6.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

BIN
3d/decals/textures/scifi_3_normal.png


+ 34 - 0
3d/decals/textures/scifi_3_normal.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cwg21hcwtkqiw"
+path="res://.godot/imported/scifi_3_normal.png-d23a229d70fad8be5081c510f6016d14.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/scifi_3_normal.png"
+dest_files=["res://.godot/imported/scifi_3_normal.png-d23a229d70fad8be5081c510f6016d14.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

BIN
3d/decals/textures/scifi_4_albedo.png


+ 34 - 0
3d/decals/textures/scifi_4_albedo.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://qkykptc4tjno"
+path="res://.godot/imported/scifi_4_albedo.png-89afbb728d9f5301d58a017c58e89bbd.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/scifi_4_albedo.png"
+dest_files=["res://.godot/imported/scifi_4_albedo.png-89afbb728d9f5301d58a017c58e89bbd.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

BIN
3d/decals/textures/scifi_4_normal.png


+ 34 - 0
3d/decals/textures/scifi_4_normal.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://syxljixxud75"
+path="res://.godot/imported/scifi_4_normal.png-a41428b02b49d90d5dd2ec92aa126b24.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://textures/scifi_4_normal.png"
+dest_files=["res://.godot/imported/scifi_4_normal.png-a41428b02b49d90d5dd2ec92aa126b24.ctex"]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/bptc_ldr=0
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+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=1

Some files were not shown because too many files changed in this diff