Merge pull request #758 from Calinou/improve-global-illumination-demo

Improve 3D global illumination demo (4.0)
This commit is contained in:
Rémi Verschelde
2023-02-08 15:45:24 +01:00
committed by GitHub
14 changed files with 243 additions and 75 deletions

View File

@@ -1,7 +1,7 @@
# Global Illumination
This demo showcases Godot's global illumination systems:
VoxelGI, SDFGI, ReflectionProbe and screen-space effects like SSAO and SSIL.
LightmapGI, VoxelGI, SDFGI, ReflectionProbe and screen-space effects like SSAO and SSIL.
Use the mouse to look around, <kbd>W</kbd>/<kbd>A</kbd>/<kbd>S</kbd>/<kbd>D</kbd>
or arrow keys to move.
@@ -17,6 +17,10 @@ A ReflectionProbe is parented to the sphere to showcase real-time reflections.
When the ReflectionProbe is hidden, it is disabled. In this case,
VoxelGI, SDFGI or environment lighting will be used to provide fallback reflections.
A Decal node is parented to the moving sphere and cube to provide simple shadows for them.
This is especially effective when using the LightmapGI (All) global illumination mode,
which doesn't allow dynamic objects to cast shadows on static surfaces.
## Screenshots
![Screenshot](screenshots/global_illumination.png)

View File

@@ -15,6 +15,7 @@ dest_files=["res://.godot/imported/cube.glb-ec927bc01951d93b2130ba52799eca7c.scn
nodes/root_type="Spatial"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
@@ -24,5 +25,6 @@ meshes/lightmap_texel_size=0.1
skins/use_named_skins=true
animation/import=true
animation/fps=15
animation/trimming=false
import_script/path=""
_subresources={}

View File

@@ -1,9 +1,9 @@
[remap]
importer="texture"
type="StreamTexture2D"
type="CompressedTexture2D"
uid="uid://q2k8m14vo3kr"
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
metadata={
"vram_texture": false
}
@@ -11,7 +11,7 @@ metadata={
[deps]
source_file="res://icon.png"
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
[params]
@@ -21,7 +21,6 @@ compress/hdr_compression=1
compress/bptc_ldr=0
compress/normal_map=0
compress/channel_pack=0
compress/streamed=false
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
@@ -29,6 +28,7 @@ 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_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -11,6 +11,7 @@ config_version=5
[application]
config/name="Global Illumination"
config/description="This demo showcases Godot's global illumination systems: LightmapGI, VoxelGI, SDFGI, ReflectionProbe and screen-space effects like SSAO and SSIL."
run/main_scene="res://test.tscn"
config/features=PackedStringArray("4.0")
config/icon="res://icon.png"
@@ -20,6 +21,10 @@ config/icon="res://icon.png"
window/stretch/mode="canvas_items"
window/stretch/aspect="expand"
[editor]
export/convert_text_resources_to_binary=true
[filesystem]
import/blender/enabled=false
@@ -31,7 +36,7 @@ cycle_gi_mode={
"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":32,"unicode":0,"echo":false,"script":null)
]
}
toggle_reflection_probe={
cycle_reflection_probe_mode={
"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":82,"unicode":0,"echo":false,"script":null)
]
@@ -78,5 +83,7 @@ common/enable_pause_aware_picking=true
[rendering]
anti_aliasing/quality/screen_space_aa=1
anti_aliasing/quality/use_debanding=true
quality/shadows/filter_mode=2
environment/default_environment="res://default_env.tres"

View File

@@ -2,8 +2,8 @@ extends Node3D
enum GIMode {
NONE,
# BAKED_LIGHTMAP_ALL,
# BAKED_LIGHTMAP_INDIRECT,
LIGHTMAP_GI_ALL,
LIGHTMAP_GI_INDIRECT,
VOXEL_GI,
SDFGI,
MAX, # Maximum value of the enum, used internally.
@@ -12,12 +12,26 @@ enum GIMode {
# Keep this in sync with the GIMode enum (except for MAX).
const GI_MODE_TEXTS = [
"Environment Lighting (Fastest)",
# "Baked Lightmap All (Fast)",
# "Baked Lightmap Indirect (Average)",
"Baked Lightmap All (Fast)",
"Baked Lightmap Indirect (Average)",
"VoxelGI (Slow)",
"SDFGI (Slow)",
]
enum ReflectionProbeMode {
NONE,
ONCE,
ALWAYS,
MAX,
}
# Keep this in sync with the ReflectionProbeMode enum (except for MAX).
const REFLECTION_PROBE_MODE_TEXTS = [
"Disabled - Using environment, VoxelGI or SDFGI reflections (Fast)",
"Enabled - \"Once\" Update Mode (Average)",
"Enabled - \"Always\" Update Mode (Slow)",
]
enum SSILMode {
NONE,
SSAO,
@@ -35,7 +49,7 @@ const SSIL_MODE_TEXTS = [
]
var gi_mode = GIMode.NONE
var use_reflection_probe = false
var reflection_probe_mode = ReflectionProbeMode.NONE
var ssil_mode = SSILMode.NONE
@onready var environment = $WorldEnvironment.environment
@@ -44,10 +58,15 @@ var ssil_mode = SSILMode.NONE
@onready var reflection_probe = $Camera/ReflectiveSphere/ReflectionProbe
@onready var ssil_mode_label = $SSILMode
# Several copies of the level mesh are required to cycle between different GI modes.
@onready var zdm2_no_lightmap = $Zdm2NoLightmap
@onready var zdm2_lightmap_all = $Zdm2LightmapAll
@onready var zdm2_lightmap_indirect = $Zdm2LightmapIndirect
func _ready():
set_gi_mode(gi_mode)
set_use_reflection_probe(use_reflection_probe)
set_reflection_probe_mode(reflection_probe_mode)
set_ssil_mode(ssil_mode)
@@ -55,8 +74,8 @@ func _input(event):
if event.is_action_pressed("cycle_gi_mode"):
set_gi_mode(wrapi(gi_mode + 1, 0, GIMode.MAX))
if event.is_action_pressed("toggle_reflection_probe"):
set_use_reflection_probe(not use_reflection_probe)
if event.is_action_pressed("cycle_reflection_probe_mode"):
set_reflection_probe_mode(wrapi(reflection_probe_mode + 1, 0, ReflectionProbeMode.MAX))
if event.is_action_pressed("cycle_ssil_mode"):
set_ssil_mode(wrapi(ssil_mode + 1, 0, SSILMode.MAX))
@@ -68,8 +87,14 @@ func set_gi_mode(p_gi_mode):
match p_gi_mode:
GIMode.NONE:
# $BakedLightmapIndirect.visible = false
# $BakedLightmapAll.visible = false
$Zdm2NoLightmap.visible = true
$Zdm2LightmapAll.visible = false
$Zdm2LightmapIndirect.visible = false
# Halve sky contribution to prevent shaded areas from looking too bright and blue.
environment.ambient_light_sky_contribution = 0.5
$LightmapGIIndirect.visible = false
$LightmapGIAll.visible = false
$VoxelGI.visible = false
environment.sdfgi_enabled = false
@@ -80,71 +105,94 @@ func set_gi_mode(p_gi_mode):
$GarageOmniLight.light_bake_mode = Light3D.BAKE_DYNAMIC
$CornerSpotLight.light_bake_mode = Light3D.BAKE_DYNAMIC
# GIMode.BAKED_LIGHTMAP_ALL:
# $BakedLightmapIndirect.visible = false
# $BakedLightmapAll.visible = true
# $VoxelGI.visible = false
# environment.sdfgi_enabled = false
#
# # Make lights not affect baked surfaces by setting their bake mode to All.
# $Sun.light_bake_mode = Light3D.BAKE_STATIC
# $GrateOmniLight.light_bake_mode = Light3D.BAKE_STATIC
# $GarageOmniLight.light_bake_mode = Light3D.BAKE_STATIC
# $CornerSpotLight.light_bake_mode = Light3D.BAKE_STATIC
GIMode.LIGHTMAP_GI_ALL:
$Zdm2NoLightmap.visible = false
$Zdm2LightmapAll.visible = true
$Zdm2LightmapIndirect.visible = false
# GIMode.BAKED_LIGHTMAP_INDIRECT:
# $BakedLightmapIndirect.visible = true
# $BakedLightmapAll.visible = false
# $VoxelGI.visible = false
# environment.sdfgi_enabled = false
#
# $Sun.light_bake_mode = Light3D.BAKE_DYNAMIC
# $GrateOmniLight.light_bake_mode = Light3D.BAKE_DYNAMIC
# $GarageOmniLight.light_bake_mode = Light3D.BAKE_DYNAMIC
# $CornerSpotLight.light_bake_mode = Light3D.BAKE_DYNAMIC
# Halve sky contribution to prevent dynamic objects from looking too bright and blue.
# (When using lightmaps, this property doesn't affect lightmapped surfaces.)
environment.ambient_light_sky_contribution = 0.5
$LightmapGIIndirect.visible = false
$LightmapGIAll.visible = true
$VoxelGI.visible = false
environment.sdfgi_enabled = false
# Make lights not affect baked surfaces by setting their bake mode to All.
$Sun.light_bake_mode = Light3D.BAKE_STATIC
$GrateOmniLight.light_bake_mode = Light3D.BAKE_STATIC
$GarageOmniLight.light_bake_mode = Light3D.BAKE_STATIC
$CornerSpotLight.light_bake_mode = Light3D.BAKE_STATIC
GIMode.LIGHTMAP_GI_INDIRECT:
$Zdm2NoLightmap.visible = false
$Zdm2LightmapAll.visible = false
$Zdm2LightmapIndirect.visible = true
# Halve sky contribution to prevent dynamic objects from looking too bright and blue.
# (When using lightmaps, this property doesn't affect lightmapped surfaces.)
environment.ambient_light_sky_contribution = 0.5
$LightmapGIIndirect.visible = true
$LightmapGIAll.visible = false
$VoxelGI.visible = false
environment.sdfgi_enabled = false
$Sun.light_bake_mode = Light3D.BAKE_DYNAMIC
$GrateOmniLight.light_bake_mode = Light3D.BAKE_DYNAMIC
$GarageOmniLight.light_bake_mode = Light3D.BAKE_DYNAMIC
$CornerSpotLight.light_bake_mode = Light3D.BAKE_DYNAMIC
GIMode.VOXEL_GI:
# $BakedLightmapIndirect.visible = false
# $BakedLightmapAll.visible = false
$Zdm2NoLightmap.visible = true
$Zdm2LightmapAll.visible = false
$Zdm2LightmapIndirect.visible = false
environment.ambient_light_sky_contribution = 1.0
$LightmapGIIndirect.visible = false
$LightmapGIAll.visible = false
$VoxelGI.visible = true
environment.sdfgi_enabled = false
# Bake mode must be Indirect, not Disabled. Otherwise, GI will
# not be visible for those lights.
# Moving/blinking lights should generally have their bake mode set to Disabled
# to avoid visible GI pop-ins. This is because VoxelGI
# can take a while to update.
$Sun.light_bake_mode = Light3D.BAKE_DYNAMIC
$GrateOmniLight.light_bake_mode = Light3D.BAKE_DYNAMIC
$GarageOmniLight.light_bake_mode = Light3D.BAKE_DYNAMIC
$CornerSpotLight.light_bake_mode = Light3D.BAKE_DYNAMIC
GIMode.SDFGI:
# $BakedLightmapIndirect.visible = false
# $BakedLightmapAll.visible = false
$Zdm2NoLightmap.visible = true
$Zdm2LightmapAll.visible = false
$Zdm2LightmapIndirect.visible = false
environment.ambient_light_sky_contribution = 1.0
$LightmapGIIndirect.visible = false
$LightmapGIAll.visible = false
$VoxelGI.visible = false
environment.sdfgi_enabled = true
# Bake mode must be Indirect, not Disabled. Otherwise, GI will
# not be visible for those lights.
# Moving/blinking lights should generally have their bake mode set to Disabled
# to avoid visible GI pop-ins. This is because SDFGI
# can take a while to update.
$Sun.light_bake_mode = Light3D.BAKE_DYNAMIC
$GrateOmniLight.light_bake_mode = Light3D.BAKE_DYNAMIC
$GarageOmniLight.light_bake_mode = Light3D.BAKE_DYNAMIC
$CornerSpotLight.light_bake_mode = Light3D.BAKE_DYNAMIC
func set_use_reflection_probe(p_visible):
use_reflection_probe = p_visible
func set_reflection_probe_mode(p_reflection_probe_mode):
reflection_probe_mode = p_reflection_probe_mode
reflection_probe_mode_label.text = "Reflection probe: %s " % REFLECTION_PROBE_MODE_TEXTS[reflection_probe_mode]
if p_visible:
reflection_probe_mode_label.text = "Reflection probe: Enabled - Using reflection probe (Average)"
else:
reflection_probe_mode_label.text = "Reflection probe: Disabled - Using environment, VoxelGI or SDFGI reflections (Fast)"
reflection_probe.visible = p_visible
match p_reflection_probe_mode:
ReflectionProbeMode.NONE:
reflection_probe.visible = false
reflection_probe.update_mode = ReflectionProbe.UPDATE_ONCE
ReflectionProbeMode.ONCE:
reflection_probe.visible = true
reflection_probe.update_mode = ReflectionProbe.UPDATE_ONCE
ReflectionProbeMode.ALWAYS:
reflection_probe.visible = true
reflection_probe.update_mode = ReflectionProbe.UPDATE_ALWAYS
func set_ssil_mode(p_ssil_mode):

View File

@@ -1,9 +1,11 @@
[gd_scene load_steps=13 format=3 uid="uid://dbm1npua7fq50"]
[gd_scene load_steps=17 format=3 uid="uid://dbm1npua7fq50"]
[ext_resource type="PackedScene" uid="uid://djbrxyh5s8j2o" path="res://zdm2.glb" id="1"]
[ext_resource type="PackedScene" uid="uid://c2lbhsefub1o5" path="res://cube.glb" id="3"]
[ext_resource type="VoxelGIData" uid="uid://duykbpl6evu0r" path="res://test_VoxelGIData.res" id="3_1netx"]
[ext_resource type="LightmapGIData" uid="uid://ct72rg4fnnes8" path="res://zdm2_all.lmbake" id="4_7vqwx"]
[ext_resource type="Script" path="res://test.gd" id="5"]
[ext_resource type="LightmapGIData" uid="uid://b78viqmkq8djh" path="res://zdm2_indirect.lmbake" id="5_14bmd"]
[ext_resource type="Script" path="res://camera.gd" id="6"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_30v8t"]
@@ -20,6 +22,7 @@ background_mode = 2
sky = SubResource("Sky_4q314")
tonemap_mode = 3
tonemap_white = 6.0
ssao_intensity = 1.0
sdfgi_cascades = 3
sdfgi_min_cell_size = 0.25
sdfgi_cascade0_distance = 16.0
@@ -33,7 +36,18 @@ emission_energy_multiplier = 2.0
[sub_resource type="BoxMesh" id="8"]
[sub_resource type="Gradient" id="Gradient_3s4nj"]
colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_uu8pf"]
gradient = SubResource("Gradient_3s4nj")
fill = 1
fill_from = Vector2(0.5, 0.5)
fill_to = Vector2(0.5, 0.01)
[sub_resource type="SphereMesh" id="2"]
radius = 1.0
height = 2.0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_7doxp"]
albedo_color = Color(0.811765, 1, 0.764706, 1)
@@ -46,27 +60,46 @@ script = ExtResource("5")
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_bau0c")
[node name="Zdm2" parent="." instance=ExtResource("1")]
[node name="Zdm2NoLightmap" parent="." instance=ExtResource("1")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2)
[node name="Zdm2LightmapAll" parent="." instance=ExtResource("1")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2)
visible = false
[node name="Zdm2LightmapIndirect" parent="." instance=ExtResource("1")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2)
visible = false
[node name="VoxelGI" type="VoxelGI" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 6, 2.5)
extents = Vector3(39, 18.5, 30)
data = ExtResource("3_1netx")
[node name="LightmapGIAll" type="LightmapGI" parent="."]
visible = false
quality = 3
light_data = ExtResource("4_7vqwx")
[node name="LightmapGIIndirect" type="LightmapGI" parent="."]
visible = false
quality = 3
light_data = ExtResource("5_14bmd")
[node name="Sun" type="DirectionalLight3D" parent="."]
transform = Transform3D(0.889832, -0.251497, 0.380722, 0, 0.834387, 0.551179, -0.456289, -0.490456, 0.742464, 4.47302, 6.47568, 8.72305)
shadow_enabled = true
shadow_blur = 1.5
shadow_bias = 0.04
shadow_blur = 2.0
directional_shadow_fade_start = 1.0
directional_shadow_max_distance = 85.0
directional_shadow_max_distance = 75.0
[node name="GrateOmniLight" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.9461, -1.33084, -5.52646)
light_color = Color(1, 0.905882, 0.470588, 1)
shadow_enabled = true
shadow_bias = 0.03
shadow_blur = 1.5
shadow_blur = 2.0
omni_range = 10.0
omni_attenuation = 2.0
@@ -76,7 +109,7 @@ light_color = Color(0.984314, 0.552941, 1, 1)
light_energy = 15.0
shadow_enabled = true
shadow_bias = 0.03
shadow_blur = 1.5
shadow_blur = 2.0
omni_range = 10.0
omni_attenuation = 2.0
@@ -100,8 +133,18 @@ script = ExtResource("6")
[node name="Box" type="MeshInstance3D" parent="Camera"]
transform = Transform3D(0.999999, -5.12227e-09, 9.68575e-08, 2.79397e-09, 0.999999, 8.9407e-08, 7.45058e-09, -1.11759e-07, 0.999999, -1.4, -0.999998, -3.99998)
layers = 2
mesh = SubResource("8")
[node name="BlobShadow" type="Decal" parent="Camera/Box"]
transform = Transform3D(-0.997524, -0.00613033, -0.0700699, -0.00719589, 0.999863, 0.0149653, 0.0699686, 0.015432, -0.997431, 0.0499506, -0.507917, -0.035697)
extents = Vector3(1.25, 2, 1.25)
texture_albedo = SubResource("GradientTexture2D_uu8pf")
albedo_mix = 0.9
upper_fade = 1.0
lower_fade = 1.0
cull_mask = 1048573
[node name="ReflectiveSphere" type="MeshInstance3D" parent="Camera"]
transform = Transform3D(-0.997523, -8.41886e-09, -0.0703376, -0.00719589, 0.994753, 0.102052, 0.0699685, 0.102305, -0.992289, 0.16733, -1.22931, -3.81225)
layers = 2
@@ -111,18 +154,27 @@ surface_material_override/0 = SubResource("StandardMaterial3D_7doxp")
[node name="ReflectionProbe" type="ReflectionProbe" parent="Camera/ReflectiveSphere"]
transform = Transform3D(1, -8.38189e-09, -8.9407e-08, 5.58791e-09, 1, -5.21541e-07, 4.47035e-08, 1.11759e-07, 1, 0, 0, 0)
max_distance = 50.0
extents = Vector3(11, 11, 11)
box_projection = true
enable_shadows = true
ambient_mode = 0
[node name="BlobShadow" type="Decal" parent="Camera/ReflectiveSphere"]
transform = Transform3D(1, -1.37668e-14, 0, 1.33227e-15, 1, 1.42109e-14, 0, 0, 1, 0, -1, -1.90735e-06)
extents = Vector3(1.25, 2, 1.25)
texture_albedo = SubResource("GradientTexture2D_uu8pf")
albedo_mix = 0.9
upper_fade = 1.0
lower_fade = 1.0
cull_mask = 1048573
[node name="GIMode" type="Label" parent="."]
offset_left = 16.0
offset_top = 16.0
offset_right = 263.0
offset_bottom = 42.0
theme_override_colors/font_shadow_color = Color(0, 0, 0, 1)
theme_override_constants/shadow_offset_x = 1
theme_override_constants/shadow_offset_y = 1
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "Global illumination: None (Fastest)"
[node name="ReflectionProbeMode" type="Label" parent="."]
@@ -130,9 +182,8 @@ offset_left = 16.0
offset_top = 48.0
offset_right = 148.0
offset_bottom = 74.0
theme_override_colors/font_shadow_color = Color(0, 0, 0, 1)
theme_override_constants/shadow_offset_x = 1
theme_override_constants/shadow_offset_y = 1
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "Reflection probe: Disabled - Using environment, VoxelGI or SDFGI reflections (Fast)"
[node name="SSILMode" type="Label" parent="."]
@@ -140,9 +191,8 @@ offset_left = 16.0
offset_top = 80.0
offset_right = 365.0
offset_bottom = 106.0
theme_override_colors/font_shadow_color = Color(0, 0, 0, 1)
theme_override_constants/shadow_offset_x = 1
theme_override_constants/shadow_offset_y = 1
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "Screen-space lighting effects: Disabled (Fast)"
[node name="Label" type="Label" parent="."]
@@ -153,11 +203,10 @@ offset_left = 16.0
offset_top = -120.0
offset_right = 537.0
offset_bottom = -16.0
theme_override_colors/font_shadow_color = Color(0, 0, 0, 1)
theme_override_constants/shadow_offset_x = 1
theme_override_constants/shadow_offset_y = 1
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "Space: Cycle between GI modes
R: Toggle reflection probe
R: Cycle between reflection probe modes
F: Cycle between screen-space lighting effect modes
Escape or F10: Toggle mouse capture"

View File

@@ -15,6 +15,7 @@ dest_files=["res://.godot/imported/zdm2.glb-c2f26c366324e083db1b83c037b80fc6.scn
nodes/root_type="Spatial"
nodes/root_name="Zdm2"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=false
@@ -24,5 +25,6 @@ meshes/lightmap_texel_size=0.25
skins/use_named_skins=true
animation/import=true
animation/fps=15
animation/trimming=false
import_script/path=""
_subresources={}

Binary file not shown.

View File

@@ -0,0 +1,28 @@
[remap]
importer="2d_array_texture"
type="CompressedTexture2DArray"
uid="uid://dh810u2wvg8xg"
path.etc2="res://.godot/imported/zdm2_all.exr-90621151e6c7cdb548fd3797293f06e7.etc2.ctexarray"
path.s3tc="res://.godot/imported/zdm2_all.exr-90621151e6c7cdb548fd3797293f06e7.s3tc.ctexarray"
metadata={
"imported_formats": ["etc2", "s3tc"],
"vram_texture": true
}
[deps]
source_file="res://zdm2_all.exr"
dest_files=["res://.godot/imported/zdm2_all.exr-90621151e6c7cdb548fd3797293f06e7.etc2.ctexarray", "res://.godot/imported/zdm2_all.exr-90621151e6c7cdb548fd3797293f06e7.s3tc.ctexarray"]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/bptc_ldr=0
compress/channel_pack=1
mipmaps/generate=false
mipmaps/limit=-1
slices/horizontal=1
slices/vertical=1

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,28 @@
[remap]
importer="2d_array_texture"
type="CompressedTexture2DArray"
uid="uid://dv1sjg7a0m50l"
path.etc2="res://.godot/imported/zdm2_indirect.exr-1fd4bc76ec648c4d2e6230b7d974087b.etc2.ctexarray"
path.s3tc="res://.godot/imported/zdm2_indirect.exr-1fd4bc76ec648c4d2e6230b7d974087b.s3tc.ctexarray"
metadata={
"imported_formats": ["etc2", "s3tc"],
"vram_texture": true
}
[deps]
source_file="res://zdm2_indirect.exr"
dest_files=["res://.godot/imported/zdm2_indirect.exr-1fd4bc76ec648c4d2e6230b7d974087b.etc2.ctexarray", "res://.godot/imported/zdm2_indirect.exr-1fd4bc76ec648c4d2e6230b7d974087b.s3tc.ctexarray"]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/bptc_ldr=0
compress/channel_pack=1
mipmaps/generate=false
mipmaps/limit=-1
slices/horizontal=1
slices/vertical=1

Binary file not shown.