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

  • Temat ten jest pusty.
1 /22
  • Autor
    Publikacje
  • #4276
    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?

      #4277
      KrysztalowaGora
      Uczestnik

        Zastosuj gradienty!

        #4278
        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.

          #4279
          QuartzSpirit
          Uczestnik

            Sprawdziłem kilka tutoriali.

            #4280
            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!

              #4281
              SzafiroweOko
              Uczestnik

                Mam problem z wydajnością.

                #4282
                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?

                  #4283
                  JaskiniowyDuch
                  Uczestnik

                    Użyłem prostego shaderu.

                    #4284
                    PhoenixRise
                    Uczestnik

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

                      #4285
                      cyberSage
                      Uczestnik

                        „`glsl

                        #4286
                        PhoenixRise
                        Uczestnik

                          uniform vec3 fogColor;

                          #4287
                          OpaloweSwiatlo
                          Uczestnik

                            uniform float fogDensity;

                            #4288
                            liquidGold
                            Uczestnik

                              void fragment() {

                              #4289
                              FireHeart
                              Uczestnik

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

                                #4290
                                WiatrowyRycerz
                                Uczestnik

                                  FRAGCOLOR.rgb = finalColor;

                                1 /22
                                • Musisz się zalogować, aby odpowiedzieć na ten temat.
                                WP Radio
                                WP Radio
                                OFFLINE LIVE