Наложение RGB Slider Custom Sprite - PullRequest
0 голосов
/ 20 марта 2020

Я новичок в Godot, но имею базовое c понимание GDScript и языка шейдеров Godot.

Я был удивлен, увидев, что для этого нет исчерпывающего учебника.

Я пытаюсь создать интерфейс, где игроки могут создавать свои собственные спрайты с помощью цветов на слайдере RGB. Спрайт - это волосы, поэтому в нем есть текстура, которую я не хочу потерять (поэтому я и описываю конечный результат как наложение цвета, как в фотошопе).

Я прикрепил материал к спрайт волос и создал новый шейдер, мой язык шейдеров читает:

shader_type canvas_item;

uniform float red;
uniform float green;
uniform float blue;

void fragment(){
	COLOR = texture(TEXTURE, UV);
	COLOR.r += red;
	COLOR.g += green;
	COLOR.b += blue;
}

Затем я сделал переменные, которые соответствуют каждому цвету. Затем для управления значением каждого цвета я добавил функцию, связанную со значением ползунков в пользовательском интерфейсе.

onready var red = material.get_shader_param("red")
onready var green = material.get_shader_param("green")
onready var blue = material.get_shader_param("blue")

func _on_rHSlider_value_changed(value):
	red = value
	material.set_shader_param("red", red)

func _on_gHSlider_value_changed(value):
	green = value
	material.set_shader_param("green", green)

func _on_bHSlider_value_changed(value):
	blue = value
	material.set_shader_param("blue", blue)

Мне не хватает какого-то метода диапазона для обработки значений? Должен ли я заниматься чем-то совершенно другим, более эффективным?

Пожалуйста, дайте мне знать! любая помощь очень ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...