Announcement

Collapse
No announcement yet.

Virtual Texturing Feedback

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Yup, I have tried to do it. I will be waiting for the fix in a release and will rework my models till then.

    Comment


      We were using virtual texture lightmaps in 4.24, we just updated to 4.25 and all our lightmaps are broken and we can only bake lighting that works by turning off virtual texture for lightmaps in the project settings.

      The results with virtual texture on are basically as if there were no shadows at all, and no global illumination. Very harsh lighting with generally incorrect data (random colors on strange surfaces). Any chance this is related to the UDIM bug I am seeing posts about above (do lightmaps use UDIM under the hood)? I bugged it from the editor, but curious if this is a known issue. Thanks.

      Comment


        Lightmaps don't use UDIM (also udim bug has always been there), so this is likely something different. First I've heard of it, I will try to investigate soon.

        Comment


          Thanks very much for the response, bummer that it is not something known. Several people have posted in the main 4.25 update thread about this same problem (with screenshots that show identical results to what we see) so I don't believe it is unique to our project.

          Comment


            hey beningram I have a question for you.

            Within a material I am able to convert the Runtime Virtual Texture Sample to a parameter.
            Click image for larger version  Name:	customvt.png Views:	0 Size:	179.1 KB ID:	1765163
            This works and allows you to edit the material instance by assigning it a new VT
            Click image for larger version  Name:	customVT (2).png Views:	0 Size:	17.6 KB ID:	1765164

            Obviously, one would also have to change the render target in the volume and in the landscape VT parameter.
            As you can see (because "2" has color) The texture is correctly rendered.

            However the landscape material is not actually using the instance modified value / All I get is black.

            I was hoping to use this method to be able to instantiate a different instance per world composition tile map.
            End up with a set of assets for each tile somewhat like this
            Click image for larger version  Name:	customVT (3).png Views:	0 Size:	35.7 KB ID:	1765165

            Instead of having to also have a separate material for each VT.



            Any word on this / a different pathway to bring the improvement to World Composition?

            Also, maybe you can raise the issue with whomever is in charge of world composition - it would be nice to have the option to import tiles with the automated creation of these files, since they would all probably (because of biomes maybe not) mostly be the same.
            Last edited by MostHost LA; 05-22-2020, 06:04 AM.

            Comment


              Something is certainly wrong with VT and landscape, but I can not figure out, what exactly. Here is the comparison image. On the left, I use large 16384x16384 texture; On the right, same texture, bus stream from 2048x2048 chunks (using fix supplied above to fix Y rotation); Now, on the left, single 16384 texture is applied normaly. On the right, one stream as chunks, is applied with some odd offset.

              Click image for larger version  Name:	exaplain.jpg Views:	0 Size:	336.2 KB ID:	1766545

              Comment


                beningram Thanks for the answers here! Any chance you could briefly describe how cache eviction policy works? Does VT unload tiles after some time? For example, when we don't need specific texture mips anymore? Is it implemented at all?

                UPD: After some investigation I ended up thinking that cache eviction is implicit i.e. we just reusing parts of textures (allocated in FVirtualTexturePhysicalSpace).How true is that?
                Last edited by raianlp; 06-03-2020, 06:11 AM.

                Comment


                  I skimmed through the Issues and I would like to get some more info on couple of things I've selected. To understand my usage case, we are doing in engine cinematics, using tons of high-res textures (mostly 8K) and we don't care too much about running on high fps, as we are focused on the final render.

                  1) First a broader question, looking at our use case, is VT something we should definitely consider or are we fine not switching to it?


                  2) I've heard that UDIM's were fixed for FBX, what about Alembics?

                  3) Ben Said
                  "Virtual textures are not currently supported in ray-traced shaders "

                  So we cannot use raytracing, if we use VT Textures?

                  4) Ben Mentioned:
                  "In general switching textures to VT will save memory, but increase the cost of materials. However since VT enables much higher texture resolutions to be used, materials can often be.. "

                  Is this about being able to import higher resolution textures or did I miss something?

                  5) Ben said:
                  "Larger than 8k textures *should* import correctly, but UE4 texture import code currently keeps everything in working memory, so large textures will eat a ton of ram. I'm not sure if this will be addressed for the initial release, but we'll see."

                  Is this still an issue, we have ton's of large textures (90%are 8K)

                  Thanks a lot for helping out here!

                  Comment


                    I'm using virtual texturing (VT texture streaming objects, not udim or the landscape VT one)
                    with ray tracing, sometimes i have to turn off raytracing with switching to DX11 in order to work without crashing, then just turn on dx12 when i want to light with raytracing

                    Comment


                      I'm using 4.25.1 and my landscape textures are super blurry when using RVT. I even shrunk the volume down to 200x200x200 and it still is really blurry. What can I do to fix this?

                      Comment


                        beningram Hi, there is an issue with tiles not streamed for a material on a mesh that is occluded by a mesh that has a translucent material with VT textures. It seems like a translucent material with VT is effectively occluding any VT that is behind. This issue does not occur when using regular textures on a translucent material.

                        Comment


                          Originally posted by jkinz3 View Post
                          I'm using 4.25.1 and my landscape textures are super blurry when using RVT. I even shrunk the volume down to 200x200x200 and it still is really blurry. What can I do to fix this?
                          Your textures are probably set as Virtual Textures. Right click and convert them to normal textures.

                          Comment


                            I am using tiled landscape (with World Composition), and I am trying to use VT. It worked great with one, "solid" landscape, but 8129x8129 landscape is never a good idea, so I switched to tiled landscape. The problem is that when my terrain tiles are not loaded in the editor, landscape in game is just black. When I load them - the textures are correct in game, but when I unload them again, terrain in game is black again. What's going on with it? Thanks!


                            Edit: I have noticed that when I build my game while all tiles are loaded, it actually works. But only for landscape, and not for landscape LOD meshes (my LOD meshes are using the same material and virtual texture as landscape). Those LOD's are just black. At least it is a progress...
                            Last edited by Actuss; 06-12-2020, 01:15 PM.

                            Comment


                              Actuss Read my work around a few posts above. each tile needs it's own material with it's own VT reference.

                              Comment


                                i can confirm that the "runtime virtual texture sample parameter" does not take the instance linked RVT. it always renders the RVT that is set inside the "virtual texture sample parameter"-node. this is a pretty big dealbreaker for my project since i use a quite complex landscape shader and many, many worldcomposition sublevels.

                                is epic aware of this issue?
                                Last edited by krz9000; 06-14-2020, 07:44 AM.

                                Comment

                                Working...
                                X