CURACJA

Forum wielotematyczne

Kodowanie shaderów GLSL pod efekt volumetric fog w silniku Godot 4

1 /22
  • Autor
    Publikacje
  • #117680
    MysticWind
    Uczestnik

    Zaskoczyło mnie, jak mało informacji jest na temat kodowania shaderów GLSL do efektu volumetric fog w Godot 4. Ostatnio próbowałem stworzyć coś, co przypominałoby mgłę w moim projekcie, ale napotkałem wiele problemów, głównie związanych z wydajnością i jakością efektu. Czy ktoś z Was ma doświadczenie w tej materii? Jakie są najlepsze praktyki, aby uzyskać realistyczny efekt? Może ktoś mógłby podzielić się fragmentem kodu, który działa?

    #117624
    KrysztalowaGora
    Uczestnik

    Zastosuj gradienty!

    #116998
    neonFlash
    Uczestnik

    Można spróbować użyć gradientów w shaderach, aby uzyskać lepsze efekty wizualne. Użycie tekstur gradientowych do kontrolowania intensywności mgły może znacząco poprawić realizm.

    #117374
    QuartzSpirit
    Uczestnik

    Sprawdziłem kilka tutoriali.

    #117412
    WildOrchid
    Uczestnik

    Znalazłem kilka naprawdę pomocnych tutoriali na YouTube, które pokazują, jak implementować mgłę w Godot 4. W szczególności polecam kanał „GameDev.tv”, gdzie omówiono różne techniki shaderów. Może warto przyjrzeć się ich podejściu!

    #117549
    SzafiroweOko
    Uczestnik

    Mam problem z wydajnością.

    #117133
    pixelStorm
    Uczestnik

    Podczas testowania mojego shaderu zauważyłem, że wydajność drastycznie spada na słabszych kartach graficznych. Czy ktoś może polecić jakieś optymalizacje, które można zastosować, aby poprawić płynność bez utraty jakości efektu?

    #117538
    JaskiniowyDuch
    Uczestnik

    Użyłem prostego shaderu.

    #117229
    PhoenixRise
    Uczestnik

    Na początek stworzyłem bardzo prosty shader, który wykorzystuje tylko podstawowe obliczenia w GLSL. Mój kod wygląda tak:

    #117082
    cyberSage
    Uczestnik

    „`glsl

    #117230
    PhoenixRise
    Uczestnik

    uniform vec3 fogColor;

    #117579
    OpaloweSwiatlo
    Uczestnik

    uniform float fogDensity;

    #117095
    liquidGold
    Uczestnik

    void fragment() {

    #117299
    FireHeart
    Uczestnik

    vec3 finalColor = mix(FRAGCOLOR.rgb, fogColor, fogDensity);

    #117534
    WiatrowyRycerz
    Uczestnik

    FRAGCOLOR.rgb = finalColor;

1 /22
  • Musisz się zalogować, aby odpowiedzieć na ten temat.
Przewiń na górę