initial commit

This commit is contained in:
pennyrigate 2025-08-04 00:39:07 -04:00
commit cffda6e18e
58 changed files with 10952 additions and 0 deletions

4
.editorconfig Normal file
View file

@ -0,0 +1,4 @@
root = true
[*]
charset = utf-8

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
# Godot 4+ specific ignores
.godot/
/android/

BIN
Buy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

35
Buy.png.import Normal file
View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ckgh0pj7hbif3"
path.s3tc="res://.godot/imported/Buy.png-1be009895a002025002061496cbae911.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Buy.png"
dest_files=["res://.godot/imported/Buy.png-1be009895a002025002061496cbae911.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
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/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

44
MainMenu.tscn Normal file
View file

@ -0,0 +1,44 @@
[gd_scene load_steps=7 format=3 uid="uid://cxllykh18amy3"]
[ext_resource type="Texture2D" uid="uid://bnmenpey8nde2" path="res://Play1.png" id="1_eiy7p"]
[ext_resource type="Texture2D" uid="uid://bosvyu7f3kxlg" path="res://Play2.png" id="2_h7a2f"]
[ext_resource type="Script" uid="uid://cpf02igyl2jn3" path="res://play_button.gd" id="3_h7a2f"]
[ext_resource type="VideoStream" uid="uid://cxiq6k74yeqdg" path="res://menu.ogv" id="4_qoqlk"]
[ext_resource type="Texture2D" uid="uid://d1xcwdjibb6ql" path="res://logo.png" id="5_iwfq2"]
[sub_resource type="Theme" id="Theme_qoqlk"]
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="VideoStreamPlayer" type="VideoStreamPlayer" parent="."]
layout_mode = 0
offset_top = 1.0
offset_right = 480.0
offset_bottom = 361.0
stream = ExtResource("4_qoqlk")
autoplay = true
loop = true
[node name="TextureButton" type="TextureButton" parent="."]
layout_mode = 0
offset_left = 139.0
offset_top = 284.0
offset_right = 301.0
offset_bottom = 346.0
theme = SubResource("Theme_qoqlk")
texture_normal = ExtResource("1_eiy7p")
texture_hover = ExtResource("2_h7a2f")
script = ExtResource("3_h7a2f")
[node name="Logo" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0.858824)
position = Vector2(220, 173.455)
texture = ExtResource("5_iwfq2")
[connection signal="pressed" from="TextureButton" to="TextureButton" method="_on_pressed"]

BIN
Play1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

34
Play1.png.import Normal file
View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bnmenpey8nde2"
path="res://.godot/imported/Play1.png-a7d03014620696bd754b319b7cb51198.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Play1.png"
dest_files=["res://.godot/imported/Play1.png-a7d03014620696bd754b319b7cb51198.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
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
Play2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 B

35
Play2.png.import Normal file
View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bosvyu7f3kxlg"
path.s3tc="res://.godot/imported/Play2.png-27cfaffcf19fc04a6480c99801e5e6e0.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Play2.png"
dest_files=["res://.godot/imported/Play2.png-27cfaffcf19fc04a6480c99801e5e6e0.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
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/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: 63 KiB

74
Player/player.gd Normal file
View file

@ -0,0 +1,74 @@
class_name Player extends CharacterBody3D
@export_range(1, 35, 1) var speed: float = 10 # m/s
@export_range(10, 400, 1) var acceleration: float = 100 # m/s^2
@export_range(0.1, 3.0, 0.1) var jump_height: float = 1 # m
@export_range(0.1, 3.0, 0.1, "or_greater") var camera_sens: float = 1
var jumping: bool = false
var mouse_captured: bool = false
var gravity: float = ProjectSettings.get_setting("physics/3d/default_gravity")
var move_dir: Vector2 # Input direction for movement
var look_dir: Vector2 # Input direction for look/aim
var walk_vel: Vector3 # Walking velocity
var grav_vel: Vector3 # Gravity velocity
var jump_vel: Vector3 # Jumping velocity
@onready var camera: Camera3D = $Camera
func _ready() -> void:
capture_mouse()
func _unhandled_input(event: InputEvent) -> void:
if event is InputEventMouseMotion:
look_dir = event.relative * 0.001
if mouse_captured: _rotate_camera()
if Input.is_action_just_pressed(&"exit"): get_tree().quit()
func _physics_process(delta: float) -> void:
if Input.is_action_just_pressed(&"jump"): jumping = true
if mouse_captured: _handle_joypad_camera_rotation(delta)
velocity = _walk(delta) + _gravity(delta) + _jump(delta)
move_and_slide()
func capture_mouse() -> void:
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
mouse_captured = true
func release_mouse() -> void:
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
mouse_captured = false
func _rotate_camera(sens_mod: float = 1.0) -> void:
camera.rotation.y -= look_dir.x * camera_sens * sens_mod
camera.rotation.x = clamp(camera.rotation.x - look_dir.y * camera_sens * sens_mod, -1.5, 1.5)
func _handle_joypad_camera_rotation(delta: float, sens_mod: float = 1.0) -> void:
var joypad_dir: Vector2 = Input.get_vector(&"look_left", &"look_right", &"look_up", &"look_down")
if joypad_dir.length() > 0:
look_dir += joypad_dir * delta
_rotate_camera(sens_mod)
look_dir = Vector2.ZERO
func _walk(delta: float) -> Vector3:
move_dir = Input.get_vector(&"move_left", &"move_right", &"move_forward", &"move_backwards")
var _forward: Vector3 = camera.global_transform.basis * Vector3(move_dir.x, 0, move_dir.y)
var walk_dir: Vector3 = Vector3(_forward.x, 0, _forward.z).normalized()
walk_vel = walk_vel.move_toward(walk_dir * speed * move_dir.length(), acceleration * delta)
return walk_vel
func _gravity(delta: float) -> Vector3:
grav_vel = Vector3.ZERO if is_on_floor() else grav_vel.move_toward(Vector3(0, velocity.y - gravity, 0), gravity * delta)
return grav_vel
func _jump(delta: float) -> Vector3:
if jumping:
if is_on_floor(): jump_vel = Vector3(0, sqrt(4 * jump_height * gravity), 0)
jumping = false
return jump_vel
jump_vel = Vector3.ZERO if is_on_floor() or is_on_ceiling_only() else jump_vel.move_toward(Vector3.ZERO, gravity * delta)
return jump_vel

1
Player/player.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://b0c02p6ckmpdq

63
Player/player.tscn Normal file
View file

@ -0,0 +1,63 @@
[gd_scene load_steps=9 format=3 uid="uid://cdk6hwb4hi2wc"]
[ext_resource type="Script" uid="uid://b0c02p6ckmpdq" path="res://Player/player.gd" id="1_2f8j2"]
[ext_resource type="Shader" uid="uid://c1ws5xtabtopc" path="res://psx_camera/psx_camera_shader.gdshader" id="2_4ntmi"]
[ext_resource type="PackedScene" uid="uid://cp7wldb12tpm8" path="res://hand.obj" id="3_btcbx"]
[ext_resource type="Texture2D" uid="uid://1osrvxkcjngu" path="res://handtexture.png" id="4_gwnis"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_3rsb5"]
radius = 0.3
height = 1.8
[sub_resource type="ShaderMaterial" id="ShaderMaterial_btcbx"]
render_priority = 0
shader = ExtResource("2_4ntmi")
shader_parameter/enable_fog = true
shader_parameter/fog_color = Color(0.494245, 1.40181e-06, 2.40654e-07, 1)
shader_parameter/noise_color = Color(0, 0, 0, 1)
shader_parameter/fog_distance = 100.0
shader_parameter/fog_fade_range = 50.0
shader_parameter/enable_noise = true
shader_parameter/noise_time_fac = 4.0
shader_parameter/enable_color_limitation = true
shader_parameter/color_levels = 32
shader_parameter/enable_dithering = true
shader_parameter/dither_strength = 0.3
[sub_resource type="QuadMesh" id="QuadMesh_gwnis"]
material = SubResource("ShaderMaterial_btcbx")
flip_faces = true
size = Vector2(2, 2)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k53q1"]
albedo_texture = ExtResource("4_gwnis")
[node name="Player" type="CharacterBody3D"]
script = ExtResource("1_2f8j2")
[node name="CShape" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9, 0)
shape = SubResource("CapsuleShape3D_3rsb5")
debug_color = Color(0.141176, 0.427451, 0.92549, 0.784314)
[node name="Camera" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.7, 0)
fov = 80.0
[node name="MeshInstance3D" type="MeshInstance3D" parent="Camera"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.800495)
mesh = SubResource("QuadMesh_gwnis")
[node name="Hand" type="MeshInstance3D" parent="Camera"]
transform = Transform3D(0.00214306, 0.0134455, 0.262051, 0.0219563, 0.286891, -0.0123296, -0.364886, 0.0173421, 0.000797189, 0.87108, -0.736241, -0.589995)
skeleton = NodePath("../..")
[node name="hand" parent="Camera" instance=ExtResource("3_btcbx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.599934, -1.7, -1.91879)
visible = false
[node name="Cube" parent="Camera/hand" index="0"]
transform = Transform3D(-0.103623, 0, 0.191626, 0, 0.289734, 0, -0.33763, 0, -0.0588126, 1.31232, 0.743218, 1.03127)
surface_material_override/0 = SubResource("StandardMaterial3D_k53q1")
[editable path="Camera/hand"]

BIN
Player/test.fbx Normal file

Binary file not shown.

38
Player/test.fbx.import Normal file
View file

@ -0,0 +1,38 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://b8ghcqrk5f230"
path="res://.godot/imported/test.fbx-4751c59649d3f0f207823200ddb16c83.scn"
[deps]
source_file="res://Player/test.fbx"
dest_files=["res://.godot/imported/test.fbx-4751c59649d3f0f207823200ddb16c83.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1

BIN
building1.fbx Normal file

Binary file not shown.

38
building1.fbx.import Normal file
View file

@ -0,0 +1,38 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://duy7t4ji7vjo"
path="res://.godot/imported/building1.fbx-54062ed3f346a448178d34d716bbea04.scn"
[deps]
source_file="res://building1.fbx"
dest_files=["res://.godot/imported/building1.fbx-54062ed3f346a448178d34d716bbea04.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1

2
building2.mtl Normal file
View file

@ -0,0 +1,2 @@
# Blender 4.4.3 MTL File: 'None'
# www.blender.org

1641
building2.obj Normal file

File diff suppressed because it is too large Load diff

35
building2.obj.import Normal file
View file

@ -0,0 +1,35 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://d2hos7ra5ud7"
path="res://.godot/imported/building2.obj-9cec53fa9ee3f1c6565417fb32d1db72.scn"
[deps]
source_file="res://building2.obj"
dest_files=["res://.godot/imported/building2.obj-9cec53fa9ee3f1c6565417fb32d1db72.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}

BIN
buy_billboard.fbx Normal file

Binary file not shown.

38
buy_billboard.fbx.import Normal file
View file

@ -0,0 +1,38 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dy6ryxbbf66b2"
path="res://.godot/imported/buy_billboard.fbx-645f97c33d73e21db603a657a9ca86b9.scn"
[deps]
source_file="res://buy_billboard.fbx"
dest_files=["res://.godot/imported/buy_billboard.fbx-645f97c33d73e21db603a657a9ca86b9.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1

2
fishmanmenu.mtl Normal file
View file

@ -0,0 +1,2 @@
# Blender 4.4.3 MTL File: 'None'
# www.blender.org

7974
fishmanmenu.obj Normal file

File diff suppressed because it is too large Load diff

25
fishmanmenu.obj.import Normal file
View file

@ -0,0 +1,25 @@
[remap]
importer="wavefront_obj"
importer_version=1
type="Mesh"
uid="uid://c6phbg27cafjy"
path="res://.godot/imported/fishmanmenu.obj-9443fdf6be53b12c1bfa454a4474f14b.mesh"
[deps]
files=["res://.godot/imported/fishmanmenu.obj-9443fdf6be53b12c1bfa454a4474f14b.mesh"]
source_file="res://fishmanmenu.obj"
dest_files=["res://.godot/imported/fishmanmenu.obj-9443fdf6be53b12c1bfa454a4474f14b.mesh", "res://.godot/imported/fishmanmenu.obj-9443fdf6be53b12c1bfa454a4474f14b.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

BIN
goblin-green-monster.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
hand.fbx Normal file

Binary file not shown.

38
hand.fbx.import Normal file
View file

@ -0,0 +1,38 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://8ldn0ps0eb1b"
path="res://.godot/imported/hand.fbx-6a220df74a1dd954bbda016ec18565d5.scn"
[deps]
source_file="res://hand.fbx"
dest_files=["res://.godot/imported/hand.fbx-6a220df74a1dd954bbda016ec18565d5.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1

12
hand.mtl Normal file
View file

@ -0,0 +1,12 @@
# Blender 4.4.3 MTL File: 'None'
# www.blender.org
newmtl Material
Ns 1000.000000
Ka 0.718182 0.718182 0.718182
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 3.050000
d 1.000000
illum 3
map_Kd C:/Users/Lilith/Documents/handtexture.png

113
hand.obj Normal file
View file

@ -0,0 +1,113 @@
# Blender 4.4.3
# www.blender.org
mtllib hand.mtl
o Cube
v 1.000000 0.406552 -0.418490
v 1.000000 -0.406552 -0.418490
v 1.000000 0.406552 0.418490
v 1.000000 -0.406552 0.418490
v -1.000000 0.406552 -0.418490
v -1.000000 -0.406552 -0.418490
v -1.000000 0.406552 0.418490
v -1.000000 -0.406552 0.418490
v 2.055061 0.406552 -0.418490
v 2.055061 -0.406552 -0.418490
v 2.055061 0.406552 0.418490
v 2.055061 -0.406552 0.418490
v 1.351887 0.437050 -0.139338
v 1.351887 0.437050 0.139338
v 1.703173 0.437050 -0.139338
v 1.703173 0.437050 0.139338
v 1.351887 0.676728 -0.139338
v 1.351887 0.676728 0.139338
v 1.703173 0.676728 -0.139338
v 1.703173 0.676728 0.139338
v 1.490812 0.956770 -0.099672
v 1.490812 0.956770 0.100322
v 1.842098 0.956770 -0.139338
v 1.842098 0.956770 0.139338
v 1.573551 1.218282 -0.098021
v 1.573551 1.218282 0.101973
v 1.853025 1.005454 -0.137037
v 1.853025 1.005454 0.141639
v 2.099970 0.406552 -0.418490
v 2.099970 -0.406552 -0.418490
v 2.099970 0.406552 0.418490
v 2.099970 -0.406552 0.418490
v 2.834164 0.324069 -0.083337
v 2.834164 -0.324069 -0.083337
v 2.834164 0.324069 0.083337
v 2.834164 -0.324069 0.083337
vn -0.0000 1.0000 -0.0000
vn -0.0000 -0.0000 1.0000
vn -1.0000 -0.0000 -0.0000
vn -0.0000 -1.0000 -0.0000
vn -0.0000 -0.0000 -1.0000
vn 0.0863 0.9963 -0.0000
vn -0.0000 0.9941 0.1086
vn -0.0863 0.9963 -0.0000
vn -0.0000 0.9941 -0.1086
vn -0.0552 0.0966 0.9938
vn 1.0000 -0.0000 -0.0000
vn -0.1163 0.0225 0.9930
vn -0.8958 0.4444 -0.0000
vn -0.0561 0.0982 -0.9936
vn 0.8958 -0.4444 -0.0000
vn 0.6059 0.7956 -0.0000
vn -0.9534 0.3016 -0.0000
vn -0.1085 0.0454 -0.9931
vn 0.9757 -0.2190 -0.0000
vn 0.1116 0.9937 -0.0000
vn 0.4153 -0.0000 -0.9097
vn 0.1116 -0.9937 -0.0000
vn 0.4153 -0.0000 0.9097
vt 0.625000 0.500000
vt 0.875000 0.500000
vt 0.875000 0.750000
vt 0.625000 0.750000
vt 0.375000 0.750000
vt 0.625000 1.000000
vt 0.375000 1.000000
vt 0.375000 0.000000
vt 0.625000 0.000000
vt 0.625000 0.250000
vt 0.375000 0.250000
vt 0.125000 0.500000
vt 0.375000 0.500000
vt 0.125000 0.750000
s 0
usemtl Material
f 1/1/1 5/2/1 7/3/1 3/4/1
f 4/5/2 3/4/2 7/6/2 8/7/2
f 8/8/3 7/9/3 5/10/3 6/11/3
f 6/12/4 2/13/4 4/5/4 8/14/4
f 3/4/2 4/5/2 12/5/2 11/4/2
f 6/11/5 5/10/5 1/1/5 2/13/5
f 9/1/1 11/4/1 31/4/1 29/1/1
f 2/13/5 1/1/5 9/1/5 10/13/5
f 4/5/4 2/13/4 10/13/4 12/5/4
f 11/4/6 9/1/6 15/1/6 16/4/6
f 15/1/5 13/1/5 17/1/5 19/1/5
f 3/4/7 11/4/7 16/4/7 14/4/7
f 1/1/8 3/4/8 14/4/8 13/1/8
f 9/1/9 1/1/9 13/1/9 15/1/9
f 18/4/10 20/4/10 24/4/10 22/4/10
f 16/4/11 15/1/11 19/1/11 20/4/11
f 14/4/2 16/4/2 20/4/2 18/4/2
f 13/1/3 14/4/3 18/4/3 17/1/3
f 22/4/12 24/4/12 28/4/12 26/4/12
f 17/1/13 18/4/13 22/4/13 21/1/13
f 19/1/14 17/1/14 21/1/14 23/1/14
f 20/4/15 19/1/15 23/1/15 24/4/15
f 25/1/16 26/4/16 28/4/16 27/1/16
f 21/1/17 22/4/17 26/4/17 25/1/17
f 23/1/18 21/1/18 25/1/18 27/1/18
f 24/4/19 23/1/19 27/1/19 28/4/19
f 29/1/20 31/4/20 35/4/20 33/1/20
f 10/13/5 9/1/5 29/1/5 30/13/5
f 12/5/4 10/13/4 30/13/4 32/5/4
f 11/4/2 12/5/2 32/5/2 31/4/2
f 34/13/11 33/1/11 35/4/11 36/5/11
f 30/13/21 29/1/21 33/1/21 34/13/21
f 32/5/22 30/13/22 34/13/22 36/5/22
f 31/4/23 32/5/23 36/5/23 35/4/23

35
hand.obj.import Normal file
View file

@ -0,0 +1,35 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cp7wldb12tpm8"
path="res://.godot/imported/hand.obj-cf367f22625d8f5f1d67057962aaef20.scn"
[deps]
source_file="res://hand.obj"
dest_files=["res://.godot/imported/hand.obj-cf367f22625d8f5f1d67057962aaef20.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}

BIN
handtexture.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

35
handtexture.png.import Normal file
View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://1osrvxkcjngu"
path.s3tc="res://.godot/imported/handtexture.png-7f7ba51794edf74a2feb9d66f0725fbf.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://handtexture.png"
dest_files=["res://.godot/imported/handtexture.png-7f7ba51794edf74a2feb9d66f0725fbf.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
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/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

1
icon.svg Normal file
View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>

After

Width:  |  Height:  |  Size: 994 B

37
icon.svg.import Normal file
View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bwu6l4hlh3x8r"
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.svg"
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
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
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

BIN
image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 KiB

35
image.png.import Normal file
View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://drm7sjwtp0i7d"
path.s3tc="res://.godot/imported/image.png-2de165adb17dfebcee8a7cd6c9833936.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://image.png"
dest_files=["res://.godot/imported/image.png-2de165adb17dfebcee8a7cd6c9833936.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
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/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
joeb.fbx Normal file

Binary file not shown.

38
joeb.fbx.import Normal file
View file

@ -0,0 +1,38 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bmrkrdqab7j0d"
path="res://.godot/imported/joeb.fbx-04bcb3a9e82d030b03e324c35b2a25c5.scn"
[deps]
source_file="res://joeb.fbx"
dest_files=["res://.godot/imported/joeb.fbx-04bcb3a9e82d030b03e324c35b2a25c5.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1

BIN
logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8 KiB

34
logo.png.import Normal file
View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d1xcwdjibb6ql"
path="res://.godot/imported/logo.png-cca8726399059c8d4f806e28e356b14d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://logo.png"
dest_files=["res://.godot/imported/logo.png-cca8726399059c8d4f806e28e356b14d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
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
menu.ogv Normal file

Binary file not shown.

1
menu.ogv.uid Normal file
View file

@ -0,0 +1 @@
uid://cxiq6k74yeqdg

107
node_3d.tscn Normal file

File diff suppressed because one or more lines are too long

6
play_button.gd Normal file
View file

@ -0,0 +1,6 @@
extends TextureButton
func _on_pressed() -> void:
print("hellloooo :)")
get_tree().change_scene_to_file("res://node_3d.tscn") # Replace with function body.

1
play_button.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://cpf02igyl2jn3

51
project.godot Normal file
View file

@ -0,0 +1,51 @@
; 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
[application]
config/name="vivisu"
run/main_scene="uid://cxllykh18amy3"
config/features=PackedStringArray("4.4", "Forward Plus")
config/icon="res://icon.svg"
[display]
window/size/viewport_width=480
window/size/viewport_height=360
window/stretch/mode="viewport"
window/vsync/vsync_mode=0
[input]
move_forward={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
]
}
move_backwards={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
]
}
move_right={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
]
}
move_left={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
]
}
jump={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
]
}

View file

@ -0,0 +1,121 @@
[gd_scene load_steps=15 format=3 uid="uid://cpw3h80y7gl2o"]
[ext_resource type="Texture2D" uid="uid://xhjx1xkwj7xt" path="res://Thumbnail.png" id="1_mesaj"]
[ext_resource type="Shader" path="res://psx_camera/psx_camera_shader.gdshader" id="1_nv63b"]
[ext_resource type="Script" path="res://psx_camera/fly_camera.gd" id="3_4w045"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_lialc"]
[sub_resource type="Sky" id="Sky_n7fr2"]
sky_material = SubResource("ProceduralSkyMaterial_lialc")
[sub_resource type="Environment" id="Environment_nd8w7"]
background_mode = 2
sky = SubResource("Sky_n7fr2")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ndpt6"]
albedo_color = Color(0.423529, 0.423529, 0.423529, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ji24u"]
albedo_color = Color(1, 0.341176, 0.227451, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_on2fo"]
albedo_color = Color(0.439216, 0.905882, 0.411765, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_daf8o"]
albedo_color = Color(0.129412, 0.337255, 0.6, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_r7yvx"]
albedo_texture = ExtResource("1_mesaj")
[sub_resource type="PlaneMesh" id="PlaneMesh_7lkts"]
size = Vector2(40, 40)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_2rap5"]
render_priority = 0
shader = ExtResource("1_nv63b")
shader_parameter/enable_fog = true
shader_parameter/fog_color = Color(0.729412, 0.729412, 0.729412, 1)
shader_parameter/noise_color = null
shader_parameter/fog_distance = 100.0
shader_parameter/fog_fade_range = 50.0
shader_parameter/enable_noise = false
shader_parameter/noise_time_fac = 4.0
shader_parameter/enable_color_limitation = true
shader_parameter/color_levels = 32
shader_parameter/enable_dithering = false
shader_parameter/dither_strength = 0.3
[sub_resource type="QuadMesh" id="QuadMesh_afu2w"]
material = SubResource("ShaderMaterial_2rap5")
flip_faces = true
size = Vector2(2, 2)
[node name="CameraExample" type="Node3D"]
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_nd8w7")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="WorldEnvironment"]
transform = Transform3D(-0.5, -0.866025, 0, -0.433013, 0.25, 0.866025, -0.75, 0.433013, -0.5, 0, 0, 0)
[node name="Ground" type="CSGBox3D" parent="."]
size = Vector3(100, 0.5, 100)
material = SubResource("StandardMaterial3D_ndpt6")
[node name="CSGBox3D" type="CSGBox3D" parent="Ground"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -23.0747, 4.39386, -20.6396)
size = Vector3(2, 10, 2)
material = SubResource("StandardMaterial3D_ji24u")
[node name="CSGBox3D2" type="CSGBox3D" parent="Ground"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.1164, 2.76483, 1.43046)
size = Vector3(2, 10, 2)
material = SubResource("StandardMaterial3D_ji24u")
[node name="CSGBox3D3" type="CSGBox3D" parent="Ground"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -29.5345, 2.76483, -11.7604)
size = Vector3(2, 10, 2)
material = SubResource("StandardMaterial3D_ji24u")
[node name="CSGBox3D4" type="CSGBox3D" parent="Ground"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7025, 2.76483, -17.091)
size = Vector3(2, 10, 2)
material = SubResource("StandardMaterial3D_ji24u")
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Ground"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.94478, 2.21119, 0.607769)
radius = 1.634
height = 9.699
material = SubResource("StandardMaterial3D_on2fo")
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Ground"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.715, 4.30806, -17.2889)
radius = 1.634
height = 9.699
material = SubResource("StandardMaterial3D_on2fo")
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="Ground"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.9614, 4.30806, 13.0696)
radius = 1.634
height = 9.699
material = SubResource("StandardMaterial3D_on2fo")
[node name="CSGBox3D5" type="CSGBox3D" parent="Ground"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.0303, 2.07957, 4.96235)
size = Vector3(4, 4, 4)
material = SubResource("StandardMaterial3D_daf8o")
[node name="CSGBox3D6" type="MeshInstance3D" parent="Ground"]
transform = Transform3D(-1, -8.74228e-08, -4.37114e-08, 4.37114e-08, 1.91069e-15, -1, 8.74228e-08, -1, 1.91069e-15, 40.0303, 19.6051, 33.7786)
material_override = SubResource("StandardMaterial3D_r7yvx")
mesh = SubResource("PlaneMesh_7lkts")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(0.565125, 0, 0.825005, 0, 1, 0, -0.825005, 0, 0.565125, 21.597, 19.8935, 18.5922)
script = ExtResource("3_4w045")
max_speed = 100.0
[node name="PSXMesh" type="MeshInstance3D" parent="Camera3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0763102, 0, -0.55748)
mesh = SubResource("QuadMesh_afu2w")

47
psx_camera/fly_camera.gd Normal file
View file

@ -0,0 +1,47 @@
extends Camera3D
@export_range(0, 10, 0.01) var sensitivity : float = 3
@export_range(0, 1000, 0.1) var default_velocity : float = 5
@export_range(0, 10, 0.01) var speed_scale : float = 1.17
@export_range(1, 100, 0.1) var boost_speed_multiplier : float = 3.0
@export var max_speed : float = 1000
@export var min_speed : float = 0.2
@onready var _velocity = default_velocity
func _input(event):
if not current:
return
if Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
if event is InputEventMouseMotion:
rotation.y -= event.relative.x / 1000 * sensitivity
rotation.x -= event.relative.y / 1000 * sensitivity
rotation.x = clamp(rotation.x, PI/-2, PI/2)
if event is InputEventMouseButton:
match event.button_index:
MOUSE_BUTTON_RIGHT:
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED if event.pressed else Input.MOUSE_MODE_VISIBLE)
MOUSE_BUTTON_WHEEL_UP: # increase fly velocity
_velocity = clamp(_velocity * speed_scale, min_speed, max_speed)
MOUSE_BUTTON_WHEEL_DOWN: # decrease fly velocity
_velocity = clamp(_velocity / speed_scale, min_speed, max_speed)
if event is InputEventKey:
if event.pressed and event.keycode == KEY_ESCAPE:
get_tree().quit()
func _process(delta):
if not current:
return
var direction = Vector3(
float(Input.is_physical_key_pressed(KEY_D)) - float(Input.is_physical_key_pressed(KEY_A)),
float(Input.is_physical_key_pressed(KEY_E)) - float(Input.is_physical_key_pressed(KEY_Q)),
float(Input.is_physical_key_pressed(KEY_S)) - float(Input.is_physical_key_pressed(KEY_W))
).normalized()
if Input.is_physical_key_pressed(KEY_SHIFT): # boost
translate(direction * _velocity * delta * boost_speed_multiplier)
else:
translate(direction * _velocity * delta)

View file

@ -0,0 +1 @@
uid://drcrxbadq7j2s

View file

@ -0,0 +1,80 @@
shader_type spatial;
render_mode cull_disabled, unshaded;
uniform sampler2D depth_texture : source_color, hint_depth_texture;
uniform sampler2D screen_texture : source_color, hint_screen_texture, repeat_disable, filter_nearest;
uniform bool enable_fog = true;
uniform vec3 fog_color : source_color;
uniform vec3 noise_color : source_color;
uniform float fog_distance : hint_range(1, 6000) = 100;
uniform float fog_fade_range : hint_range(1, 6000) = 50;
uniform bool enable_noise = true;
uniform float noise_time_fac : hint_range(0.1, 10) = 4;
uniform bool enable_color_limitation = true;
uniform int color_levels : hint_range(2, 256) = 32;
uniform bool enable_dithering = true;
uniform float dither_strength : hint_range(0.0, 1.0) = 0.3;
float hashOld12(vec2 p){
return fract(sin(dot(p, vec2(12.9898, 78.233))) * 43758.5453 + (TIME / noise_time_fac)) ;
}
vec3 color_mix(vec3 a, vec3 b, float f ){
f = clamp(abs(f), 0,1);
float invf = 1.0 - f;
return (a*f) + (b*invf);
}
vec3 quantize_color(vec3 color, int levels) {
float quantizer = float(levels - 1);
return floor(color * quantizer + 0.5) / quantizer;
}
float dither(vec2 position, float brightness) {
int x = int(mod(position.x, 4.0));
int y = int(mod(position.y, 4.0));
int index = x + y * 4;
float dithering[16] = float[](
0.0, 0.5, 0.125, 0.625,
0.75, 0.25, 0.875, 0.375,
0.1875, 0.6875, 0.0625, 0.5625,
0.9375, 0.4375, 1.0, 0.8125
);
float threshold = dithering[index];
return brightness < threshold ? 0.0 : 1.0;
}
void vertex() {
POSITION = vec4(VERTEX.xy, 1.0, 1.0);
}
void fragment(){
vec3 screen_color = texture(screen_texture, SCREEN_UV).rgb;
vec2 screen_coords = SCREEN_UV * 2.0 - 1.0;
float depth = texture(depth_texture, SCREEN_UV).x;
vec3 ndc = vec3(screen_coords, depth);
vec4 view = INV_PROJECTION_MATRIX * vec4(ndc, 1.0);
view.xyz /= view.w;
float linear_depth = -view.z;
float depth_mask_inv = clamp((linear_depth - (fog_distance - fog_fade_range)) / fog_fade_range, 0.0, 1.0);
vec3 final_color = screen_color;
if (enable_noise){
vec3 twocolornoise = color_mix(fog_color, noise_color, hashOld12(screen_coords));
final_color = color_mix(twocolornoise, final_color, depth_mask_inv);
}
if (enable_fog){
final_color = color_mix(fog_color, final_color, depth_mask_inv);
}
if (enable_color_limitation){
final_color = quantize_color(final_color, color_levels);
}
if (enable_dithering){
float brightness = dot(final_color, vec3(0.3, 0.59, 0.11));
brightness += dither_strength * (dither(FRAGCOORD.xy, brightness) - 0.5);
final_color *= (1.0 + dither_strength * (dither(FRAGCOORD.xy, brightness) - 0.5));
}
ALBEDO = final_color;
}

View file

@ -0,0 +1 @@
uid://c1ws5xtabtopc

BIN
smileyface.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

35
smileyface.png.import Normal file
View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://evvl4jklinky"
path.s3tc="res://.godot/imported/smileyface.png-989fffe7f7b0c3b9d1ef51ca2d304bc2.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://smileyface.png"
dest_files=["res://.godot/imported/smileyface.png-989fffe7f7b0c3b9d1ef51ca2d304bc2.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
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/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
spinning_logo.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
vote_chafee.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

35
vote_chafee.png.import Normal file
View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c64onof3uwdef"
path.s3tc="res://.godot/imported/vote_chafee.png-07d8147f5dda02e91f83d558f7020a23.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://vote_chafee.png"
dest_files=["res://.godot/imported/vote_chafee.png-07d8147f5dda02e91f83d558f7020a23.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
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/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