Remove heavy models and clean the project up

This commit is contained in:
Nikolai Rodionov 2025-01-22 06:21:48 +01:00
parent 1497c110b0
commit a201d24bdb
Signed by: allanger
GPG Key ID: 09F8B434D0FDD99B
761 changed files with 453 additions and 12278 deletions

View File

@ -1,73 +0,0 @@
[gd_scene load_steps=10 format=3 uid="uid://0576fim4xnjw"]
[ext_resource type="Script" path="res://Demo/MainCamera.gd" id="1"]
[ext_resource type="Script" path="res://addons/Mirror/Mirror/Mirror.gd" id="2"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_omm3q"]
[sub_resource type="Sky" id="Sky_bigpx"]
sky_material = SubResource("ProceduralSkyMaterial_omm3q")
[sub_resource type="Environment" id="Environment_y6thg"]
background_mode = 2
sky = SubResource("Sky_bigpx")
[sub_resource type="SphereMesh" id="4"]
radius = 1.0
height = 2.0
[sub_resource type="CapsuleMesh" id="7"]
radius = 0.33
height = 1.66
[sub_resource type="FastNoiseLite" id="8"]
[sub_resource type="NoiseTexture2D" id="9"]
seamless = true
noise = SubResource("8")
[node name="DemoWorld" type="Node3D"]
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_y6thg")
[node name="MeshInstance2" type="MeshInstance3D" parent="."]
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0.311584, -0.508855, 0.519106)
layers = 2
mesh = SubResource("4")
[node name="MeshInstance3" type="MeshInstance3D" parent="."]
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0.4, 0.4, 0.773196)
mesh = SubResource("4")
[node name="MeshInstance4" type="MeshInstance3D" parent="."]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0.396369, 0.461957, -1.66788)
mesh = SubResource("4")
[node name="Player" type="Node3D" parent="."]
transform = Transform3D(0.733279, 0, -0.679928, 0, 1, 0, 0.679928, 0, 0.733279, -3.01042, 0.611678, 3.23258)
script = ExtResource("1")
[node name="CameraRod" type="Node3D" parent="Player"]
[node name="MainCamera" type="Camera3D" parent="Player/CameraRod"]
near = 0.3
[node name="MeshInstance3D" type="MeshInstance3D" parent="Player/CameraRod"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.4, 0)
mesh = SubResource("7")
skeleton = NodePath("../../..")
[node name="Mirror" type="Node3D" parent="."]
script = ExtResource("2")
ResolutionPerUnit = 200
MainCamPath = NodePath("../Player/CameraRod/MainCamera")
MirrorColor = Color(1, 1, 1, 1)
[node name="Mirror2" type="Node3D" parent="."]
transform = Transform3D(0.658492, 0, -0.752587, 0, 1, 0, 0.752587, 0, 0.658492, 2.4934, 0, 0.705538)
script = ExtResource("2")
ResolutionPerUnit = 200
MainCamPath = NodePath("../Player/CameraRod/MainCamera")
MirrorDistortion = 20
DistortionTexture = SubResource("9")

View File

@ -1,108 +0,0 @@
extends Node3D
class_name TpsCamera
# Nodes
@onready var camera_pivot : Node3D = self
@onready var camera_rod : Node3D = get_node("CameraRod")
@onready var camera : Camera3D = get_node("CameraRod/MainCamera")
# Movement
@export var mouse_sensitivity : float = 0.15
@export var camera_min_vertical_rotation : float = -85.0
@export var camera_max_vertical_rotation : float = 85.0
# zooming
@export var camera_zoom : float = 3.0 : set = set_camera_zoom
func set_camera_zoom(value): camera_zoom = clamp(value, camera_min_zoom_distance, camera_max_zoom_distance)
@export var camera_min_zoom_distance : float = 3.0
@export var camera_max_zoom_distance : float = 15.0
@export var camera_zoom_step : float = 0.5
# Cursor
@onready var is_cursor_visible : get = get_is_cursor_visible, set = set_is_cursor_visible
func set_is_cursor_visible(value): Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE if value else Input.MOUSE_MODE_CAPTURED)
func get_is_cursor_visible(): return Input.get_mouse_mode() == Input.MOUSE_MODE_VISIBLE
var speed = 0.1
#####################
# Default methods #
#####################
func _ready() -> void:
self.is_cursor_visible = false
func _process(delta: float) -> void:
process_basic_input()
if Input.is_action_pressed("ui_up"):
self.global_transform.origin += - $CameraRod/MainCamera.global_transform.basis.z * speed
if Input.is_action_pressed("ui_down"):
self.global_transform.origin += $CameraRod/MainCamera.global_transform.basis.z * speed
if Input.is_action_pressed("ui_right"):
self.global_transform.origin += $CameraRod/MainCamera.global_transform.basis.x * speed
if Input.is_action_pressed("ui_left"):
self.global_transform.origin += - $CameraRod/MainCamera.global_transform.basis.x * speed
#self.transform.origin = lerp(self.transform.origin, player.transform.origin, 0.1)
func _unhandled_input(event: InputEvent) -> void:
process_mouse_input(event)
####################
# Camera3D methods #
####################
func rotate_camera(camera_direction : Vector2) -> void:
self.rotation.y += -camera_direction.x
# Vertical rotation
camera_rod.rotate_x(-camera_direction.y)
# Limit vertical rotation
camera_rod.rotation_degrees.x = clamp(
camera_rod.rotation_degrees.x,
camera_min_vertical_rotation, camera_max_vertical_rotation
)
func toggle_cursor_visibility() -> void:
self.is_cursor_visible = !self.is_cursor_visible
###################
# Input methods #
###################
func process_basic_input():
if Input.is_action_just_pressed("ui_cancel"):
toggle_cursor_visibility()
func process_mouse_input(event : InputEvent) -> void:
# Cursor movement
if event is InputEventMouseMotion:
var camera_direction = Vector2(
deg_to_rad(event.relative.x * mouse_sensitivity),
deg_to_rad(event.relative.y * mouse_sensitivity)
)
if !self.is_cursor_visible:
rotate_camera(camera_direction)
# Scrolling
elif event is InputEventMouseButton:
if event.is_pressed() and not self.is_cursor_visible:
if event.button_index == MOUSE_BUTTON_WHEEL_UP:
self.camera_zoom -= camera_zoom_step
if event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
self.camera_zoom += camera_zoom_step

View File

@ -1,7 +0,0 @@
[gd_resource type="Environment" load_steps=2 format=2]
[sub_resource type="Sky" id=1]
[resource]
background_mode = 2
background_sky = SubResource( 1 )

View File

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2022 Norodix
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,103 +0,0 @@
@tool
extends Node3D
const whitegreen : Color = Color(0.9, 0.97, 0.94)
## Size of the mirror in world units
@export var size : Vector2 = Vector2(2, 2)
## Resolution of the rendered viewport is Size*ResolutionPerUnit
@export var ResolutionPerUnit = 100
## The NodePath to the main camera
@export var MainCamPath: NodePath = ""
## The cull mask array contains the visual layers which are NOT rendered. The render layers numbering is different from their indexing. To avoid rendering layer 1 add a 0 element to the list. To avoid rendering layer 2 add a 1 element to the list and so on.
@export var cullMask : Array[int] = []
## Tint color of the mirror surface
@export_color_no_alpha var MirrorColor : Color = whitegreen
## Distortion multiplier of the mirror
@export_range(0, 30, 0.01) var MirrorDistortion = 0
## The distortion texture of the mirror
@export var DistortionTexture: Texture2D
var MainCam : Camera3D = null
var cam : Camera3D
var mirror : MeshInstance3D
var viewport : SubViewport
func _enter_tree():
var node = preload("MirrorContainer.tscn").instantiate()
add_child(node)
var mesh_instance : MeshInstance3D = node.find_child("MeshInstance3D")
mesh_instance.mesh = mesh_instance.mesh.duplicate()
func _ready():
MainCam = get_node_or_null(MainCamPath)
cam = $MirrorContainer/SubViewport/Camera3D
mirror = $MirrorContainer/MeshInstance3D
viewport = $MirrorContainer/SubViewport
func _process(delta):
_ready() # need to reload for proper operation when used as a toolscript
if MainCam == null:
# No camera specified for the mirror to operate checked
return
# Cull camera layers
cam.cull_mask = 0xFF
for i in cullMask:
cam.cull_mask &= ~(1<<i)
# set mirror surface's size
mirror.mesh.size = size
# set viewport to specified resolution
viewport.size = size * ResolutionPerUnit
# Set tint color
mirror.get_active_material(0).set_shader_parameter("tint", MirrorColor)
# Set distortion texture
mirror.get_active_material(0).set_shader_parameter("distort_tex", DistortionTexture)
# Set distortion strength
mirror.get_active_material(0).set_shader_parameter("distort_strength", MirrorDistortion)
# Transform3D the mirror camera to the opposite side of the mirror plane
var MirrorNormal = mirror.global_transform.basis.z
var MirrorTransform = Mirror_transform(MirrorNormal, mirror.global_transform.origin)
cam.global_transform = MirrorTransform * MainCam.global_transform
# Look perpendicular into the mirror plane for frostum camera
cam.global_transform = cam.global_transform.looking_at(
cam.global_transform.origin/2 + MainCam.global_transform.origin/2, \
mirror.global_transform.basis.y
)
var cam2mirror_offset = mirror.global_transform.origin - cam.global_transform.origin
var near = abs((cam2mirror_offset).dot(MirrorNormal)) # near plane distance
near += 0.05 # avoid rendering own surface
# transform offset to camera's local coordinate system (frostum offset uses local space)
var cam2mirror_camlocal = cam.global_transform.basis.inverse() * cam2mirror_offset
var frostum_offset = Vector2(cam2mirror_camlocal.x, cam2mirror_camlocal.y)
cam.set_frustum(mirror.mesh.size.x, frostum_offset, near, 10000)
# n is the normal of the mirror plane
# d is the offset from the plane of the mirrored object
# Gets the transformation that mirrors through the plane with normal n and offset d
func Mirror_transform(n : Vector3, d : Vector3) -> Transform3D:
var basisX : Vector3 = Vector3(1.0, 0, 0) - 2 * Vector3(n.x * n.x, n.x * n.y, n.x * n.z)
var basisY : Vector3 = Vector3(0, 1.0, 0) - 2 * Vector3(n.y * n.x, n.y * n.y, n.y * n.z)
var basisZ : Vector3 = Vector3(0, 0, 1.0) - 2 * Vector3(n.z * n.x, n.z * n.y, n.z * n.z)
var offset = Vector3.ZERO
offset = 2 * n.dot(d)*n
return Transform3D(Basis(basisX, basisY, basisZ), offset)
pass

View File

@ -1,31 +0,0 @@
shader_type spatial;
render_mode cull_disabled, unshaded;
uniform vec4 tint : source_color = vec4(vec3(0.98),1.0);
uniform sampler2D mirror_tex : source_color, repeat_disable;
uniform sampler2D distort_tex : source_color;
uniform float distort_strength : hint_range(0, 30);
void vertex() {
UV.x = 1.0 - UV.x;
}
void fragment() {
vec2 m_UV = UV;
// Backface texcoord flip correction
if (!FRONT_FACING) {
m_UV.x = 1.0 - m_UV.x;
}
float distort_ofs = texture(distort_tex, m_UV).r;
// Map offset to [-1, 1] region
distort_ofs = (distort_ofs * 2.0) - 1.0;
vec2 base_uv = m_UV + distort_ofs * distort_strength / VIEWPORT_SIZE;
vec4 mirror_sample = texture(mirror_tex,base_uv);
ALBEDO = tint.rgb * mirror_sample.rgb;
}

View File

@ -1,29 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://b51uk2h1t8l33"]
[ext_resource type="Material" uid="uid://cp471l6edt4ab" path="res://addons/Mirror/Mirror/MirrorMaterial.tres" id="1"]
[sub_resource type="QuadMesh" id="11"]
size = Vector2(2, 2)
[node name="MirrorContainer" type="Node3D"]
[node name="SubViewport" type="SubViewport" parent="."]
size = Vector2i(100, 100)
render_target_update_mode = 3
[node name="Camera3D" type="Camera3D" parent="SubViewport"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.406672, 1.21628, 8.51171)
keep_aspect = 0
cull_mask = 1048571
projection = 2
size = 3.0
frustum_offset = Vector2(-0.406672, -1.21628)
near = 8.51171
far = 10000.0
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 2.38419e-07, 0, 1, 0, -2.38419e-07, 0, 1, 0, 0, 0)
layers = 4
mesh = SubResource("11")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("1")

View File

@ -1,14 +0,0 @@
[gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://cp471l6edt4ab"]
[ext_resource type="Shader" path="res://addons/Mirror/Mirror/Mirror.gdshader" id="1"]
[sub_resource type="ViewportTexture" id="12"]
viewport_path = NodePath("SubViewport")
[resource]
resource_local_to_scene = true
render_priority = 0
shader = ExtResource("1")
shader_parameter/tint = Color(0.98, 0.98, 0.98, 1)
shader_parameter/distort_strength = 0.0
shader_parameter/mirror_tex = SubResource("12")

View File

@ -1,24 +0,0 @@
# Godot Mirror
![mirror](Demo/Mirror.png)
A plugin created for godot to instance mirrors in a 3D scene. The mirrors use additional cameras to render the scene from a mirrored perspective.
Mirror properties that can be adjusted:
- Tint
- Size
- Visible visual layers
- Player camera
## Usage
After the addon is enabled a custom node is added to godot under the spatial node.
The main camera that renders the scene needs to be selected in the variables of the node. Only one camera is supported at a time. The plugin adds a secondary camera to the opposite side of the mirror relative to this camera and renders the image to the mirror surface.
The cull mask array contains the visual layers which are NOT rendered. The render layers numbering is different from their indexing. To avoid rendering layer 1 add a 0 element to the list.
To avoid rendering layer 2 add a 1 element to the list and so on.
## Installation
Copy the addons/Mirror folder into your godot root directory, same as the asset library installs addons. Enable the plugin in Project settings/Plugins.

View File

@ -1,78 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
height="16"
viewBox="0 0 4.2333332 4.2333332"
version="1.1"
id="svg8"
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
sodipodi:docname="icon.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
inkscape:cx="8.6940988"
inkscape:cy="12.428262"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="1920"
inkscape:window-y="27"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g872"
transform="translate(0.02117361,-0.01175623)"
style="fill:none;stroke-width:0.34395833;stroke-miterlimit:4;stroke-dasharray:none;stroke:#e58f91;stroke-opacity:1">
<path
id="rect842"
style="fill:none;stroke:#e58f91;stroke-width:0.34395833;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000;stroke-opacity:1"
d="M 0.3745072,0.3633829 2.2572793,0.71289572 V 3.5439501 L 0.3745072,3.8934629 Z"
sodipodi:nodetypes="ccccc" />
<circle
style="fill:none;stroke:#e58f91;stroke-width:0.34395833;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000;stroke-opacity:1"
id="path847"
cx="3.3799474"
cy="2.1284225"
r="0.43653148" />
<circle
style="fill:none;stroke:#e58f91;stroke-width:0.34395833;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000;stroke-opacity:1"
id="circle849"
cx="1.3158932"
cy="2.1284225"
r="0.43653148" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -1,37 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dxj8owcka0ldn"
path="res://.godot/imported/icon.svg-d5bf744255b68932164587d8eb3dc79a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/Mirror/icon.svg"
dest_files=["res://.godot/imported/icon.svg-d5bf744255b68932164587d8eb3dc79a.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

View File

@ -1,7 +0,0 @@
[plugin]
name="Mirror"
description="Adds custom mirror node to the editor"
author="Norodix"
version="0.2"
script="plugin.gd"

View File

@ -1,12 +0,0 @@
@tool
extends EditorPlugin
func _enter_tree():
add_custom_type("Mirror", "Node3D", preload("Mirror/Mirror.gd"), preload("icon.svg"))
pass
func _exit_tree():
remove_custom_type("Mirror")
pass

BIN
assets/models/character/character.glb (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/models/el_test_Image_0.png (Stored with Git LFS)

Binary file not shown.

BIN
assets/models/el_test_Image_0.png.import (Stored with Git LFS)

Binary file not shown.

BIN
assets/models/el_test_Image_1.png (Stored with Git LFS)

Binary file not shown.

BIN
assets/models/el_test_Image_1.png.import (Stored with Git LFS)

Binary file not shown.

BIN
assets/models/el_test_Image_2.png (Stored with Git LFS)

Binary file not shown.

BIN
assets/models/el_test_Image_2.png.import (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More