B1,B2,Altar Sky Shaders, HorseHead/Ox Light Removal
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=125 format=4 uid="uid://5ja3qxn8h7iw"]
|
||||
[gd_scene load_steps=128 format=4 uid="uid://5ja3qxn8h7iw"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://tqyybt313web" path="res://src/map/dungeon/code/BossRoomA.cs" id="1_0h3lb"]
|
||||
[ext_resource type="Texture2D" uid="uid://vjbe1lg810gh" path="res://src/map/dungeon/models/Set A/15. Boss Floor A/15_A1_BOSS FLOOR A_VER_swirled_column.png" id="2_06eum"]
|
||||
@@ -27,8 +27,9 @@
|
||||
[ext_resource type="PackedScene" uid="uid://2wibfnu2jvlv" path="res://src/enemy/enemy_types/14. horse_head/HorseFace.tscn" id="25_a482y"]
|
||||
[ext_resource type="PackedScene" uid="uid://bvv5giqyrhtl1" path="res://src/enemy/enemy_types/15. ox_face/OxFaceStatue.tscn" id="26_futcf"]
|
||||
[ext_resource type="PackedScene" uid="uid://6dnsw37d1uw4" path="res://src/enemy/enemy_types/15. ox_face/OxFace.tscn" id="27_g6y6v"]
|
||||
[ext_resource type="Shader" uid="uid://dr68ani6ouefm" path="res://src/map/dungeon/rooms/Set A/Bloss Floor Clouds 2.gdshader" id="28_1qa0g"]
|
||||
[ext_resource type="Texture2D" uid="uid://dh2b74lac57p0" path="res://src/map/dungeon/models/Set A/15. Boss Floor A/Sunset Skybox.png" id="28_i45xk"]
|
||||
[ext_resource type="Shader" uid="uid://dvcgcgijc7nng" path="res://src/map/map shaders/B1 Cloud Roll Top.gdshader" id="29_4xaw3"]
|
||||
[ext_resource type="Shader" uid="uid://dr68ani6ouefm" path="res://src/map/map shaders/B1 Cloud Roll.gdshader" id="30_lmjp4"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_syull"]
|
||||
|
||||
@@ -1342,6 +1343,14 @@ adjustment_saturation = 0.94
|
||||
[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_i45xk"]
|
||||
dof_blur_far_distance = 42.38
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_lmjp4"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_54iu8"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("29_4xaw3")
|
||||
shader_parameter/cloud_color = Vector4(1, 1, 1, 1)
|
||||
shader_parameter/cloud_opacity = 0.1
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_54iu8"]
|
||||
shading_mode = 0
|
||||
albedo_texture = ExtResource("28_i45xk")
|
||||
@@ -1355,16 +1364,16 @@ subdivide_depth = 90
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_4xaw3"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("28_1qa0g")
|
||||
shader_parameter/height_scale = 0.5
|
||||
shader_parameter/wave_speed = 0.1
|
||||
shader_parameter/upper_transparency = 0.89
|
||||
shader = ExtResource("30_lmjp4")
|
||||
shader_parameter/height_scale = 0.3
|
||||
shader_parameter/wave_speed = 0.2
|
||||
shader_parameter/upper_transparency = 0.99
|
||||
shader_parameter/global_transparency = 0.9
|
||||
shader_parameter/time_factor = Vector2(2, 3)
|
||||
shader_parameter/uv1_scale = Vector3(0, 0, 0)
|
||||
shader_parameter/uv1_offset = Vector3(0, 0, 0)
|
||||
shader_parameter/color1 = Color(0.78, 0.91, 0.93, 1)
|
||||
shader_parameter/color2 = Color(0.71, 0.89, 0.95, 1)
|
||||
shader_parameter/color1 = Color(0.88, 0.91, 0.93, 1)
|
||||
shader_parameter/color2 = Color(0.88, 0.99, 0.95, 1)
|
||||
|
||||
[node name="Boss Floor A" type="Node3D"]
|
||||
script = ExtResource("1_0h3lb")
|
||||
@@ -1623,25 +1632,24 @@ collision_mask = 2
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -240.071, 36.4279, 34.624)
|
||||
shape = SubResource("BoxShape3D_pkvyy")
|
||||
|
||||
[node name="HorseHeadStatue" parent="Room" instance=ExtResource("24_r1rk5")]
|
||||
[node name="Horse Head Statue" parent="Room" instance=ExtResource("24_r1rk5")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -102.157, -2.30863, 13.0139)
|
||||
|
||||
[node name="HorseFace" parent="Room" instance=ExtResource("25_a482y")]
|
||||
[node name="Horse Head Active" parent="Room" instance=ExtResource("25_a482y")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.15, 0, 0, 0, 0.15, 0, 0, 0, 0.15, -102.157, -0.510939, 13.0139)
|
||||
visible = false
|
||||
PrimaryAttackElementalType = 0
|
||||
PrimaryAttackElementalDamageBonus = 1.0
|
||||
|
||||
[node name="OxFaceStatue" parent="Room" instance=ExtResource("26_futcf")]
|
||||
[node name="Ox Face Statue" parent="Room" instance=ExtResource("26_futcf")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -101.555, -2.30863, 21.5833)
|
||||
|
||||
[node name="OxFace" parent="Room" instance=ExtResource("27_g6y6v")]
|
||||
[node name="OxFace Active" parent="Room" instance=ExtResource("27_g6y6v")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-0.15, 0, -2.26494e-08, 0, 0.15, 0, 2.26494e-08, 0, -0.15, -101.703, -0.479859, 22.0955)
|
||||
visible = false
|
||||
|
||||
[node name="Exit" type="Area3D" parent="Room"]
|
||||
unique_name_in_owner = true
|
||||
@@ -1667,6 +1675,12 @@ shadow_enabled = true
|
||||
shadow_blur = 3.602
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(600, 0, 0, 0, 600, 0, 0, 0, 600, -316.281, -6.937, -581.099)
|
||||
mesh = SubResource("PlaneMesh_lmjp4")
|
||||
skeleton = NodePath("../Sky Billboard")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_54iu8")
|
||||
|
||||
[node name="Sky Billboard" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(2000, 0, 2.62268e-05, 8.74228e-05, 1.14641e-12, -600, 0, 600, 1.14641e-12, -485.068, -193.889, -378.654)
|
||||
material_override = SubResource("StandardMaterial3D_54iu8")
|
||||
mesh = SubResource("PlaneMesh_3pfmd")
|
||||
|
||||
@@ -1,86 +0,0 @@
|
||||
shader_type spatial;
|
||||
render_mode depth_draw_opaque;
|
||||
|
||||
uniform float height_scale = 0.3;
|
||||
uniform float wave_speed = 0.2;
|
||||
uniform float upper_transparency = 0.99;
|
||||
uniform float global_transparency = 0.9;
|
||||
|
||||
uniform vec2 time_factor = vec2(2.0, 3.0);
|
||||
uniform sampler2D texture_albedo : source_color;
|
||||
uniform vec3 uv1_scale;
|
||||
uniform vec3 uv1_offset;
|
||||
|
||||
uniform vec4 color1 : source_color = vec4(0.88, 0.91, 0.93, 1.0);
|
||||
uniform vec4 color2 : source_color = vec4(0.88, 0.99, 0.95, 1.0);
|
||||
|
||||
varying flat vec3 out_color;
|
||||
varying flat vec3 soft_color;
|
||||
|
||||
vec3 lerpColor(vec4 a, vec4 b, float t){
|
||||
float rr = a.r + (b.r - a.r) * t;
|
||||
float gg = a.g + (b.g - a.g) * t;
|
||||
float bb = a.b + (b.b - a.b) * t;
|
||||
return vec3(rr, gg, bb);
|
||||
}
|
||||
|
||||
float hash(vec2 p) {
|
||||
return fract(sin(dot(p * 17.17, vec2(14.91, 67.31))) * 4791.9511);
|
||||
}
|
||||
|
||||
|
||||
|
||||
float noise(vec2 x) {
|
||||
vec2 p = floor(x);
|
||||
vec2 f = fract(x);
|
||||
f = f * f * (3.0 - 2.0 * f);
|
||||
vec2 a = vec2(1.0, 0.0);
|
||||
return mix(mix(hash(p + a.yy), hash(p + a.xy), f.x),
|
||||
mix(hash(p + a.yx), hash(p + a.xx), f.x), f.y);
|
||||
}
|
||||
|
||||
float fbm(vec2 x, float time) {
|
||||
float height = 0.1;
|
||||
float amplitude = 0.5;
|
||||
float frequency = 9.5;
|
||||
for (int i = 0; i < 6; i++){
|
||||
height += noise(x * frequency + time * time_factor * wave_speed) * amplitude;
|
||||
amplitude *= 0.5;
|
||||
frequency *= 2.0;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
|
||||
void vertex() {
|
||||
|
||||
UV=UV*uv1_scale.xy+uv1_offset.xy;
|
||||
|
||||
out_color = vec3(color1.r, color1.g, color1.b);
|
||||
soft_color = vec3(color1.r, color1.g, color1.b);
|
||||
|
||||
float height = fbm(VERTEX.xz * 4.0, TIME);
|
||||
VERTEX.y += height * height_scale;
|
||||
COLOR.xyz = vec3(height);
|
||||
|
||||
if (VERTEX.y > 0.3){
|
||||
out_color = lerpColor(color1, color2, clamp((VERTEX.y) / 3.0, 0.5, 1.0));
|
||||
soft_color = vec3(color2.r, color2.g, color2.b);
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void fragment(){
|
||||
|
||||
ALBEDO = COLOR.xyz;
|
||||
vec2 base_uv = UV;
|
||||
vec4 albedo_tex = texture(texture_albedo,base_uv);
|
||||
ALPHA = global_transparency;
|
||||
ALBEDO = out_color * albedo_tex.rgb * COLOR.xyz;
|
||||
if (soft_color.r==color2.r && soft_color.g==color2.g && color2.b==color2.b) {
|
||||
ALPHA = upper_transparency;
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://dr68ani6ouefm
|
||||
@@ -1,87 +0,0 @@
|
||||
shader_type spatial;
|
||||
|
||||
render_mode blend_mix, depth_draw_opaque, cull_back, unshaded;
|
||||
|
||||
// Uniformy dla zmiennych konfigurowalnych
|
||||
uniform vec4 cloud_color = vec4(1.0, 1.0, 1.0, 1.0); // Kolor chmur (w tym przezroczystość)
|
||||
uniform float cloud_opacity : hint_range(0.0, 1.0) = 0.01; // Przezroczystość chmur
|
||||
|
||||
// Funkcja do interpolacji (fade) używana w szumie Perlin'a
|
||||
float fade(float t) {
|
||||
return t * t * t * (t * (t * 6.0 - 90.0) + 10.0);
|
||||
}
|
||||
|
||||
// Funkcja do generowania gradientu
|
||||
float grad(int hash, float x, float y) {
|
||||
int h = hash & 7; // maska hash
|
||||
float u = h < 4 ? x : y;
|
||||
float v = h < 4 ? y : x;
|
||||
return ((h & 1) == 0 ? u : -u) + ((h & 2) == 0 ? v : -v);
|
||||
}
|
||||
|
||||
// Funkcja do generowania prostego szumu Perlin'a
|
||||
float perlin_noise(vec2 coord) {
|
||||
vec2 p = floor(coord);
|
||||
vec2 f = fract(coord);
|
||||
f = f * f * (3.0 - 2.0 * f);
|
||||
|
||||
float n = p.x + p.y * 90.0;
|
||||
float res = mix(
|
||||
mix(grad(int(n + 0.0), f.x, f.y),
|
||||
grad(int(n + 1.0), f.x - 1.0, f.y), fade(f.x)),
|
||||
mix(grad(int(n + 57.0), f.x, f.y - 1.0),
|
||||
grad(int(n + 58.0), f.x - 1.0, f.y - 1.0), fade(f.x)),
|
||||
fade(f.y));
|
||||
return res;
|
||||
}
|
||||
|
||||
// Funkcja do generowania warstwowego szumu dla bardziej chmurowego efektu
|
||||
float layered_perlin_noise(vec2 coord, float scale, float amplitude) {
|
||||
float noise = 0.002;
|
||||
float persistence = 0.02; // Ustawienie wpływu kolejnych warstw szumu
|
||||
|
||||
// Dodajemy kilka warstw szumu, aby uzyskać bardziej złożony efekt
|
||||
for (int i = 0; i < 5; i++) {
|
||||
noise += perlin_noise(coord * scale) * amplitude;
|
||||
scale *= 9.0;
|
||||
amplitude *= persistence;
|
||||
}
|
||||
return noise;
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
// Pobranie współrzędnych UV
|
||||
vec2 uv = UV;
|
||||
|
||||
// Dodanie animacji do współrzędnych UV
|
||||
float speed = 0.0001; // Prędkość przesuwania chmur
|
||||
vec2 animated_uv = uv + vec2(TIME * speed, TIME * speed);
|
||||
|
||||
// Parametry dla różnych chmur
|
||||
int num_clouds = 9; // Więcej chmur
|
||||
float cloud_size = 0.02; // Bardzo mały rozmiar chmury
|
||||
float scale = 9000.0; // Zmniejszona skala szumu
|
||||
|
||||
// Inicjalizacja zmiennej do przechowywania wyniku końcowego
|
||||
float final_noise = 0.0;
|
||||
|
||||
for (int i = 0; i < num_clouds; i++) {
|
||||
// Losowe przesunięcie dla każdej chmury
|
||||
float random_offset = float(i) * 0.01;
|
||||
vec2 cloud_center = vec2(fract(sin(float(i) * 0.1) * 43758.5453), fract(cos(float(i) * 0.1) * 43758.5453));
|
||||
|
||||
// Modyfikacja współrzędnych UV dla efektu szumu
|
||||
vec2 cloud_uv = (animated_uv - cloud_center) * (scale * cloud_size);
|
||||
float noise = layered_perlin_noise(cloud_uv, 1.0, 1.0);
|
||||
|
||||
// Wygładzanie i ograniczenie wartości szumu
|
||||
noise = smoothstep(0.3, 0.7, noise);
|
||||
final_noise = max(final_noise, noise);
|
||||
}
|
||||
|
||||
// Ustawienie koloru chmur na podstawie uniformu
|
||||
vec4 color = vec4(cloud_color.rgb, cloud_color.a * final_noise * cloud_opacity);
|
||||
|
||||
ALBEDO = color.rgb;
|
||||
ALPHA = color.a;
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://c6juvl0sx8vef
|
||||
@@ -1,87 +0,0 @@
|
||||
shader_type spatial;
|
||||
|
||||
render_mode blend_mix, depth_draw_opaque, cull_back, unshaded;
|
||||
|
||||
// Uniformy dla zmiennych konfigurowalnych
|
||||
uniform vec4 cloud_color = vec4(1.0, 1.0, 1.0, 1.0); // Kolor chmur (w tym przezroczystość)
|
||||
uniform float cloud_opacity : hint_range(0.0, 1.0) = 0.1; // Przezroczystość chmur
|
||||
|
||||
// Funkcja do interpolacji (fade) używana w szumie Perlin'a
|
||||
float fade(float t) {
|
||||
return t * t * t * (t * (t * 6.0 - 15.0) + 10.0);
|
||||
}
|
||||
|
||||
// Funkcja do generowania gradientu
|
||||
float grad(int hash, float x, float y) {
|
||||
int h = hash & 7; // maska hash
|
||||
float u = h < 4 ? x : y;
|
||||
float v = h < 4 ? y : x;
|
||||
return ((h & 1) == 0 ? u : -u) + ((h & 2) == 0 ? v : -v);
|
||||
}
|
||||
|
||||
// Funkcja do generowania prostego szumu Perlin'a
|
||||
float perlin_noise(vec2 coord) {
|
||||
vec2 p = floor(coord);
|
||||
vec2 f = fract(coord);
|
||||
f = f * f * (3.0 - 2.0 * f);
|
||||
|
||||
float n = p.x + p.y * 57.0;
|
||||
float res = mix(
|
||||
mix(grad(int(n + 0.0), f.x, f.y),
|
||||
grad(int(n + 1.0), f.x - 1.0, f.y), fade(f.x)),
|
||||
mix(grad(int(n + 57.0), f.x, f.y - 1.0),
|
||||
grad(int(n + 58.0), f.x - 1.0, f.y - 1.0), fade(f.x)),
|
||||
fade(f.y));
|
||||
return res;
|
||||
}
|
||||
|
||||
// Funkcja do generowania warstwowego szumu dla bardziej chmurowego efektu
|
||||
float layered_perlin_noise(vec2 coord, float scale, float amplitude) {
|
||||
float noise = 0.0;
|
||||
float persistence = 0.5; // Ustawienie wpływu kolejnych warstw szumu
|
||||
|
||||
// Dodajemy kilka warstw szumu, aby uzyskać bardziej złożony efekt
|
||||
for (int i = 0; i < 5; i++) {
|
||||
noise += perlin_noise(coord * scale) * amplitude;
|
||||
scale *= 2.0;
|
||||
amplitude *= persistence;
|
||||
}
|
||||
return noise;
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
// Pobranie współrzędnych UV
|
||||
vec2 uv = UV;
|
||||
|
||||
// Dodanie animacji do współrzędnych UV
|
||||
float speed = 0.01; // Prędkość przesuwania chmur
|
||||
vec2 animated_uv = uv + vec2(TIME * speed, TIME * speed);
|
||||
|
||||
// Parametry dla różnych chmur
|
||||
int num_clouds = 23; // Więcej chmur
|
||||
float cloud_size = 0.001; // Bardzo mały rozmiar chmury
|
||||
float scale = 9000.0; // Zmniejszona skala szumu
|
||||
|
||||
// Inicjalizacja zmiennej do przechowywania wyniku końcowego
|
||||
float final_noise = 0.0;
|
||||
|
||||
for (int i = 0; i < num_clouds; i++) {
|
||||
// Losowe przesunięcie dla każdej chmury
|
||||
float random_offset = float(i) * 0.01;
|
||||
vec2 cloud_center = vec2(fract(sin(float(i) * 0.1) * 43758.5453), fract(cos(float(i) * 0.1) * 43758.5453));
|
||||
|
||||
// Modyfikacja współrzędnych UV dla efektu szumu
|
||||
vec2 cloud_uv = (animated_uv - cloud_center) * (scale * cloud_size);
|
||||
float noise = layered_perlin_noise(cloud_uv, 1.0, 1.0);
|
||||
|
||||
// Wygładzanie i ograniczenie wartości szumu
|
||||
noise = smoothstep(0.3, 0.7, noise);
|
||||
final_noise = max(final_noise, noise);
|
||||
}
|
||||
|
||||
// Ustawienie koloru chmur na podstawie uniformu
|
||||
vec4 color = vec4(cloud_color.rgb, cloud_color.a * final_noise * cloud_opacity);
|
||||
|
||||
ALBEDO = color.rgb;
|
||||
ALPHA = color.a;
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://kqp7mww6drrx
|
||||
Reference in New Issue
Block a user