Announcement

Collapse
No announcement yet.

handling *extreme* texture resolution

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

  • handling *extreme* texture resolution

    ive a client who works with satellite imagery. they wish to zoom from space down to a city, google earth style, but nicer.

    i have a relatively high resolution earth model, but in no way would it allow such a shot.

    they can provide me with set of tiles (jpeg or png) which cover the area required, at the resolution required. there are 16 tiles, with what appears to be a small overlap, although i might be wrong, ive not seen the actual tiles they will provide. . if i put all the tiles together total resolution would be around 200k x 200k pixels.

    how on earth would i deal with this? could tiled TX handle that as a single file with LOD so i dont kill my workstation? ive only got 128 gb ram! id really prefer to work with a single texture file, as aligning the tiles by hand in max and assigning them to specific faces, without visible seams, seems tricky.

    how would i even process the data? no idea if photoshop would allow me to stitch the tiles together, and what format i could save out, and how i would convert to TX..?

    If i can find a suitable format to save the texture, and use it without crashing, i was thinking of using vraydecal to plop it on top of my existing earth texture...

    thoughts?

  • #2
    This is a tricky one. I think you have to be smart about it. Do you have a final or close to final camera move? What's the render resolution? If for example you are zooming in from orbit in just 100 frames or something and rendering 4k res for final, there is absolutely no need to have that many high res textures, as there is a point where the distance from camera, render resolution pay a role where you won't see any difference if the texture is 4k, or 40k.
    The .tx format does provide dynamic lods, which means the further away from camera the object is, the smaller the resolution of that image is loaded. It does indeed save memory and time for rendering. I'm not sure how your textures are delivered to you. Is it just a huge tile with a bunch of maps? I would try to map them on a plane, then dice the plane into 16 pieces, for each I would have a unique udim texture. I would project that plane onto your geometry to get it to wrap into place (earth curvature). I would first resize all the textures to something like 4k, or even 2k, mip map them (.tx conversion) then render the camera move and see what you see. For areas where it does not hold up, you can then select those tiles and upres the texture to higher resolution, still keeping it tx.

    Photoshop can handle huge resolutions, but the larger it gets the harder it is to work with, you will reach a point where you can't work with a single large image, I would not advise to go that route, saving and loading that single large image would be a nightmare.
    Dmitry Vinnik
    Silhouette Images Inc.
    ShowReel:
    https://www.youtube.com/watch?v=qxSJlvSwAhA
    https://www.linkedin.com/in/dmitry-v...-identity-name

    Comment


    • #3
      thanks for the quick reply.. the camera move has not been decided yet but since they want to "show off" im guessing it will be a leisurely zoom down from orbit...

      regarding TX, im not clear if it will load only the parts of an image that are visible? for example, if im close, ill only see a small part of one texture, but at full resolution... does the "tiled" nature mean it will load the central part at full res and more distant parts of the texture at lower LOD's, and the non visible bits wont be loaded? or will it load the whole textrure at full res if im close?

      Comment


      • #4
        For the tx, you likely will never ever load full res image. Since for you to load a full res you have to be super close to that object which likely you won't be. I mean if you are approaching ground level the base ground texture will be covered by the buildings, roads etc.
        I think it splits each texture in blocks (mip maps) like small buckets basically, then loads the given LOD for the part of that texture based on the ray hits and distance from object to cam. Further object is from camera the smaller the texture block that is loaded and vise-verse.

        For comparison I had recently done a project with a bridge and few camera fly throughs. The total texture count was around 1000+ textures in udim, over 100 udims on the bridge. In regular non mipmapped textures it would use close to 150Gb of ram during render. With .tx textures that was reduced to about 50-60Gb of ram and render time has also improved. We had a camera fly right through one of the bridge pillars, and for that part of the bridge I could see it hitting the max resolution *just visually I saw texture blurring as it was maxing out on the res, but for the entire bridge it would only load reduced size since the bridge is very large, its long etc so no point to load max res textures for the objects which are very far.

        For the non visible texture, its a bit arbitrary since in raytracing world almost everything is always visible, however if you don't have reflections for example, then objects behind camera won't be traced for reflection only shadow. But even shadow trace will load the texture, so I would use shader override in shadow to put a grey mtl there to optimize the shadow or any other tracing.
        Dmitry Vinnik
        Silhouette Images Inc.
        ShowReel:
        https://www.youtube.com/watch?v=qxSJlvSwAhA
        https://www.linkedin.com/in/dmitry-v...-identity-name

        Comment


        • #5
          great tips, thanks!

          Comment


          • #6
            well i received the tiles (the first 3 at least) cripes , i think i might half the resolution as the first step.

            each tile is 60k wide and 43k high.. appear to have no overlap and fit together perfectly.

            just for fun i opened the first tile in PS and expanded the canvas to the full 4x4 grid... 239600x175600..

            a nice 42 gigapixel image, and 117Gb file size


            to be honest i was amazed that it expanded the canvas instantly without complaining, and even let me load the second and third tiles in and snap to the first.... all with no lags...

            lets see what happens if i try to resize or save out though!

            despite your likely great advice, i am gonna give it a quick try as a single image first... and convert to TX.. just because if by some miracle it works itll save a load of fiddling. ive never read a thing about UDIM and would have no idea what im doing. ill try the "dumb" way first.. got a little time, if i have to leave computer overnight to save files etc..

            once i fail miserably ill use your method.



            edit: just noticed with 3 tiles in there im already using 70Gb ram in photoshop.. i have a feeling that 128Gb wont cut it for 16 tiles!
            Last edited by super gnu; 02-08-2022, 02:32 AM.

            Comment


            • #7
              I don't recall how it works in max, but in maya loading large textures even in maya ui is brutally slow. Even with thumbnail preview. Good luck
              Dmitry Vinnik
              Silhouette Images Inc.
              ShowReel:
              https://www.youtube.com/watch?v=qxSJlvSwAhA
              https://www.linkedin.com/in/dmitry-v...-identity-name

              Comment


              • #8
                Originally posted by super gnu View Post
                how on earth would i deal with this?
                Well, what does you client use to process and view those tiles? I mean, they are the ones generating them. Just curious.

                https://www.behance.net/Oliver_Kossatz

                Comment


                • #9
                  Originally posted by kosso_olli View Post

                  Well, what does you client use to process and view those tiles? I mean, they are the ones generating them. Just curious.
                  to be honest i have no idea its certainly all custom stuff... i could ask.

                  Comment


                  • #10
                    Just a quick update, managed to stitch into a single image ( reduced all tiles to 50% first) and created a single psb of 108k x 80 something k.. that saves fine, but every other format refuses to save. exr crashes ps, png has an arbitrary 2gb filesize limit in ps (despite png not having such a limit) tiff has a 4gb limit, photoshop RAW saves but i cant open it anywhere else.. PSB also works but i cant use it for anything outside ps.


                    i guess UDIM with the source tiles is the way forward, but i dont see an easy way to do a UDIM patch on a sphere already mapped for a single texture, and align it perfectly to the existing overall texture... blended in at the edges etc... Dmitry suggested conforming a plane to the sphere, but i see this being problematic too..

                    the ideal would be if i could load the 16 tiles somehow into the vraydecal and project onto the sphere with that.. but i dont see how.

                    Comment


                    • #11
                      It should be just a matter of scaling up the UVs, f.e. scaling up 4 times to (0,0)-(4,4) range will give you 16 tiles aligned perfectly over the old UVs. I’m not sure if you need to scale the actual UV or simply adjusting the tiling in the VRayBitmap texture, but one of those should work.

                      Best regards,
                      Vlado
                      I only act like I know everything, Rogers.

                      Comment


                      • #12
                        I have used this plugin for Lightwave ages ago and could load huge earth textures without problems. Isn't something like this not available for Max?

                        https://www.db-w.com/products/infinimap/

                        Comment


                        • #13
                          I've tried to do this several times, a long time ago when PCs weren't very powerful. It's always tricky.
                          Have you tried it as a post effect?
                          Andrew Kramer did this using After Effect and the result was pretty good.

                          https://www.youtube.com/watch?v=5aWwoPxF1zg
                          Garry Clarke
                          Technical Illustrator
                          www.garryclarke.com

                          Comment


                          • #14
                            But I think udim is the only way.

                            Delete plz
                            I just can't seem to trust myself
                            So what chance does that leave, for anyone else?
                            ---------------------------------------------------------
                            CG Artist

                            Comment


                            • #15
                              Originally posted by vlado View Post
                              It should be just a matter of scaling up the UVs, f.e. scaling up 4 times to (0,0)-(4,4) range will give you 16 tiles aligned perfectly over the old UVs. I’m not sure if you need to scale the actual UV or simply adjusting the tiling in the VRayBitmap texture, but one of those should work.

                              Best regards,
                              Vlado
                              thanks for the tip vlado, but the 16 tile patch covers a small arbitrary area within the current overall earth texture.. in this test case, most of south east England.. its also not corrected for spherical projection, unlike the original globe textures from Nasa, so would need blending into the existing texture at the boundaries. something vraydecal seems perfect for... however i need to find a way to get the data into a single tiled exr or TX..

                              i might see if GIMP can handle the job better than PS.. however ive no idea if makeTX will fall over if presented with such a monster file, i do recall it being a little "unstable" in the past.

                              It would be cool if there was a way for the vraybitmap to load seperate tiles, rather than just compiled tiled bitmaps... it would really allow unlimited texture sizes if you could load a set of individuaL tiles which are too big to be stitched or otherwise worked on, and the bitmap loader to treat them as it does tiled file formats, loading tiles where necessary.

                              Obviously apart from these kind of jobs, im not sure there are many sources of huge textures in individual tiles!

                              Comment

                              Working...
                              X