-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontrol.gd
146 lines (115 loc) · 4.45 KB
/
control.gd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
extends Control
@onready var compatibility = false
class ShaderSelector:
var tab : int
var norm_ind : int
var high_ind : int
func _init(tabn : int,norm_indx : int,high_indx : int):
self.tab = tabn
self.high_ind = norm_indx
self.high_ind = high_indx
var shader_sel_L := ShaderSelector.new(0,0,1)
var shader_sel_R := ShaderSelector.new(0,3,7)
var empty = preload("res://Shaders/Empty.gdshader")
var n_true = preload("res://Shaders/Normals_True.gdshader")
var n_3tap = preload("res://Shaders/Normals_3tap.gdshader")
var n_4tap = preload("res://Shaders/Normals_4tap.gdshader")
var n_5tap = preload("res://Shaders/Normals_5tap.gdshader")
var n_9tap = preload("res://Shaders/Normals_9tap.gdshader")
var n_9tap_p = preload("res://Shaders/Normals_9tap_p.gdshader")
var ed_true = preload("res://Shaders/Highlights_True.gdshader")
var ed_3tap = preload("res://Shaders/Highlights_3tap.gdshader")
var ed_4tap = preload("res://Shaders/Highlights_4tap.gdshader")
var ed_5tap = preload("res://Shaders/Highlights_5tap.gdshader")
var ed_9tap = preload("res://Shaders/Highlights_9tap.gdshader")
var ed_9tap_p = preload("res://Shaders/Highlights_9tap_p.gdshader")
func _ready():
%Settings.hide()
var method = ProjectSettings.get_setting("rendering/renderer/rendering_method")
compatibility = method != "forward_plus"
if compatibility:
$WarningCompat.show()
RenderingServer.global_shader_parameter_set("compatibility",compatibility)
if OS.has_feature("web") :
%Settings/VBoxContainer/ESeparator.hide()
%Settings/VBoxContainer/Exit.hide()
_on_L_changed(0)
_on_R_changed(0)
func select_shader(shader_sel : ShaderSelector) -> Shader:
var new_shader = empty
var n_true_p = n_true
var ed_true_p = ed_true
if compatibility:
n_true_p = empty
ed_true_p = empty
if shader_sel.tab == 0:
match shader_sel.norm_ind:
1: new_shader = n_true_p
3: new_shader = n_3tap
4: new_shader = n_4tap
5: new_shader = n_5tap
6: new_shader = n_9tap
7: new_shader = n_9tap_p
_: new_shader = empty
else :
match shader_sel.high_ind:
1: new_shader = ed_true_p
3: new_shader = ed_3tap
4: new_shader = ed_4tap
5: new_shader = ed_5tap
6: new_shader = ed_9tap
7: new_shader = ed_9tap_p
_: new_shader = empty
return new_shader
func apply_shader_L():
var shader = select_shader(shader_sel_L)
var mater : ShaderMaterial = %Main/ShaderControls/ShaderPlaneL.get_active_material(0)
mater.set_deferred("shader",shader)
func apply_shader_R():
var shader = select_shader(shader_sel_R)
var mater : ShaderMaterial = %Main/ShaderControls/ShaderPlaneR.get_active_material(0)
mater.set_deferred("shader",shader)
func _on_L_changed(_val:int):
shader_sel_L.tab = %ShaderOptionL.current_tab
shader_sel_L.norm_ind = %ShaderOptionL/Normals.selected
shader_sel_L.high_ind = %ShaderOptionL/Highlights.selected
apply_shader_L()
func _on_R_changed(_val:int):
shader_sel_R.tab = %ShaderOptionR.current_tab
shader_sel_R.norm_ind = %ShaderOptionR/Normals.selected
shader_sel_R.high_ind = %ShaderOptionR/Highlights.selected
apply_shader_R()
func _on_shader_split_moved(split_val:float):
%Main/ShaderControls.set_split(split_val)
func _on_menu_button_pressed():
%Settings.visible = !%Settings.visible
func _on_resolution_changed(index):
var resolution := Vector2(240,135)
match index:
1: resolution = Vector2(480,270)
2: resolution = Vector2(960,540)
3: resolution = Vector2(1920,1080)
$Display/Viewport.size = resolution
$Display/Viewport.size_2d_override = get_viewport_rect().size
func _on_color_shadows_changed(color: Color):
RenderingServer.global_shader_parameter_set("shadow_color",Vector3(color.r,color.g,color.b))
func _on_color_highlights_changed(color: Color):
RenderingServer.global_shader_parameter_set("highlight_color",Vector3(color.r,color.g,color.b))
func _on_shadow_value_changed(value):
RenderingServer.global_shader_parameter_set("shadow_strength",value)
func _on_highlight_value_changed(value):
RenderingServer.global_shader_parameter_set("highlight_strength",value)
func _on_camera_proj_changed(index):
if index == 1:
%Main/GimbalCam.set_projection(Camera3D.PROJECTION_PERSPECTIVE)
else:
%Main/GimbalCam.set_projection(Camera3D.PROJECTION_ORTHOGONAL)
func _on_rs_camera_pressed():
%Main/GimbalCam.angle_lr = 135.0
%Main/GimbalCam.angle_ud = 30.0
%Main/GimbalCam.distance = 6.0
func _on_exit_pressed():
get_tree().quit()
func _on_fix_void_toggled(button_pressed):
print(button_pressed)
RenderingServer.global_shader_parameter_set("fix_void",button_pressed)