W Godot 4, decal to specjalny typ materiału, który umożliwia nałożenie dodatkowych tekstur na powierzchnie obiektów 3D bez potrzeby modyfikowania ich geometrii lub podstawowej tekstury. Decale są wykorzystywane głównie do dodawania szczegółów, takich jak np. ślady, brud, graffiti czy krew, bez konieczności tworzenia dodatkowych materiałów dla każdego obiektu.

Jak używać Decali w Godot 4:
- Tworzenie Decalu:
- W edytorze Godota wybierz węzeł 3D, do którego chcesz dodać decal.
- Kliknij prawym przyciskiem myszy na hierarchię i wybierz Add Child Node.
- Wyszukaj Decal i dodaj węzeł do sceny.
- Konfiguracja Decalu:
- W panelu inspektora zobaczysz opcje dla węzła Decal:
- Material: Możesz przypisać specjalny materiał typu DecalMaterial, który określa teksturę decalu.
- Texture: Ustaw teksturę, którą chcesz nakładać na powierzchnię.
- Cull Mode: Określa, czy decal będzie widoczny tylko z jednej strony, czy z obu.
- Projection Shape: Możesz zmienić kształt projekcji decalu, np. na sześcian lub stożek.
- Fade: Umożliwia ustawienie stopnia zanikania tekstury decalu.
- Dodawanie Materiału Decalu:
- Utwórz nowy DecalMaterial (kliknij prawym przyciskiem na Material i wybierz „New DecalMaterial”).
- W tym materiale możesz ustawić różne opcje, takie jak:
- Albedo Texture: Główna tekstura decalu (np. ślad krwi, brudu itp.).
- Normal Map: Możesz dodać mapę normalną, aby decal miał bardziej realistyczny wygląd i integrował się z oświetleniem powierzchni.
- Emissive: Ustawienie pozwalające na dodanie tekstury emitującej światło.
- Dostosowanie i orientacja:
- Decale są nakładane jak projektory — możesz przesuwać, obracać i skalować węzeł Decal, aby odpowiednio nakładał teksturę na obiekty w scenie.
- Zastosowanie w grze:
- Decale mogą być dynamicznie generowane w grze, np. po trafieniu przeciwnika można dodać decal krwi na powierzchnię, używając węzła Decal i odpowiedniego materiału.
Przykład kodu tworzenia Decalu:
Jeśli chcesz dynamicznie dodać decal w trakcie gry, możesz to zrobić programowo:
# Tworzenie decal dynamicznie
var decal = Decal3D.new()
decal.set_texture(load("res://textures/decal_texture.png"))
decal.set_normal_map(load("res://textures/decal_normal.png"))
decal.position = Vector3(0, 0, 0) # Ustaw pozycję decalu
decal.scale = Vector3(1, 1, 1) # Ustaw skalę
add_child(decal)
W ten sposób możesz tworzyć dynamiczne efekty wizualne, które dodają szczegółów do Twojej sceny bez potrzeby modyfikacji tekstur na obiektach 3D.
Dodaj komentarz