Refine environment texture rendering
This commit is contained in:
parent
2bcb4a3c93
commit
47a1990090
5 changed files with 55 additions and 22 deletions
|
|
@ -3,21 +3,19 @@
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://crci2on30ctoc"
|
uid="uid://crci2on30ctoc"
|
||||||
path.s3tc="res://.godot/imported/grass_lite.png-f89cf6413257cd31582bd4f9f875ae85.s3tc.ctex"
|
path="res://.godot/imported/grass_lite.png-f89cf6413257cd31582bd4f9f875ae85.ctex"
|
||||||
path.etc2="res://.godot/imported/grass_lite.png-f89cf6413257cd31582bd4f9f875ae85.etc2.ctex"
|
|
||||||
metadata={
|
metadata={
|
||||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
"vram_texture": false
|
||||||
"vram_texture": true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://art/exported/environment/textures/grass_lite.png"
|
source_file="res://art/exported/environment/textures/grass_lite.png"
|
||||||
dest_files=["res://.godot/imported/grass_lite.png-f89cf6413257cd31582bd4f9f875ae85.s3tc.ctex", "res://.godot/imported/grass_lite.png-f89cf6413257cd31582bd4f9f875ae85.etc2.ctex"]
|
dest_files=["res://.godot/imported/grass_lite.png-f89cf6413257cd31582bd4f9f875ae85.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=2
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
compress/uastc_level=0
|
||||||
|
|
@ -25,7 +23,7 @@ compress/rdo_quality_loss=0.0
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=true
|
mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
|
@ -39,4 +37,4 @@ process/normal_map_invert_y=false
|
||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=0
|
detect_3d/compress_to=1
|
||||||
|
|
|
||||||
|
|
@ -3,21 +3,19 @@
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://bnje415gq85nn"
|
uid="uid://bnje415gq85nn"
|
||||||
path.s3tc="res://.godot/imported/sand.png-41fc96c392119deeba43c2d4e49d88a5.s3tc.ctex"
|
path="res://.godot/imported/sand.png-41fc96c392119deeba43c2d4e49d88a5.ctex"
|
||||||
path.etc2="res://.godot/imported/sand.png-41fc96c392119deeba43c2d4e49d88a5.etc2.ctex"
|
|
||||||
metadata={
|
metadata={
|
||||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
"vram_texture": false
|
||||||
"vram_texture": true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://art/exported/environment/textures/sand.png"
|
source_file="res://art/exported/environment/textures/sand.png"
|
||||||
dest_files=["res://.godot/imported/sand.png-41fc96c392119deeba43c2d4e49d88a5.s3tc.ctex", "res://.godot/imported/sand.png-41fc96c392119deeba43c2d4e49d88a5.etc2.ctex"]
|
dest_files=["res://.godot/imported/sand.png-41fc96c392119deeba43c2d4e49d88a5.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=2
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
compress/uastc_level=0
|
||||||
|
|
@ -25,7 +23,7 @@ compress/rdo_quality_loss=0.0
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=true
|
mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
|
@ -39,4 +37,4 @@ process/normal_map_invert_y=false
|
||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=0
|
detect_3d/compress_to=1
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,14 @@ func _run() -> void:
|
||||||
assert(terrain.mesh.surface_get_name(3) == "cliff_wall")
|
assert(terrain.mesh.surface_get_name(3) == "cliff_wall")
|
||||||
assert(terrain.mesh.surface_get_name(4) == "dirt_wall")
|
assert(terrain.mesh.surface_get_name(4) == "dirt_wall")
|
||||||
|
|
||||||
_validate_projected_material(terrain.get_surface_override_material(0))
|
_validate_projected_material(
|
||||||
_validate_projected_material(terrain.get_surface_override_material(2))
|
terrain.get_surface_override_material(0),
|
||||||
|
"res://art/exported/environment/textures/grass_lite.png"
|
||||||
|
)
|
||||||
|
_validate_projected_material(
|
||||||
|
terrain.get_surface_override_material(2),
|
||||||
|
"res://art/exported/environment/textures/sand.png"
|
||||||
|
)
|
||||||
for surface: int in [1, 3, 4]:
|
for surface: int in [1, 3, 4]:
|
||||||
assert(terrain.get_surface_override_material(surface) == null)
|
assert(terrain.get_surface_override_material(surface) == null)
|
||||||
assert(terrain.mesh.surface_get_material(surface) is StandardMaterial3D)
|
assert(terrain.mesh.surface_get_material(surface) is StandardMaterial3D)
|
||||||
|
|
@ -33,7 +39,10 @@ func _run() -> void:
|
||||||
quit()
|
quit()
|
||||||
|
|
||||||
|
|
||||||
func _validate_projected_material(material: Material) -> void:
|
func _validate_projected_material(
|
||||||
|
material: Material,
|
||||||
|
expected_texture_path: String,
|
||||||
|
) -> void:
|
||||||
assert(material is ShaderMaterial)
|
assert(material is ShaderMaterial)
|
||||||
var shader_material := material as ShaderMaterial
|
var shader_material := material as ShaderMaterial
|
||||||
assert(
|
assert(
|
||||||
|
|
@ -58,3 +67,12 @@ func _validate_projected_material(material: Material) -> void:
|
||||||
2.0
|
2.0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
var texture: Texture2D = shader_material.get_shader_parameter(
|
||||||
|
"albedo_texture"
|
||||||
|
) as Texture2D
|
||||||
|
assert(texture != null)
|
||||||
|
assert(texture.resource_path == expected_texture_path)
|
||||||
|
var imported_image: Image = texture.get_image()
|
||||||
|
assert(imported_image != null)
|
||||||
|
assert(not imported_image.has_mipmaps())
|
||||||
|
assert(imported_image.get_format() == Image.FORMAT_RGBA8)
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,28 @@
|
||||||
[gd_resource type="Sky" load_steps=3 format=3 uid="uid://dersyay71dyat"]
|
[gd_resource type="Sky" format=3 uid="uid://dersyay71dyat"]
|
||||||
|
|
||||||
[ext_resource type="Shader" path="res://world/environment/netfishing_sky.gdshader" id="1_sky_shader"]
|
[ext_resource type="Shader" uid="uid://chbcdlhui3ro4" path="res://world/environment/netfishing_sky.gdshader" id="1_sky_shader"]
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_netfishing"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_netfishing"]
|
||||||
shader = ExtResource("1_sky_shader")
|
shader = ExtResource("1_sky_shader")
|
||||||
|
shader_parameter/sky_top_color = Color(0.204, 0.498, 0.643, 1)
|
||||||
|
shader_parameter/sky_horizon_color = Color(0.663, 0.843, 0.847, 1)
|
||||||
|
shader_parameter/ground_bottom_color = Color(0.157, 0.361, 0.439, 1)
|
||||||
|
shader_parameter/ground_horizon_color = Color(0.549, 0.749, 0.765, 1)
|
||||||
|
shader_parameter/horizon_blend_width = 0.01
|
||||||
|
shader_parameter/sun_direction = Vector3(0, 1, 0)
|
||||||
|
shader_parameter/sun_color = Color(1, 0.86, 0.46, 1)
|
||||||
|
shader_parameter/sun_visibility = 1.0
|
||||||
|
shader_parameter/sun_radius = 0.055
|
||||||
|
shader_parameter/sun_edge_softness = 0.003
|
||||||
|
shader_parameter/sun_halo_radius = 0.14
|
||||||
|
shader_parameter/sun_halo_strength = 0.16
|
||||||
|
shader_parameter/moon_direction = Vector3(0, -1, 0)
|
||||||
|
shader_parameter/moon_color = Color(0.78, 0.88, 1, 1)
|
||||||
|
shader_parameter/moon_visibility = 0.0
|
||||||
|
shader_parameter/moon_radius = 0.045
|
||||||
|
shader_parameter/moon_edge_softness = 0.003
|
||||||
|
shader_parameter/moon_halo_radius = 0.11
|
||||||
|
shader_parameter/moon_halo_strength = 0.12
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
sky_material = SubResource("ShaderMaterial_netfishing")
|
sky_material = SubResource("ShaderMaterial_netfishing")
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
shader_type spatial;
|
shader_type spatial;
|
||||||
render_mode cull_back;
|
render_mode cull_back;
|
||||||
|
|
||||||
uniform sampler2D albedo_texture : source_color, repeat_enable, filter_nearest_mipmap_anisotropic;
|
uniform sampler2D albedo_texture : source_color, repeat_enable, filter_nearest;
|
||||||
uniform vec4 albedo_tint : source_color = vec4(1.0);
|
uniform vec4 albedo_tint : source_color = vec4(1.0);
|
||||||
uniform float tile_world_size : hint_range(0.1, 20.0, 0.05) = 2.5;
|
uniform float tile_world_size : hint_range(0.1, 20.0, 0.05) = 2.5;
|
||||||
uniform float blend_sharpness : hint_range(1.0, 16.0, 0.25) = 6.0;
|
uniform float blend_sharpness : hint_range(1.0, 16.0, 0.25) = 6.0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue