first commit
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 358 KiB |
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d2ituqwj8vjlq"
|
||||
path.s3tc="res://.godot/imported/1672960658_grizly-club-p-tekstura-fasada-doma-6.jpg-f782d92ec2fa8131141e53877ca9d22b.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/texture_custom/1672960658_grizly-club-p-tekstura-fasada-doma-6.jpg"
|
||||
dest_files=["res://.godot/imported/1672960658_grizly-club-p-tekstura-fasada-doma-6.jpg-f782d92ec2fa8131141e53877ca9d22b.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
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
Binary file not shown.
|
After Width: | Height: | Size: 10 MiB |
+41
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://u5r75bsy6h8v"
|
||||
path.s3tc="res://.godot/imported/1673357848_grizly-club-p-besshovnaya-tekstura-okon-neboskreba-3.jpg-f40fd8267f6df285856a1432d7e58b57.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/texture_custom/1673357848_grizly-club-p-besshovnaya-tekstura-okon-neboskreba-3.jpg"
|
||||
dest_files=["res://.godot/imported/1673357848_grizly-club-p-besshovnaya-tekstura-okon-neboskreba-3.jpg-f40fd8267f6df285856a1432d7e58b57.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
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
|
||||
Binary file not shown.
@@ -0,0 +1,19 @@
|
||||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://d06wphmcnv50x"
|
||||
path="res://.godot/imported/Pocelujj_Otca_-_Betonnyjj_Demon_78112783.mp3-76aefe188fce833caa2ca6bd0ac288e8.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/texture_custom/Pocelujj_Otca_-_Betonnyjj_Demon_78112783.mp3"
|
||||
dest_files=["res://.godot/imported/Pocelujj_Otca_-_Betonnyjj_Demon_78112783.mp3-76aefe188fce833caa2ca6bd0ac288e8.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 19 MiB |
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b26ir1ccbj3f1"
|
||||
path.s3tc="res://.godot/imported/Timeline 1_00086400.png-98001ba65ea07407d97e176958d8dd80.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/texture_custom/Timeline 1_00086400.png"
|
||||
dest_files=["res://.godot/imported/Timeline 1_00086400.png-98001ba65ea07407d97e176958d8dd80.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
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
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 76 KiB |
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://by4817bwewm7u"
|
||||
path.s3tc="res://.godot/imported/istockphoto-1212675245-612x612.jpg-9a3421f1d9147b6a109300ee1e71d4e3.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/texture_custom/istockphoto-1212675245-612x612.jpg"
|
||||
dest_files=["res://.godot/imported/istockphoto-1212675245-612x612.jpg-9a3421f1d9147b6a109300ee1e71d4e3.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
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
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 333 KiB |
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://djc6320ta5njy"
|
||||
path.s3tc="res://.godot/imported/photo_2025-01-16_20-48-40.jpg-d2fdf16ed860bfaf75ef7386e800a963.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/texture_custom/photo_2025-01-16_20-48-40.jpg"
|
||||
dest_files=["res://.godot/imported/photo_2025-01-16_20-48-40.jpg-d2fdf16ed860bfaf75ef7386e800a963.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
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
|
||||
@@ -0,0 +1,53 @@
|
||||
shader_type spatial;
|
||||
|
||||
// Настройки, которые можно крутить в Инспекторе
|
||||
uniform sampler2D albedo_texture : source_color, filter_nearest;
|
||||
uniform float vertex_snap_resolution = 60.0; // Чем меньше число, тем сильнее "дрожь"
|
||||
uniform vec2 texture_pixelation = vec2(64.0, 64.0); // Пикселизация текстуры
|
||||
uniform float dither_strength = 0.15; // Сила дизеринга (шума)
|
||||
|
||||
// Матрица Байера 4x4 для упорядоченного дизеринга
|
||||
const float bayer_matrix[16] = float[16](
|
||||
0.0, 8.0, 2.0, 10.0,
|
||||
12.0, 4.0, 14.0, 6.0,
|
||||
3.0, 11.0, 1.0, 9.0,
|
||||
15.0, 7.0, 13.0, 5.0
|
||||
);
|
||||
|
||||
void vertex() {
|
||||
// 1. Эффект "дрожания" вершин (Vertex Snapping)
|
||||
// Переводим вершину в пространство камеры
|
||||
vec4 view_pos = MODELVIEW_MATRIX * vec4(VERTEX, 1.0);
|
||||
|
||||
// Умножаем на коэффициент сетки, округляем и делим обратно
|
||||
view_pos.xyz *= vertex_snap_resolution;
|
||||
view_pos.xyz = floor(view_pos.xyz);
|
||||
view_pos.xyz /= vertex_snap_resolution;
|
||||
|
||||
// Возвращаем в локальное пространство
|
||||
VERTEX = (inverse(MODELVIEW_MATRIX) * view_pos).xyz;
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
// 2. Пикселизация UV координат текстуры
|
||||
vec2 uv = UV;
|
||||
vec2 pixelated_uv = floor(uv * texture_pixelation) / texture_pixelation;
|
||||
|
||||
// Читаем цвет из текстуры (filter_nearest не дает ей мылиться)
|
||||
vec4 tex_color = texture(albedo_texture, pixelated_uv);
|
||||
|
||||
// 3. Упорядоченный дизеринг (имитация 16-битного цвета)
|
||||
// Берем экранные координаты в разрешении 320x240 (как на PS1)
|
||||
vec2 screen_pos = SCREEN_UV * vec2(320.0, 240.0);
|
||||
int x = int(mod(screen_pos.x, 4.0));
|
||||
int y = int(mod(screen_pos.y, 4.0));
|
||||
|
||||
// Достаем порог из матрицы Байера
|
||||
float threshold = (bayer_matrix[y * 4 + x] / 16.0) - 0.5;
|
||||
|
||||
// Применяем шум к цвету
|
||||
vec3 final_color = tex_color.rgb + (threshold * dither_strength);
|
||||
final_color = clamp(final_color, 0.0, 1.0);
|
||||
|
||||
ALBEDO = final_color;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
uid://0uxg2amf4yf6
|
||||
@@ -0,0 +1,68 @@
|
||||
shader_type canvas_item;
|
||||
|
||||
// === ЭКРАННАЯ ТЕКСТУРА (обязательно для Godot 4) ===
|
||||
uniform sampler2D screen_texture : hint_screen_texture;
|
||||
|
||||
// === НАСТРОЙКИ ===
|
||||
uniform float aberration_strength : hint_range(0.0, 0.02) = 0.003;
|
||||
uniform float scanline_intensity : hint_range(0.0, 1.0) = 0.25;
|
||||
uniform float scanline_count = 320.0;
|
||||
uniform float vignette_strength : hint_range(0.0, 1.0) = 0.3;
|
||||
uniform float color_saturation : hint_range(0.0, 2.0) = 0.7;
|
||||
uniform float brightness : hint_range(-0.5, 0.5) = 0.0;
|
||||
uniform float contrast : hint_range(0.5, 1.5) = 1.1;
|
||||
uniform float opacity : hint_range(0.0, 1.0) = 1.0;
|
||||
uniform bool enable_scanlines = true;
|
||||
uniform bool enable_vignette = true;
|
||||
uniform bool enable_aberration = true;
|
||||
|
||||
void fragment() {
|
||||
vec2 uv = UV;
|
||||
|
||||
// === ХРОМАТИЧЕСКАЯ АБЕРРАЦИЯ ===
|
||||
vec3 color;
|
||||
if (enable_aberration && aberration_strength > 0.0) {
|
||||
vec2 center = vec2(0.5, 0.5);
|
||||
vec2 dir = uv - center;
|
||||
float dist = length(dir);
|
||||
vec2 offset = normalize(dir) * dist * aberration_strength;
|
||||
|
||||
float r = texture(screen_texture, uv + offset).r;
|
||||
float g = texture(screen_texture, uv).g;
|
||||
float b = texture(screen_texture, uv - offset).b;
|
||||
color = vec3(r, g, b);
|
||||
} else {
|
||||
color = texture(screen_texture, uv).rgb;
|
||||
}
|
||||
|
||||
// === СКАНЛАЙНЫ ===
|
||||
if (enable_scanlines && scanline_intensity > 0.0) {
|
||||
float scanline = sin(uv.y * scanline_count * 3.14159265);
|
||||
scanline = scanline * 0.5 + 0.5;
|
||||
scanline = pow(scanline, 1.2);
|
||||
color *= 1.0 - (scanline * scanline_intensity * 0.5);
|
||||
}
|
||||
|
||||
// === ВИНЬЕТКА ===
|
||||
if (enable_vignette && vignette_strength > 0.0) {
|
||||
vec2 center_uv = uv - 0.5;
|
||||
float vignette = dot(center_uv, center_uv) * 4.0;
|
||||
vignette = 1.0 - (vignette * vignette_strength * 0.7);
|
||||
vignette = clamp(vignette, 0.0, 1.0);
|
||||
color *= vignette;
|
||||
}
|
||||
|
||||
// === НАСЫЩЕННОСТЬ ЦВЕТА ===
|
||||
if (color_saturation != 1.0) {
|
||||
float gray = dot(color, vec3(0.299, 0.587, 0.114));
|
||||
color = mix(vec3(gray), color, color_saturation);
|
||||
}
|
||||
|
||||
// === ЯРКОСТЬ И КОНТРАСТ ===
|
||||
color = (color - 0.5) * contrast + 0.5;
|
||||
color += brightness;
|
||||
color = clamp(color, 0.0, 1.0);
|
||||
|
||||
// === ИТОГОВЫЙ ЦВЕТ С ПРОЗРАЧНОСТЬЮ ===
|
||||
COLOR = vec4(color, opacity);
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
uid://c3h1lw7pkowvb
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,25 @@
|
||||
[remap]
|
||||
|
||||
importer="wavefront_obj"
|
||||
importer_version=1
|
||||
type="Mesh"
|
||||
uid="uid://bpdehecmtqb5w"
|
||||
path="res://.godot/imported/untitled.obj-746e308bd5c91702b0616340e310c338.mesh"
|
||||
|
||||
[deps]
|
||||
|
||||
files=["res://.godot/imported/untitled.obj-746e308bd5c91702b0616340e310c338.mesh"]
|
||||
|
||||
source_file="res://addons/texture_custom/untitled.obj"
|
||||
dest_files=["res://.godot/imported/untitled.obj-746e308bd5c91702b0616340e310c338.mesh", "res://.godot/imported/untitled.obj-746e308bd5c91702b0616340e310c338.mesh"]
|
||||
|
||||
[params]
|
||||
|
||||
generate_tangents=true
|
||||
generate_lods=true
|
||||
generate_shadow_mesh=true
|
||||
generate_lightmap_uv2=false
|
||||
generate_lightmap_uv2_texel_size=0.2
|
||||
scale_mesh=Vector3(1, 1, 1)
|
||||
offset_mesh=Vector3(0, 0, 0)
|
||||
force_disable_mesh_compression=false
|
||||
Reference in New Issue
Block a user