Add a 3D antialiasing demo
41
3d/antialiasing/README.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# 3D Anti-Aliasing
|
||||
|
||||
This project showcases the various 3D antialiasing techniques supported by Godot.
|
||||
|
||||
- **Multisample antialiasing (MSAA):** High quality, high performance cost.
|
||||
Does not blur the image.
|
||||
- Does not affect shader-induced aliasing (such as specular aliasing) or alpha
|
||||
scissor materials, so these will remain aliased.
|
||||
- **Fast approximate antialiasing (FXAA):** Medium quality, low performance cost.
|
||||
Slightly blurs the image.
|
||||
- **Temporal antialiasing (TAA):** High-quality, low performance cost. Slightly
|
||||
blurs the image (but less so than FXAA).
|
||||
- Antialiasing quality is worse on fast-moving objects than other methods,
|
||||
especially at lower framerates since the TAA won't have enough time to
|
||||
converge on those objects.
|
||||
- Can introduce ghosting artifacts on moving objects, especially if motion
|
||||
vectors are not correctly generated from a given material shader.
|
||||
- **Supersampling (SSAA):** The highest-quality technique, but also the most
|
||||
expensive. Does not blur the image.
|
||||
- 200% resolution scale is equivalent to 4× SSAA, as each dimension is
|
||||
doubled. For example, if running in a 1920×1080 window at 200% render scale,
|
||||
the 3D framebuffer will be 3840×2160.
|
||||
- SSAA can be used together with FXAA or TAA to counter the blurring added by
|
||||
those algorithms, while further improving antialiasing quality.
|
||||
|
||||
Godot allows using multiple antialiasing techniques at the same time. This can
|
||||
be useful to obtain the best possible quality, or to find a better performance
|
||||
tradeoff.
|
||||
|
||||
Language: GDScript
|
||||
|
||||
Renderer: Vulkan Clustered
|
||||
|
||||
## Screenshots
|
||||
|
||||

|
||||
|
||||
## Licenses
|
||||
|
||||
Files in the `polyhaven/` folder are downloaded from <https://polyhaven.com/a/dutch_ship_medium>
|
||||
and are licensed under CC0 1.0 Universal.
|
||||
100
3d/antialiasing/anti_aliasing.gd
Normal file
@@ -0,0 +1,100 @@
|
||||
extends Node
|
||||
|
||||
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 = -TAU / 16 # This must be kept in sync with RotationX.
|
||||
var rot_y = TAU / 8 # This must be kept in sync with CameraHolder.
|
||||
var camera_distance = 2.0
|
||||
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 InputEventMouseButton:
|
||||
if event.button_index == MOUSE_BUTTON_WHEEL_UP:
|
||||
camera_distance -= ZOOM_SPEED
|
||||
if event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
|
||||
camera_distance += ZOOM_SPEED
|
||||
camera_distance = clamp(camera_distance, 1.5, 6)
|
||||
|
||||
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 = clamp(rot_x, -1.57, 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 = lerp(current_position, target_position, 3 * delta)
|
||||
camera.position.z = lerp(camera.position.z, camera_distance, 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_fxaa_toggled(button_pressed):
|
||||
get_viewport().screen_space_aa = Viewport.SCREEN_SPACE_AA_FXAA if button_pressed else Viewport.SCREEN_SPACE_AA_DISABLED
|
||||
|
||||
|
||||
func _on_temporal_antialiasing_toggled(button_pressed):
|
||||
get_viewport().use_taa = button_pressed
|
||||
|
||||
|
||||
func _on_msaa_item_selected(index):
|
||||
get_viewport().msaa = index
|
||||
|
||||
|
||||
func _on_render_scale_item_selected(index):
|
||||
match index:
|
||||
0:
|
||||
get_viewport().scaling_3d_scale = 0.5
|
||||
1:
|
||||
get_viewport().scaling_3d_scale = 0.75
|
||||
2:
|
||||
get_viewport().scaling_3d_scale = 1.0
|
||||
3:
|
||||
get_viewport().scaling_3d_scale = 1.25
|
||||
4:
|
||||
get_viewport().scaling_3d_scale = 1.5
|
||||
5:
|
||||
get_viewport().scaling_3d_scale = 1.75
|
||||
6:
|
||||
get_viewport().scaling_3d_scale = 2.0
|
||||
857
3d/antialiasing/anti_aliasing.tscn
Normal file
@@ -0,0 +1,857 @@
|
||||
[gd_scene load_steps=48 format=3 uid="uid://clyxqp0e6qemi"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://ccgkupemr6e1q" path="res://textures/paint.png" id="3_2nulf"]
|
||||
[ext_resource type="PackedScene" uid="uid://daokc0jvx7nkw" path="res://thin_lines.tscn" id="3_5ehjl"]
|
||||
[ext_resource type="PackedScene" uid="uid://sxx5ow26t0c3" path="res://polyhaven/dutch_ship_medium_1k.gltf" id="3_fa2bl"]
|
||||
[ext_resource type="Texture2D" uid="uid://bm6eht0bqttpo" path="res://textures/paint_normal.png" id="4_fdfpv"]
|
||||
[ext_resource type="Texture2D" uid="uid://chjqieyps5n5r" path="res://textures/checker.png" id="14"]
|
||||
[ext_resource type="Script" path="res://anti_aliasing.gd" id="18"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="9"]
|
||||
|
||||
[sub_resource type="Sky" id="10"]
|
||||
sky_material = SubResource("9")
|
||||
|
||||
[sub_resource type="Environment" id="11"]
|
||||
background_mode = 2
|
||||
sky = SubResource("10")
|
||||
|
||||
[sub_resource type="Animation" id="Animation_qdnt6"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Testers/MovingObject/MeshInstance3D:position")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0.5, 0)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Testers/RotatingObject/MeshInstance3D:rotation")
|
||||
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)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Testers/ScalingObject/MeshInstance3D:scale")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("Testers/MovingCPUParticles/CPUParticles3D:position")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0.5, 0)]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("Testers/MovingDecal/Decal:position")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(1, 1, 1)]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("Testers/MovingDecal/Decal:rotation")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0.18405, -2.33886, 0.187249)]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("Testers/ScrollingUVAnimation/MeshInstance3D:surface_material_override/0:uv1_offset")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0)]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("Testers/MovingGPUParticles/GPUParticles3D:position")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 1.2, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="12"]
|
||||
resource_name = "move"
|
||||
length = 4.0
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Testers/MovingObject/MeshInstance3D:position")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 2),
|
||||
"transitions": PackedFloat32Array(-2, -2),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0.5, 0), Vector3(0, 2.5, 0)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Testers/RotatingObject/MeshInstance3D:rotation")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 4),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0), Vector3(0, 18.8496, 0)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Testers/ScalingObject/MeshInstance3D:scale")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 2),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0), Vector3(1, 1, 3)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("Testers/MovingCPUParticles/CPUParticles3D:position")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 2),
|
||||
"transitions": PackedFloat32Array(-2, -2),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0.2, 0), Vector3(0, 2.2, 0)]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("Testers/MovingDecal/Decal:position")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0, 2),
|
||||
"transitions": PackedFloat32Array(-2, -2),
|
||||
"update": 0,
|
||||
"values": [Vector3(1, 1, 1), Vector3(-1, 1, -1)]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("Testers/MovingDecal/Decal:rotation")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0, 2),
|
||||
"transitions": PackedFloat32Array(-2, -2),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0), Vector3(0.18405, -2.33886, 0.187249)]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("Testers/ScrollingUVAnimation/MeshInstance3D:surface_material_override/0:uv1_offset")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0, 4),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0), Vector3(3, 0, 0)]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("Testers/MovingGPUParticles/GPUParticles3D:position")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0, 2),
|
||||
"transitions": PackedFloat32Array(-2, -2),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 1.2, 0), Vector3(0, 4.2, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ecfcr"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_qdnt6"),
|
||||
"move": SubResource("12")
|
||||
}
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="13"]
|
||||
diffuse_mode = 1
|
||||
albedo_texture = ExtResource("14")
|
||||
uv1_scale = Vector3(32, 32, 1)
|
||||
texture_filter = 5
|
||||
|
||||
[sub_resource type="PlaneMesh" id="14"]
|
||||
material = SubResource("13")
|
||||
size = Vector2(128, 128)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_gwe28"]
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_fiqc5"]
|
||||
fractal_octaves = 9
|
||||
fractal_gain = 1.0
|
||||
|
||||
[sub_resource type="NoiseTexture" id="NoiseTexture_bgiac"]
|
||||
seamless = true
|
||||
noise = SubResource("FastNoiseLite_fiqc5")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_x42ya"]
|
||||
albedo_color = Color(1.2, 1, 0.7, 1)
|
||||
albedo_texture = SubResource("NoiseTexture_bgiac")
|
||||
uv1_scale = Vector3(3, 2, 1)
|
||||
texture_filter = 5
|
||||
|
||||
[sub_resource type="NoiseTexture" id="NoiseTexture_7yxqs"]
|
||||
width = 32
|
||||
height = 32
|
||||
seamless = true
|
||||
noise = SubResource("FastNoiseLite_fiqc5")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6yfdy"]
|
||||
albedo_texture = SubResource("NoiseTexture_7yxqs")
|
||||
uv1_scale = Vector3(3, 2, 1)
|
||||
texture_filter = 4
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_ekf3m"]
|
||||
offsets = PackedFloat32Array(0, 0.298851, 0.609195, 0.781609, 0.873563, 1)
|
||||
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1, 1, 0.133693, 0.238417, 0.655738, 1, 0.4, 0.47451, 0, 1, 0.364109, 0.476658, 1, 1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="NoiseTexture" id="NoiseTexture_uv2tn"]
|
||||
seamless = true
|
||||
color_ramp = SubResource("Gradient_ekf3m")
|
||||
noise = SubResource("FastNoiseLite_fiqc5")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qcf1j"]
|
||||
transparency = 1
|
||||
cull_mode = 2
|
||||
albedo_color = Color(1.2, 1, 0.7, 1)
|
||||
albedo_texture = SubResource("NoiseTexture_uv2tn")
|
||||
uv1_scale = Vector3(3, 2, 1)
|
||||
texture_filter = 5
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xbqpl"]
|
||||
transparency = 2
|
||||
alpha_scissor_threshold = 0.72
|
||||
alpha_antialiasing_mode = 0
|
||||
cull_mode = 2
|
||||
albedo_color = Color(1.2, 1, 0.7, 1)
|
||||
albedo_texture = SubResource("NoiseTexture_uv2tn")
|
||||
uv1_scale = Vector3(3, 2, 1)
|
||||
texture_filter = 5
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_mjkwh"]
|
||||
transparency = 3
|
||||
alpha_hash_scale = 1.0
|
||||
alpha_antialiasing_mode = 0
|
||||
cull_mode = 2
|
||||
albedo_color = Color(1.2, 1, 0.7, 1)
|
||||
albedo_texture = SubResource("NoiseTexture_uv2tn")
|
||||
uv1_scale = Vector3(3, 2, 1)
|
||||
texture_filter = 5
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_f4l4p"]
|
||||
transparency = 4
|
||||
cull_mode = 2
|
||||
albedo_color = Color(1.2, 1, 0.7, 1)
|
||||
albedo_texture = SubResource("NoiseTexture_uv2tn")
|
||||
uv1_scale = Vector3(3, 2, 1)
|
||||
texture_filter = 5
|
||||
|
||||
[sub_resource type="SphereMesh" id="SphereMesh_kfkna"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rfedc"]
|
||||
transparency = 2
|
||||
alpha_scissor_threshold = 0.05
|
||||
alpha_antialiasing_mode = 0
|
||||
use_point_size = true
|
||||
point_size = 3.2
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_3dg7h"]
|
||||
interpolation_mode = 2
|
||||
offsets = PackedFloat32Array(0, 0.94964)
|
||||
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_42opb"]
|
||||
gradient = SubResource("Gradient_3dg7h")
|
||||
fill = 1
|
||||
fill_from = Vector2(0.5, 0.5)
|
||||
fill_to = Vector2(0.49, 0)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_layy4"]
|
||||
transparency = 1
|
||||
shading_mode = 0
|
||||
vertex_color_use_as_albedo = true
|
||||
albedo_texture = SubResource("GradientTexture2D_42opb")
|
||||
billboard_mode = 3
|
||||
particles_anim_h_frames = 1
|
||||
particles_anim_v_frames = 1
|
||||
particles_anim_loop = false
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_imrxg"]
|
||||
material = SubResource("StandardMaterial3D_layy4")
|
||||
|
||||
[sub_resource type="Curve" id="Curve_v0n7y"]
|
||||
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||
point_count = 2
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_e7gyf"]
|
||||
offsets = PackedFloat32Array(0, 0.0946746, 0.5, 0.804734)
|
||||
colors = PackedColorArray(0, 0.14902, 1, 0, 0.0627836, 0.243372, 0.995875, 1, 0.568541, 1, 0.962647, 1, 1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_r4xcu"]
|
||||
albedo_color = Color(0.521569, 1, 0.776471, 1)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_88317"]
|
||||
material = SubResource("StandardMaterial3D_r4xcu")
|
||||
size = Vector3(0.1, 0.1, 0.1)
|
||||
|
||||
[sub_resource type="Curve" id="Curve_sutnd"]
|
||||
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||
point_count = 2
|
||||
|
||||
[sub_resource type="ParticlesMaterial" id="ParticlesMaterial_ft0gs"]
|
||||
emission_shape = 6
|
||||
emission_ring_axis = Vector3(0, 1, 0)
|
||||
emission_ring_height = 0.0
|
||||
emission_ring_radius = 0.25
|
||||
emission_ring_inner_radius = 0.25
|
||||
radial_accel_min = 2.0
|
||||
radial_accel_max = 2.0
|
||||
collision_enabled = true
|
||||
collision_friction = 0.1
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1dgwn"]
|
||||
albedo_color = Color(0.545098, 0.545098, 0.545098, 1)
|
||||
|
||||
[sub_resource type="SphereMesh" id="SphereMesh_v4x6x"]
|
||||
material = SubResource("StandardMaterial3D_1dgwn")
|
||||
radius = 1.0
|
||||
height = 2.0
|
||||
|
||||
[sub_resource type="CylinderMesh" id="CylinderMesh_5qy8k"]
|
||||
height = 1.0
|
||||
radial_segments = 6
|
||||
rings = 1
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_53dqy"]
|
||||
albedo_color = Color(0.946182, 1.18208, 1.2, 1)
|
||||
albedo_texture = SubResource("NoiseTexture_bgiac")
|
||||
uv1_scale = Vector3(2, 2, 1)
|
||||
texture_filter = 5
|
||||
|
||||
[sub_resource type="Shader" id="Shader_rejcs"]
|
||||
code = "// NOTE: Shader automatically converted from Godot Engine 4.0.alpha's StandardMaterial3D.
|
||||
|
||||
shader_type spatial;
|
||||
render_mode blend_mix,depth_draw_opaque,cull_back,diffuse_burley,specular_schlick_ggx;
|
||||
uniform vec4 albedo : source_color;
|
||||
uniform sampler2D texture_albedo : source_color,filter_linear_mipmap_anisotropic,repeat_enable;
|
||||
uniform float point_size : hint_range(0,128);
|
||||
uniform float roughness : hint_range(0,1);
|
||||
uniform sampler2D texture_metallic : hint_default_white,filter_linear_mipmap_anisotropic,repeat_enable;
|
||||
uniform vec4 metallic_texture_channel;
|
||||
uniform sampler2D texture_roughness : hint_roughness_r,filter_linear_mipmap_anisotropic,repeat_enable;
|
||||
uniform float specular;
|
||||
uniform float metallic;
|
||||
uniform vec3 uv1_scale;
|
||||
uniform vec3 uv1_offset;
|
||||
uniform vec3 uv2_scale;
|
||||
uniform vec3 uv2_offset;
|
||||
|
||||
void vertex() {
|
||||
// Scroll the texture over time.
|
||||
UV = UV*uv1_scale.xy+uv1_offset.xy + vec2(mod(TIME, 1.0), 0.0);
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
vec2 base_uv = UV;
|
||||
vec4 albedo_tex = texture(texture_albedo,base_uv);
|
||||
ALBEDO = albedo.rgb * albedo_tex.rgb;
|
||||
float metallic_tex = dot(texture(texture_metallic,base_uv),metallic_texture_channel);
|
||||
METALLIC = metallic_tex * metallic;
|
||||
vec4 roughness_texture_channel = vec4(1.0,0.0,0.0,0.0);
|
||||
float roughness_tex = dot(texture(texture_roughness,base_uv),roughness_texture_channel);
|
||||
ROUGHNESS = roughness_tex * roughness;
|
||||
SPECULAR = specular;
|
||||
}
|
||||
"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ltvd2"]
|
||||
render_priority = 0
|
||||
shader = SubResource("Shader_rejcs")
|
||||
shader_param/albedo = Color(1.2, 0.915333, 0.997134, 1)
|
||||
shader_param/metallic = 0.0
|
||||
shader_param/metallic_texture_channel = Plane(1, 0, 0, 0)
|
||||
shader_param/point_size = 1.0
|
||||
shader_param/roughness = 1.0
|
||||
shader_param/specular = 0.5
|
||||
shader_param/texture_albedo = SubResource("NoiseTexture_bgiac")
|
||||
shader_param/uv1_offset = Vector3(0, 0, 0)
|
||||
shader_param/uv1_scale = Vector3(2, 2, 1)
|
||||
shader_param/uv2_offset = Vector3(0, 0, 0)
|
||||
shader_param/uv2_scale = Vector3(1, 1, 1)
|
||||
|
||||
[sub_resource type="CylinderMesh" id="CylinderMesh_oopii"]
|
||||
height = 1.0
|
||||
radial_segments = 18
|
||||
rings = 1
|
||||
|
||||
[sub_resource type="Shader" id="Shader_ovufm"]
|
||||
code = "// NOTE: Shader automatically converted from Godot Engine 4.0.alpha's StandardMaterial3D.
|
||||
|
||||
shader_type spatial;
|
||||
render_mode blend_mix,depth_draw_opaque,cull_back,diffuse_burley,specular_schlick_ggx;
|
||||
uniform vec4 albedo : source_color;
|
||||
uniform sampler2D texture_albedo : source_color,filter_linear_mipmap_anisotropic,repeat_enable;
|
||||
uniform float point_size : hint_range(0,128);
|
||||
uniform float roughness : hint_range(0,1);
|
||||
uniform sampler2D texture_metallic : hint_default_white,filter_linear_mipmap_anisotropic,repeat_enable;
|
||||
uniform vec4 metallic_texture_channel;
|
||||
uniform sampler2D texture_roughness : hint_roughness_r,filter_linear_mipmap_anisotropic,repeat_enable;
|
||||
uniform float specular;
|
||||
uniform float metallic;
|
||||
uniform vec3 uv1_scale;
|
||||
uniform vec3 uv1_offset;
|
||||
uniform vec3 uv2_scale;
|
||||
uniform vec3 uv2_offset;
|
||||
|
||||
float rand(vec2 co){
|
||||
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
|
||||
}
|
||||
|
||||
void vertex() {
|
||||
// Move vertices randomly over time.
|
||||
VERTEX.y += 0.25 + sin(TIME * 2.0) * rand(vec2(VERTEX.xz)) * 0.5;
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
vec2 base_uv = UV;
|
||||
vec4 albedo_tex = texture(texture_albedo,base_uv);
|
||||
ALBEDO = albedo.rgb * albedo_tex.rgb;
|
||||
float metallic_tex = dot(texture(texture_metallic,base_uv),metallic_texture_channel);
|
||||
METALLIC = metallic_tex * metallic;
|
||||
vec4 roughness_texture_channel = vec4(1.0,0.0,0.0,0.0);
|
||||
float roughness_tex = dot(texture(texture_roughness,base_uv),roughness_texture_channel);
|
||||
ROUGHNESS = roughness_tex * roughness;
|
||||
SPECULAR = specular;
|
||||
}
|
||||
"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fbaw5"]
|
||||
render_priority = 0
|
||||
shader = SubResource("Shader_ovufm")
|
||||
shader_param/albedo = Color(1.2, 1.16365, 0.85123, 1)
|
||||
shader_param/metallic = 0.0
|
||||
shader_param/metallic_texture_channel = Plane(1, 0, 0, 0)
|
||||
shader_param/point_size = 1.0
|
||||
shader_param/roughness = 1.0
|
||||
shader_param/specular = 0.5
|
||||
shader_param/texture_albedo = SubResource("NoiseTexture_bgiac")
|
||||
shader_param/uv1_offset = Vector3(0, 0, 0)
|
||||
shader_param/uv1_scale = Vector3(2, 2, 1)
|
||||
shader_param/uv2_offset = Vector3(0, 0, 0)
|
||||
shader_param/uv2_scale = Vector3(1, 1, 1)
|
||||
|
||||
[node name="AntiAliasingTestScene" type="WorldEnvironment"]
|
||||
environment = SubResource("11")
|
||||
script = ExtResource("18")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
autoplay = "move"
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_ecfcr")
|
||||
}
|
||||
|
||||
[node name="Plane" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -34)
|
||||
layers = 2
|
||||
mesh = SubResource("14")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(0.909487, -0.23874, 0.340349, 0, 0.818672, 0.574262, -0.415733, -0.522284, 0.744571, 3.9506, 3.39961, 3.54442)
|
||||
shadow_enabled = true
|
||||
shadow_normal_bias = 1.5
|
||||
shadow_blur = 1.5
|
||||
directional_shadow_mode = 0
|
||||
directional_shadow_fade_start = 1.0
|
||||
directional_shadow_max_distance = 25.0
|
||||
|
||||
[node name="CameraHolder" type="Node3D" parent="."]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0.125, 0)
|
||||
|
||||
[node name="RotationX" type="Node3D" parent="CameraHolder"]
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="CameraHolder/RotationX"]
|
||||
fov = 70.0
|
||||
|
||||
[node name="Testers" type="Node3D" parent="."]
|
||||
|
||||
[node name="StaticObject" type="Node3D" parent="Testers"]
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Testers/StaticObject"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||
mesh = SubResource("BoxMesh_gwe28")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_x42ya")
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Testers/StaticObject"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0.5, 0)
|
||||
mesh = SubResource("BoxMesh_gwe28")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_6yfdy")
|
||||
|
||||
[node name="ThinLines" parent="Testers" instance=ExtResource("3_5ehjl")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -4)
|
||||
|
||||
[node name="TransparencyAlphaBlend" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -8)
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="Testers/TransparencyAlphaBlend"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.501, 0)
|
||||
mesh = SubResource("BoxMesh_gwe28")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_qcf1j")
|
||||
|
||||
[node name="TransparencyAlphaScissor" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -12)
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="Testers/TransparencyAlphaScissor"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.501, 0)
|
||||
mesh = SubResource("BoxMesh_gwe28")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_xbqpl")
|
||||
|
||||
[node name="TransparencyAlphaHash" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -16)
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="Testers/TransparencyAlphaHash"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.501, 0)
|
||||
mesh = SubResource("BoxMesh_gwe28")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_mjkwh")
|
||||
|
||||
[node name="TransparencyDepthPrepass" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -20)
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="Testers/TransparencyDepthPrepass"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.501, 0)
|
||||
mesh = SubResource("BoxMesh_gwe28")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_f4l4p")
|
||||
|
||||
[node name="ComplexObject" parent="Testers" instance=ExtResource("3_fa2bl")]
|
||||
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0.35, -24)
|
||||
|
||||
[node name="PointRendering" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -28)
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Testers/PointRendering"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||
mesh = SubResource("SphereMesh_kfkna")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_rfedc")
|
||||
|
||||
[node name="MovingObject" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -32)
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Testers/MovingObject"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||
mesh = SubResource("BoxMesh_gwe28")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_x42ya")
|
||||
|
||||
[node name="RotatingObject" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -36)
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Testers/RotatingObject"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||
mesh = SubResource("BoxMesh_gwe28")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_x42ya")
|
||||
|
||||
[node name="ScalingObject" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -40)
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Testers/ScalingObject"]
|
||||
transform = Transform3D(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0)
|
||||
mesh = SubResource("BoxMesh_gwe28")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_x42ya")
|
||||
|
||||
[node name="StaticCPUParticles" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -44)
|
||||
|
||||
[node name="CPUParticles3D" type="CPUParticles3D" parent="Testers/StaticCPUParticles"]
|
||||
amount = 100
|
||||
draw_order = 1
|
||||
mesh = SubResource("QuadMesh_imrxg")
|
||||
direction = Vector3(0, 1, 0)
|
||||
spread = 10.0
|
||||
initial_velocity_min = 5.0
|
||||
initial_velocity_max = 5.0
|
||||
scale_amount_min = 0.25
|
||||
scale_amount_max = 0.25
|
||||
scale_amount_curve = SubResource("Curve_v0n7y")
|
||||
color_ramp = SubResource("Gradient_e7gyf")
|
||||
|
||||
[node name="CPUParticles3D2" type="CPUParticles3D" parent="Testers/StaticCPUParticles/CPUParticles3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0.2, 0)
|
||||
amount = 20
|
||||
mesh = SubResource("BoxMesh_88317")
|
||||
spread = 180.0
|
||||
gravity = Vector3(0, 0, 0)
|
||||
initial_velocity_min = 2.5
|
||||
initial_velocity_max = 2.5
|
||||
radial_accel_min = -5.0
|
||||
radial_accel_max = -5.0
|
||||
scale_amount_min = 0.25
|
||||
scale_amount_max = 2.5
|
||||
scale_amount_curve = SubResource("Curve_sutnd")
|
||||
|
||||
[node name="MovingCPUParticles" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -48)
|
||||
|
||||
[node name="CPUParticles3D" type="CPUParticles3D" parent="Testers/MovingCPUParticles"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||
amount = 100
|
||||
lifetime = 0.5
|
||||
local_coords = false
|
||||
draw_order = 1
|
||||
mesh = SubResource("QuadMesh_imrxg")
|
||||
direction = Vector3(0, 1, 0)
|
||||
spread = 10.0
|
||||
initial_velocity_min = 2.0
|
||||
initial_velocity_max = 2.0
|
||||
tangential_accel_min = 6.0
|
||||
tangential_accel_max = 40.0
|
||||
scale_amount_min = 0.25
|
||||
scale_amount_max = 0.25
|
||||
scale_amount_curve = SubResource("Curve_v0n7y")
|
||||
color = Color(6, 2, 6, 1)
|
||||
color_ramp = SubResource("Gradient_e7gyf")
|
||||
|
||||
[node name="CPUParticles3D" type="CPUParticles3D" parent="Testers/MovingCPUParticles/CPUParticles3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, 0)
|
||||
amount = 20
|
||||
local_coords = false
|
||||
mesh = SubResource("BoxMesh_88317")
|
||||
spread = 180.0
|
||||
gravity = Vector3(0, 0, 0)
|
||||
initial_velocity_min = 2.5
|
||||
initial_velocity_max = 2.5
|
||||
scale_amount_curve = SubResource("Curve_sutnd")
|
||||
|
||||
[node name="StaticGPUParticles" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -52)
|
||||
|
||||
[node name="GPUParticles3D" type="GPUParticles3D" parent="Testers/StaticGPUParticles"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2, 0)
|
||||
amount = 50
|
||||
lifetime = 2.0
|
||||
fixed_fps = 0
|
||||
collision_base_size = 0.05
|
||||
visibility_aabb = AABB(-1.63511, -1.25001, -1.31512, 3.0892, 2.15487, 2.91765)
|
||||
process_material = SubResource("ParticlesMaterial_ft0gs")
|
||||
draw_pass_1 = SubResource("BoxMesh_88317")
|
||||
|
||||
[node name="GPUParticlesCollisionBox3D" type="GPUParticlesCollisionBox3D" parent="Testers/StaticGPUParticles"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
|
||||
extents = Vector3(2, 1, 2)
|
||||
|
||||
[node name="MovingGPUParticles" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -56)
|
||||
|
||||
[node name="GPUParticles3D" type="GPUParticles3D" parent="Testers/MovingGPUParticles"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2, 0)
|
||||
extra_cull_margin = 3.0
|
||||
amount = 50
|
||||
lifetime = 2.0
|
||||
fixed_fps = 0
|
||||
collision_base_size = 0.05
|
||||
visibility_aabb = AABB(-1.50087, -1.25001, -1.4745, 3.19423, 2.13905, 3.02308)
|
||||
local_coords = false
|
||||
process_material = SubResource("ParticlesMaterial_ft0gs")
|
||||
draw_pass_1 = SubResource("BoxMesh_88317")
|
||||
|
||||
[node name="GPUParticlesCollisionBox3D2" type="GPUParticlesCollisionBox3D" parent="Testers/MovingGPUParticles"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
|
||||
extents = Vector3(2, 1, 2)
|
||||
|
||||
[node name="MovingDecal" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -60)
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Testers/MovingDecal"]
|
||||
mesh = SubResource("SphereMesh_v4x6x")
|
||||
|
||||
[node name="Decal" type="Decal" parent="Testers/MovingDecal"]
|
||||
transform = Transform3D(-0.707104, -1.01328e-06, -0.707109, 0.183013, 0.965926, -0.183013, 0.683015, -0.258819, -0.68301, 1, 1, 1)
|
||||
texture_albedo = ExtResource("3_2nulf")
|
||||
texture_normal = ExtResource("4_fdfpv")
|
||||
|
||||
[node name="ScrollingUVAnimation" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -64)
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Testers/ScrollingUVAnimation"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||
mesh = SubResource("CylinderMesh_5qy8k")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_53dqy")
|
||||
|
||||
[node name="ScrollingUVCustomShader" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -68)
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Testers/ScrollingUVCustomShader"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||
mesh = SubResource("CylinderMesh_5qy8k")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_ltvd2")
|
||||
|
||||
[node name="CustomShaderVertexMovement" type="Node3D" parent="Testers"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -72)
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Testers/CustomShaderVertexMovement"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||
mesh = SubResource("CylinderMesh_oopii")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_fbaw5")
|
||||
|
||||
[node name="TestName" type="Label" parent="."]
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -192.0
|
||||
offset_top = -58.0
|
||||
offset_right = 192.0
|
||||
offset_bottom = -24.0
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 5
|
||||
theme_override_font_sizes/font_size = 24
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Previous" type="Button" parent="."]
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 24.0
|
||||
offset_top = -55.0
|
||||
offset_right = 135.0
|
||||
offset_bottom = -24.0
|
||||
text = "« Previous"
|
||||
|
||||
[node name="Next" type="Button" parent="."]
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -107.0
|
||||
offset_top = -55.0
|
||||
offset_right = -24.0
|
||||
offset_bottom = -24.0
|
||||
text = "Next »"
|
||||
|
||||
[node name="Antialiasing" type="VBoxContainer" parent="."]
|
||||
offset_left = 24.0
|
||||
offset_top = 24.0
|
||||
offset_right = 210.0
|
||||
offset_bottom = 55.0
|
||||
theme_override_constants/separation = 10
|
||||
|
||||
[node name="Label" type="Label" parent="Antialiasing"]
|
||||
offset_right = 265.0
|
||||
offset_bottom = 26.0
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 3
|
||||
text = "Antialiasing Options:"
|
||||
|
||||
[node name="FXAA" type="CheckButton" parent="Antialiasing"]
|
||||
offset_top = 36.0
|
||||
offset_right = 265.0
|
||||
offset_bottom = 67.0
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 3
|
||||
text = "FXAA (Fast)"
|
||||
|
||||
[node name="TemporalAntialiasing" type="CheckButton" parent="Antialiasing"]
|
||||
offset_top = 77.0
|
||||
offset_right = 265.0
|
||||
offset_bottom = 108.0
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 3
|
||||
text = "Temporal antialiasing (Fast)"
|
||||
|
||||
[node name="MSAA" type="OptionButton" parent="Antialiasing"]
|
||||
offset_top = 118.0
|
||||
offset_right = 265.0
|
||||
offset_bottom = 149.0
|
||||
item_count = 4
|
||||
selected = 0
|
||||
popup/item_0/text = "No MSAA (Fastest)"
|
||||
popup/item_0/id = 0
|
||||
popup/item_1/text = "2× MSAA (Average)"
|
||||
popup/item_1/id = 1
|
||||
popup/item_2/text = "4× MSAA (Slow)"
|
||||
popup/item_2/id = 2
|
||||
popup/item_3/text = "8× MSAA (Slowest)"
|
||||
popup/item_3/id = 3
|
||||
|
||||
[node name="RenderScale" type="OptionButton" parent="Antialiasing"]
|
||||
offset_top = 159.0
|
||||
offset_right = 265.0
|
||||
offset_bottom = 190.0
|
||||
item_count = 7
|
||||
selected = 2
|
||||
popup/item_0/text = "50% Render Scale (Fastest)"
|
||||
popup/item_0/id = 0
|
||||
popup/item_1/text = "75% Render Scale (Fast)"
|
||||
popup/item_1/id = 1
|
||||
popup/item_2/text = "100% Render Scale (Average)"
|
||||
popup/item_2/id = 2
|
||||
popup/item_3/text = "125% Render Scale (1.56× SSAA, Slow)"
|
||||
popup/item_3/id = 3
|
||||
popup/item_4/text = "150% Render Scale (2.25× SSAA, Slower)"
|
||||
popup/item_4/id = 4
|
||||
popup/item_5/text = "175% Render Scale (3.06× SSAA, Very Slow)"
|
||||
popup/item_5/id = 5
|
||||
popup/item_6/text = "200% Render Scale (4× SSAA, Slowest)"
|
||||
popup/item_6/id = 6
|
||||
|
||||
[connection signal="pressed" from="Previous" to="." method="_on_previous_pressed"]
|
||||
[connection signal="pressed" from="Next" to="." method="_on_next_pressed"]
|
||||
[connection signal="toggled" from="Antialiasing/FXAA" to="." method="_on_fxaa_toggled"]
|
||||
[connection signal="toggled" from="Antialiasing/TemporalAntialiasing" to="." method="_on_temporal_antialiasing_toggled"]
|
||||
[connection signal="item_selected" from="Antialiasing/MSAA" to="." method="_on_msaa_item_selected"]
|
||||
[connection signal="item_selected" from="Antialiasing/RenderScale" to="." method="_on_render_scale_item_selected"]
|
||||
7
3d/antialiasing/default_env.tres
Normal file
@@ -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/antialiasing/icon.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
36
3d/antialiasing/icon.png.import
Normal file
@@ -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
|
||||
BIN
3d/antialiasing/polyhaven/dutch_ship_medium.bin
Normal file
388
3d/antialiasing/polyhaven/dutch_ship_medium_1k.gltf
Normal file
@@ -0,0 +1,388 @@
|
||||
{
|
||||
"asset": {
|
||||
"generator": "Khronos glTF Blender I/O v1.7.33",
|
||||
"version": "2.0"
|
||||
},
|
||||
"scene": 0,
|
||||
"scenes": [
|
||||
{
|
||||
"name": "dutch_ship_medium",
|
||||
"nodes": [
|
||||
0,
|
||||
1,
|
||||
2
|
||||
]
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"mesh": 0,
|
||||
"name": "dutch_ship_medium_rigging"
|
||||
},
|
||||
{
|
||||
"mesh": 1,
|
||||
"name": "dutch_ship_medium_hull"
|
||||
},
|
||||
{
|
||||
"mesh": 2,
|
||||
"name": "dutch_ship_medium_sails"
|
||||
}
|
||||
],
|
||||
"materials": [
|
||||
{
|
||||
"doubleSided": true,
|
||||
"name": "dutch_ship_medium_rigging",
|
||||
"normalTexture": {
|
||||
"index": 0
|
||||
},
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorTexture": {
|
||||
"index": 1
|
||||
},
|
||||
"metallicRoughnessTexture": {
|
||||
"index": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"doubleSided": true,
|
||||
"name": "dutch_ship_medium_hull",
|
||||
"normalTexture": {
|
||||
"index": 3
|
||||
},
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorTexture": {
|
||||
"index": 4
|
||||
},
|
||||
"metallicRoughnessTexture": {
|
||||
"index": 5
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"alphaCutoff": 0.5,
|
||||
"alphaMode": "MASK",
|
||||
"doubleSided": true,
|
||||
"name": "dutch_ship_medium_sails",
|
||||
"normalTexture": {
|
||||
"index": 6
|
||||
},
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorTexture": {
|
||||
"index": 7
|
||||
},
|
||||
"metallicFactor": 0,
|
||||
"metallicRoughnessTexture": {
|
||||
"index": 8
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"name": "x-Boats-Dutch-medium-rigging-joined",
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"POSITION": 0,
|
||||
"NORMAL": 1,
|
||||
"TEXCOORD_0": 2
|
||||
},
|
||||
"indices": 3,
|
||||
"material": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "x-Boats-Dutch-medium-baseB-joined",
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"POSITION": 4,
|
||||
"NORMAL": 5,
|
||||
"TEXCOORD_0": 6
|
||||
},
|
||||
"indices": 7,
|
||||
"material": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Plane.072",
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"POSITION": 8,
|
||||
"NORMAL": 9,
|
||||
"TEXCOORD_0": 10
|
||||
},
|
||||
"indices": 11,
|
||||
"material": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"textures": [
|
||||
{
|
||||
"sampler": 0,
|
||||
"source": 0
|
||||
},
|
||||
{
|
||||
"sampler": 0,
|
||||
"source": 1
|
||||
},
|
||||
{
|
||||
"sampler": 0,
|
||||
"source": 2
|
||||
},
|
||||
{
|
||||
"sampler": 0,
|
||||
"source": 3
|
||||
},
|
||||
{
|
||||
"sampler": 0,
|
||||
"source": 4
|
||||
},
|
||||
{
|
||||
"sampler": 0,
|
||||
"source": 5
|
||||
},
|
||||
{
|
||||
"sampler": 0,
|
||||
"source": 6
|
||||
},
|
||||
{
|
||||
"sampler": 0,
|
||||
"source": 7
|
||||
},
|
||||
{
|
||||
"sampler": 0,
|
||||
"source": 8
|
||||
}
|
||||
],
|
||||
"images": [
|
||||
{
|
||||
"mimeType": "image/jpeg",
|
||||
"name": "dutch_ship_medium_rigging_nor_gl",
|
||||
"uri": "textures/dutch_ship_medium_rigging_nor_gl_1k.jpg"
|
||||
},
|
||||
{
|
||||
"mimeType": "image/jpeg",
|
||||
"name": "dutch_ship_medium_rigging_diff",
|
||||
"uri": "textures/dutch_ship_medium_rigging_diff_1k.jpg"
|
||||
},
|
||||
{
|
||||
"mimeType": "image/jpeg",
|
||||
"name": "dutch_ship_medium_rigging_metal-dutch_ship_medium_rigging_rough",
|
||||
"uri": "textures/dutch_ship_medium_rigging_arm_1k.jpg"
|
||||
},
|
||||
{
|
||||
"mimeType": "image/jpeg",
|
||||
"name": "dutch_ship_medium_hull_nor_gl",
|
||||
"uri": "textures/dutch_ship_medium_hull_nor_gl_1k.jpg"
|
||||
},
|
||||
{
|
||||
"mimeType": "image/jpeg",
|
||||
"name": "dutch_ship_medium_hull_diff",
|
||||
"uri": "textures/dutch_ship_medium_hull_diff_1k.jpg"
|
||||
},
|
||||
{
|
||||
"mimeType": "image/jpeg",
|
||||
"name": "dutch_ship_medium_hull_metal-dutch_ship_medium_hull_rough",
|
||||
"uri": "textures/dutch_ship_medium_hull_arm_1k.jpg"
|
||||
},
|
||||
{
|
||||
"mimeType": "image/jpeg",
|
||||
"name": "dutch_ship_medium_sails_nor_gl",
|
||||
"uri": "textures/dutch_ship_medium_sails_nor_gl_1k.jpg"
|
||||
},
|
||||
{
|
||||
"mimeType": "image/jpeg",
|
||||
"name": "dutch_ship_medium_sails_diff-dutch_ship_medium_sails_alpha",
|
||||
"uri": "textures/dutch_ship_medium_sails_diff_1k.jpg"
|
||||
},
|
||||
{
|
||||
"mimeType": "image/jpeg",
|
||||
"name": "dutch_ship_medium_sails_rough",
|
||||
"uri": "textures/dutch_ship_medium_sails_arm_1k.jpg"
|
||||
}
|
||||
],
|
||||
"accessors": [
|
||||
{
|
||||
"bufferView": 0,
|
||||
"componentType": 5126,
|
||||
"count": 35903,
|
||||
"max": [
|
||||
13.74468994140625,
|
||||
22.657127380371094,
|
||||
3.320786237716675
|
||||
],
|
||||
"min": [
|
||||
-9.983352661132812,
|
||||
1.1995306015014648,
|
||||
-3.4880359172821045
|
||||
],
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView": 1,
|
||||
"componentType": 5126,
|
||||
"count": 35903,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView": 2,
|
||||
"componentType": 5126,
|
||||
"count": 35903,
|
||||
"type": "VEC2"
|
||||
},
|
||||
{
|
||||
"bufferView": 3,
|
||||
"componentType": 5123,
|
||||
"count": 101148,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
{
|
||||
"bufferView": 4,
|
||||
"componentType": 5126,
|
||||
"count": 24621,
|
||||
"max": [
|
||||
11.63282585144043,
|
||||
5.971731662750244,
|
||||
2.599379539489746
|
||||
],
|
||||
"min": [
|
||||
-10.325664520263672,
|
||||
-1.9999947547912598,
|
||||
-2.602752923965454
|
||||
],
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView": 5,
|
||||
"componentType": 5126,
|
||||
"count": 24621,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView": 6,
|
||||
"componentType": 5126,
|
||||
"count": 24621,
|
||||
"type": "VEC2"
|
||||
},
|
||||
{
|
||||
"bufferView": 7,
|
||||
"componentType": 5123,
|
||||
"count": 83694,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
{
|
||||
"bufferView": 8,
|
||||
"componentType": 5126,
|
||||
"count": 4020,
|
||||
"max": [
|
||||
8.375848770141602,
|
||||
16.878726959228516,
|
||||
2.797043800354004
|
||||
],
|
||||
"min": [
|
||||
-1.5351202487945557,
|
||||
4.7319488525390625,
|
||||
-3.2490220069885254
|
||||
],
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView": 9,
|
||||
"componentType": 5126,
|
||||
"count": 4020,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView": 10,
|
||||
"componentType": 5126,
|
||||
"count": 4020,
|
||||
"type": "VEC2"
|
||||
},
|
||||
{
|
||||
"bufferView": 11,
|
||||
"componentType": 5123,
|
||||
"count": 22644,
|
||||
"type": "SCALAR"
|
||||
}
|
||||
],
|
||||
"bufferViews": [
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 430836,
|
||||
"byteOffset": 0
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 430836,
|
||||
"byteOffset": 430836
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 287224,
|
||||
"byteOffset": 861672
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 202296,
|
||||
"byteOffset": 1148896
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 295452,
|
||||
"byteOffset": 1351192
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 295452,
|
||||
"byteOffset": 1646644
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 196968,
|
||||
"byteOffset": 1942096
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 167388,
|
||||
"byteOffset": 2139064
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 48240,
|
||||
"byteOffset": 2306452
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 48240,
|
||||
"byteOffset": 2354692
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 32160,
|
||||
"byteOffset": 2402932
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 45288,
|
||||
"byteOffset": 2435092
|
||||
}
|
||||
],
|
||||
"samplers": [
|
||||
{
|
||||
"magFilter": 9729,
|
||||
"minFilter": 9987
|
||||
}
|
||||
],
|
||||
"buffers": [
|
||||
{
|
||||
"byteLength": 2480380,
|
||||
"uri": "dutch_ship_medium.bin"
|
||||
}
|
||||
]
|
||||
}
|
||||
28
3d/antialiasing/polyhaven/dutch_ship_medium_1k.gltf.import
Normal file
@@ -0,0 +1,28 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://sxx5ow26t0c3"
|
||||
path="res://.godot/imported/dutch_ship_medium_1k.gltf-9a8c4d23ef33512c7c0e526560b6a545.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://polyhaven/dutch_ship_medium_1k.gltf"
|
||||
dest_files=["res://.godot/imported/dutch_ship_medium_1k.gltf-9a8c4d23ef33512c7c0e526560b6a545.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type="Node3D"
|
||||
nodes/root_name="Scene Root"
|
||||
nodes/root_scale=1.0
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
|
After Width: | Height: | Size: 969 KiB |
@@ -0,0 +1,36 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dhmrl40t2na37"
|
||||
path.s3tc="res://.godot/imported/dutch_ship_medium_hull_arm_1k.jpg-1bcb2be1a58190217bafabbba5a96cb5.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/dutch_ship_medium_hull_arm_1k.jpg-1bcb2be1a58190217bafabbba5a96cb5.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc", "etc2"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://polyhaven/textures/dutch_ship_medium_hull_arm_1k.jpg"
|
||||
dest_files=["res://.godot/imported/dutch_ship_medium_hull_arm_1k.jpg-1bcb2be1a58190217bafabbba5a96cb5.s3tc.ctex", "res://.godot/imported/dutch_ship_medium_hull_arm_1k.jpg-1bcb2be1a58190217bafabbba5a96cb5.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
|
||||
|
After Width: | Height: | Size: 728 KiB |
@@ -0,0 +1,36 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://88gdijjjr6p4"
|
||||
path.s3tc="res://.godot/imported/dutch_ship_medium_hull_diff_1k.jpg-d22f57383d3437ac6151a5dc155d1b44.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/dutch_ship_medium_hull_diff_1k.jpg-d22f57383d3437ac6151a5dc155d1b44.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc", "etc2"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://polyhaven/textures/dutch_ship_medium_hull_diff_1k.jpg"
|
||||
dest_files=["res://.godot/imported/dutch_ship_medium_hull_diff_1k.jpg-d22f57383d3437ac6151a5dc155d1b44.s3tc.ctex", "res://.godot/imported/dutch_ship_medium_hull_diff_1k.jpg-d22f57383d3437ac6151a5dc155d1b44.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
|
||||
|
After Width: | Height: | Size: 945 KiB |
@@ -0,0 +1,36 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c22y3qjf8th8a"
|
||||
path.s3tc="res://.godot/imported/dutch_ship_medium_hull_nor_gl_1k.jpg-f0fc1f178ac5ff99bdf2aae06e0701f1.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/dutch_ship_medium_hull_nor_gl_1k.jpg-f0fc1f178ac5ff99bdf2aae06e0701f1.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc", "etc2"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://polyhaven/textures/dutch_ship_medium_hull_nor_gl_1k.jpg"
|
||||
dest_files=["res://.godot/imported/dutch_ship_medium_hull_nor_gl_1k.jpg-f0fc1f178ac5ff99bdf2aae06e0701f1.s3tc.ctex", "res://.godot/imported/dutch_ship_medium_hull_nor_gl_1k.jpg-f0fc1f178ac5ff99bdf2aae06e0701f1.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=1
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=1
|
||||
roughness/src_normal="res://polyhaven/textures/dutch_ship_medium_hull_nor_gl_1k.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
|
||||
|
After Width: | Height: | Size: 544 KiB |
@@ -0,0 +1,36 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://15se8alkcbla"
|
||||
path.s3tc="res://.godot/imported/dutch_ship_medium_rigging_arm_1k.jpg-6de8e054b6e80b00009332eaf9eafbeb.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/dutch_ship_medium_rigging_arm_1k.jpg-6de8e054b6e80b00009332eaf9eafbeb.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc", "etc2"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://polyhaven/textures/dutch_ship_medium_rigging_arm_1k.jpg"
|
||||
dest_files=["res://.godot/imported/dutch_ship_medium_rigging_arm_1k.jpg-6de8e054b6e80b00009332eaf9eafbeb.s3tc.ctex", "res://.godot/imported/dutch_ship_medium_rigging_arm_1k.jpg-6de8e054b6e80b00009332eaf9eafbeb.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
|
||||
|
After Width: | Height: | Size: 554 KiB |
@@ -0,0 +1,36 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c0yhj4wwbvgvu"
|
||||
path.s3tc="res://.godot/imported/dutch_ship_medium_rigging_diff_1k.jpg-b381c8dba5fcad22696086becdc354b0.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/dutch_ship_medium_rigging_diff_1k.jpg-b381c8dba5fcad22696086becdc354b0.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc", "etc2"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://polyhaven/textures/dutch_ship_medium_rigging_diff_1k.jpg"
|
||||
dest_files=["res://.godot/imported/dutch_ship_medium_rigging_diff_1k.jpg-b381c8dba5fcad22696086becdc354b0.s3tc.ctex", "res://.godot/imported/dutch_ship_medium_rigging_diff_1k.jpg-b381c8dba5fcad22696086becdc354b0.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
|
||||
|
After Width: | Height: | Size: 523 KiB |
@@ -0,0 +1,36 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://csbfe6x0jyswi"
|
||||
path.s3tc="res://.godot/imported/dutch_ship_medium_rigging_nor_gl_1k.jpg-26a255f6574d49990ad4162b06c015da.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/dutch_ship_medium_rigging_nor_gl_1k.jpg-26a255f6574d49990ad4162b06c015da.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc", "etc2"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://polyhaven/textures/dutch_ship_medium_rigging_nor_gl_1k.jpg"
|
||||
dest_files=["res://.godot/imported/dutch_ship_medium_rigging_nor_gl_1k.jpg-26a255f6574d49990ad4162b06c015da.s3tc.ctex", "res://.godot/imported/dutch_ship_medium_rigging_nor_gl_1k.jpg-26a255f6574d49990ad4162b06c015da.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=1
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=1
|
||||
roughness/src_normal="res://polyhaven/textures/dutch_ship_medium_rigging_nor_gl_1k.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
|
||||
|
After Width: | Height: | Size: 520 KiB |
@@ -0,0 +1,36 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://70shlrquand4"
|
||||
path.s3tc="res://.godot/imported/dutch_ship_medium_sails_arm_1k.jpg-6cdf6ae207b4bb5365f0df8bebf34d57.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/dutch_ship_medium_sails_arm_1k.jpg-6cdf6ae207b4bb5365f0df8bebf34d57.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc", "etc2"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://polyhaven/textures/dutch_ship_medium_sails_arm_1k.jpg"
|
||||
dest_files=["res://.godot/imported/dutch_ship_medium_sails_arm_1k.jpg-6cdf6ae207b4bb5365f0df8bebf34d57.s3tc.ctex", "res://.godot/imported/dutch_ship_medium_sails_arm_1k.jpg-6cdf6ae207b4bb5365f0df8bebf34d57.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
|
||||
|
After Width: | Height: | Size: 566 KiB |
@@ -0,0 +1,36 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dde6ofm1jcwiv"
|
||||
path.s3tc="res://.godot/imported/dutch_ship_medium_sails_diff_1k.jpg-501769b3e14d33a1ff05b4b14f45b65b.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/dutch_ship_medium_sails_diff_1k.jpg-501769b3e14d33a1ff05b4b14f45b65b.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc", "etc2"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://polyhaven/textures/dutch_ship_medium_sails_diff_1k.jpg"
|
||||
dest_files=["res://.godot/imported/dutch_ship_medium_sails_diff_1k.jpg-501769b3e14d33a1ff05b4b14f45b65b.s3tc.ctex", "res://.godot/imported/dutch_ship_medium_sails_diff_1k.jpg-501769b3e14d33a1ff05b4b14f45b65b.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
|
||||
|
After Width: | Height: | Size: 753 KiB |
@@ -0,0 +1,36 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://doc73t5xbl8to"
|
||||
path.s3tc="res://.godot/imported/dutch_ship_medium_sails_nor_gl_1k.jpg-8bd26cb4511a8400046da66b710b48cf.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/dutch_ship_medium_sails_nor_gl_1k.jpg-8bd26cb4511a8400046da66b710b48cf.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc", "etc2"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://polyhaven/textures/dutch_ship_medium_sails_nor_gl_1k.jpg"
|
||||
dest_files=["res://.godot/imported/dutch_ship_medium_sails_nor_gl_1k.jpg-8bd26cb4511a8400046da66b710b48cf.s3tc.ctex", "res://.godot/imported/dutch_ship_medium_sails_nor_gl_1k.jpg-8bd26cb4511a8400046da66b710b48cf.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=1
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=1
|
||||
roughness/src_normal="res://polyhaven/textures/dutch_ship_medium_sails_nor_gl_1k.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
|
||||
32
3d/antialiasing/project.godot
Normal file
@@ -0,0 +1,32 @@
|
||||
; 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="3D Anti-Aliasing"
|
||||
config/description="This project showcases the various 3D antialiasing techniques supported by Godot."
|
||||
run/main_scene="res://anti_aliasing.tscn"
|
||||
config/features=PackedStringArray("4.0")
|
||||
config/icon="res://icon.png"
|
||||
|
||||
[display]
|
||||
|
||||
window/stretch/mode="canvas_items"
|
||||
window/stretch/aspect="expand"
|
||||
|
||||
[rendering]
|
||||
|
||||
textures/default_filters/anisotropic_filtering_level=4
|
||||
textures/decals/filter=4
|
||||
quality/screen_filters/msaa=3
|
||||
environment/default_environment="res://default_env.tres"
|
||||
0
3d/antialiasing/screenshots/.gdignore
Normal file
BIN
3d/antialiasing/screenshots/3d_anti_aliasing.png
Normal file
|
After Width: | Height: | Size: 968 KiB |
7
3d/antialiasing/textures/checker.LICENSE.md
Normal file
@@ -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/antialiasing/textures/checker.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
36
3d/antialiasing/textures/checker.png.import
Normal file
@@ -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
|
||||
7
3d/antialiasing/textures/paint.LICENSE.md
Normal file
@@ -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/antialiasing/textures/paint.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
34
3d/antialiasing/textures/paint.png.import
Normal file
@@ -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/antialiasing/textures/paint_normal.png
Normal file
|
After Width: | Height: | Size: 89 KiB |
34
3d/antialiasing/textures/paint_normal.png.import
Normal file
@@ -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=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
114
3d/antialiasing/thin_lines.tscn
Normal file
@@ -0,0 +1,114 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://daokc0jvx7nkw"]
|
||||
|
||||
[sub_resource type="PrismMesh" id="PrismMesh_70tw2"]
|
||||
size = Vector3(0.02, 1, 0.02)
|
||||
|
||||
[node name="ThinLines" type="Node3D"]
|
||||
|
||||
[node name="Line1" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0.5, 0.4)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line2" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0.5, 0.3)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line3" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0.5, 0.2)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line4" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0.5, 0.1)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line5" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line6" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0.5, -0.1)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line7" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0.5, -0.2)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line8" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0.5, -0.3)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line9" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0.5, -0.4)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line10" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -0.4, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line11" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -0.3, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line12" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -0.2, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line13" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -0.1, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line14" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line15" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 0.1, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line16" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 0.2, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line17" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 0.3, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line18" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 0.4, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line19" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, -0.4, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line20" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, -0.3, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line21" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, -0.2, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line22" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, -0.1, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line23" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line24" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, 0.1, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line25" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, 0.2, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line26" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, 0.3, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||
|
||||
[node name="Line27" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, 0.4, 0.5, 0)
|
||||
mesh = SubResource("PrismMesh_70tw2")
|
||||