Remove heavy models and clean the project up
This commit is contained in:
parent
1497c110b0
commit
a201d24bdb
@ -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")
|
@ -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
|
||||
|
||||
|
@ -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 )
|
@ -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.
|
@ -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
|
@ -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;
|
||||
}
|
@ -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")
|
@ -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")
|
@ -1,24 +0,0 @@
|
||||
# Godot Mirror
|
||||
|
||||

|
||||
|
||||
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.
|
@ -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 |
@ -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
|
@ -1,7 +0,0 @@
|
||||
[plugin]
|
||||
|
||||
name="Mirror"
|
||||
description="Adds custom mirror node to the editor"
|
||||
author="Norodix"
|
||||
version="0.2"
|
||||
script="plugin.gd"
|
@ -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)
BIN
assets/models/character/character.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/character/character.glb.import
(Stored with Git LFS)
BIN
assets/models/character/character.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Diffuse.png
(Stored with Git LFS)
BIN
assets/models/character/character_Ch02_1001_Diffuse.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Diffuse.png.import
(Stored with Git LFS)
BIN
assets/models/character/character_Ch02_1001_Diffuse.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Glossiness.png
(Stored with Git LFS)
BIN
assets/models/character/character_Ch02_1001_Glossiness.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Glossiness.png.import
(Stored with Git LFS)
BIN
assets/models/character/character_Ch02_1001_Glossiness.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Normal.png
(Stored with Git LFS)
BIN
assets/models/character/character_Ch02_1001_Normal.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Normal.png.import
(Stored with Git LFS)
BIN
assets/models/character/character_Ch02_1001_Normal.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Specular.png
(Stored with Git LFS)
BIN
assets/models/character/character_Ch02_1001_Specular.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Specular.png.import
(Stored with Git LFS)
BIN
assets/models/character/character_Ch02_1001_Specular.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/character/character_Ch02_1002_Diffuse.png
(Stored with Git LFS)
BIN
assets/models/character/character_Ch02_1002_Diffuse.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/character/character_Ch02_1002_Diffuse.png.import
(Stored with Git LFS)
BIN
assets/models/character/character_Ch02_1002_Diffuse.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/character/character_Ch02_1002_Normal.png
(Stored with Git LFS)
BIN
assets/models/character/character_Ch02_1002_Normal.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/character/character_Ch02_1002_Normal.png.import
(Stored with Git LFS)
BIN
assets/models/character/character_Ch02_1002_Normal.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/el_test_Image_0.png
(Stored with Git LFS)
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)
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)
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)
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)
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)
BIN
assets/models/el_test_Image_2.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom.glb
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom.glb.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom_bars.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom_bars.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom_bars.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom_bars.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_top.glb
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/balconyLadder_top.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_top.glb.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/balconyLadder_top.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_top_bars.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/balconyLadder_top_bars.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_top_bars.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/balconyLadder_top_bars.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balcony_typeA.glb
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/balcony_typeA.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balcony_typeA.glb.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/balcony_typeA.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balcony_typeA_bars.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/balcony_typeA_bars.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balcony_typeA_bars.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/balcony_typeA_bars.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_small.glb
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailAwning_small.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_small.glb.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailAwning_small.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_small_roof.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailAwning_small_roof.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_small_roof.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailAwning_small_roof.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_wide.glb
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailAwning_wide.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_wide.glb.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailAwning_wide.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_wide_roof.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailAwning_wide_roof.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_wide_roof.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailAwning_wide_roof.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged.glb
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged.glb.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged_concrete.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged_concrete.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged_concrete.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged_concrete.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA.glb
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA.glb.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA_concrete.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA_concrete.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA_concrete.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA_concrete.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB.glb
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB.glb.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_concrete.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_concrete.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_concrete.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_concrete.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_signs.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_signs.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_signs.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_signs.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA.glb
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA.glb.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_metal.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_metal.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_metal.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_metal.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_signs.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_signs.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_signs.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_signs.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeB.glb
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeB.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeB.glb.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeB.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeB_metal.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeB_metal.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeB_metal.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeB_metal.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeB_signs.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeB_signs.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeB_signs.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeB_signs.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBeam.glb
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBeam.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBeam.glb.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBeam.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBeam_metal.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBeam_metal.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBeam_metal.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBeam_metal.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBeam_roof.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBeam_roof.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBeam_roof.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBeam_roof.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBricks_typeA.glb
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBricks_typeA.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBricks_typeA.glb.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBricks_typeA.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBricks_typeA_concrete.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBricks_typeA_concrete.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBricks_typeA_concrete.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBricks_typeA_concrete.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBricks_typeB.glb
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBricks_typeB.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBricks_typeB.glb.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBricks_typeB.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBricks_typeB_concrete.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBricks_typeB_concrete.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBricks_typeB_concrete.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailBricks_typeB_concrete.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailCables_typeA.glb
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailCables_typeA.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailCables_typeA.glb.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailCables_typeA.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailCables_typeA_signs.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailCables_typeA_signs.png
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailCables_typeA_signs.png.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailCables_typeA_signs.png.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailCables_typeB.glb
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailCables_typeB.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailCables_typeB.glb.import
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailCables_typeB.glb.import
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailCables_typeB_signs.png
(Stored with Git LFS)
BIN
assets/models/kenney/RetroUrban/detailCables_typeB_signs.png
(Stored with Git LFS)
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user