-
-
Save jcandres/c8e9361aa6b0c09f1d3f293121d86cb6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
tool | |
extends VisualShaderNodeCustom | |
class_name VisualShaderNodeUVPanner | |
func _init(): | |
set_input_port_default_value(1, Vector3(0.0, 0.0, 0.0)) | |
set_input_port_default_value(2, 0.0) | |
func _get_name() -> String: | |
return "UVPanner" | |
func _get_category() -> String: | |
return "UV" | |
#func _get_subcategory(): | |
# return "" | |
func _get_description() -> String: | |
return "Animated UV tiling with given [offset] speed" | |
func _get_return_icon_type() -> int: | |
return VisualShaderNode.PORT_TYPE_VECTOR | |
func _get_input_port_count() -> int: | |
return 3 | |
func _get_input_port_name(port: int): | |
match port: | |
0: | |
return "uv" | |
1: | |
return "offset" | |
2: | |
return "time" | |
func _get_input_port_type(port: int): | |
match port: | |
0: | |
return VisualShaderNode.PORT_TYPE_VECTOR | |
1: | |
return VisualShaderNode.PORT_TYPE_VECTOR | |
2: | |
return VisualShaderNode.PORT_TYPE_SCALAR | |
func _get_output_port_count() -> int: | |
return 1 | |
func _get_output_port_name(_port: int) -> String: | |
return "uv" | |
func _get_output_port_type(_port: int) -> int: | |
return VisualShaderNode.PORT_TYPE_VECTOR | |
func _get_code(input_vars: Array, output_vars: Array, _mode: int, _type: int) -> String: | |
var uv = "UV" | |
if input_vars[0]: | |
uv = input_vars[0] | |
return "%s.xy = %s.xy + %s.xy * %s;" % [ | |
output_vars[0], uv, input_vars[1], input_vars[2]] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
tool | |
extends VisualShaderNodeCustom | |
class_name VisualShaderNodeUVscale | |
func _init(): | |
set_input_port_default_value(1, Vector3(1, 1, 0)) | |
set_input_port_default_value(2, Vector3(0.5, 0.5, 0)) | |
func _get_name() -> String: | |
return "UVScale" | |
func _get_category() -> String: | |
return "UV" | |
#func _get_subcategory(): | |
# return "" | |
func _get_description() -> String: | |
return "Scale UV relative to pivot point" | |
func _get_return_icon_type() -> int: | |
return VisualShaderNode.PORT_TYPE_VECTOR | |
func _get_input_port_count() -> int: | |
return 3 | |
func _get_input_port_name(port: int): | |
match port: | |
0: | |
return "uv" | |
1: | |
return "scale" | |
2: | |
return "pivot" | |
func _get_input_port_type(port: int): | |
match port: | |
0: | |
return VisualShaderNode.PORT_TYPE_VECTOR | |
1: | |
return VisualShaderNode.PORT_TYPE_VECTOR | |
2: | |
return VisualShaderNode.PORT_TYPE_VECTOR | |
func _get_output_port_count() -> int: | |
return 1 | |
func _get_output_port_name(_port: int) -> String: | |
return "uv" | |
func _get_output_port_type(_port: int) -> int: | |
return VisualShaderNode.PORT_TYPE_VECTOR | |
func _get_code(input_vars: Array, output_vars: Array, mode: int, type: int) -> String: | |
var uv = "UV" | |
if input_vars[0]: | |
uv = input_vars[0] | |
return "%s.xy = (%s.xy - %s.xy) * %s.xy + %s.xy;" % [ | |
output_vars[0], uv, input_vars[2], input_vars[1], input_vars[2]] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment