No announcement yet.

Long distance effect

  • Filter
  • Time
  • Show
Clear All
new posts

    Long distance effect

    Hey guys,
    I'm trying to create a map in which the players are on an island in the middle of a large body of lava. When I say "large", I mean that the player should see that it goes on forever. However, I'm using sheet static meshes to create the liquid, and it would simply take too many to make the ocean appear to go on forever. I've tried enlarging the skydome and using a fog volume, but it still isn't really working.

    I remember that in the original UT99, the map CTF-LavaGiant had that sea of lava that appears to go on forever (as well as some distant smoke), but taking a look in the editor I saw that this was just an illusion. Is it possible to do something similar in the UT3 editor?

    TLDR version: How do I make the illusion that a body of liquid goes on forever against a skydome?

    Thank you!

    The same illusion does not exist; the sky boxes that used to be are no more. The way to do it is indeed to use sheet meshes - this is how official UT3 maps that have such spaces also do this; all environments have a horizon, after all.


      So do you mean to say that the only way I can make this work is to create a ton of sheet meshes and spread them out far into the distance? That seems really inefficient, and it doesn't get the effect I'm looking for.


        If they're the same simple meshes with the same material, the overhead is drastically reduced. Some UT3 scenes will have a few hundred thousand polygons visible at a given time. This is a lot, obviously.

        UT3's technique is to indeed place objects all the way to the horizon. Tank Crossing for example, has a sea that does this.


          Use a simple mesh and scale it up, edit your mesh's material UV map and scale it down.


            The engine world size is approximately 10.5km (6.5 miles).

            To create very distant horizon views I use a large ground plane or water plane sheet that is 512k in size and then often scaled to 2x. Depending on the map design, this sheet usually has to be tesselated where it intersects with the actual play area (terrain etc.) to prevent z-fighting. This usually means a custom ground plane is required for each map.
            This gives a 10km to 20km actual "hardware" distance.

            Then the skydome texture and mesh must be designed correctly to simulate a larger perceived horizon view. The texture must include near-infinite horizon (actual real-world is commonly just a few hundred kms), and the mesh should be correctly deformed (usually z-squished) if the texture is a standard spherical map.

            Note that none of the UT3 stock sky textures are pure/correct/good horizon textures. Invasion/Onyx and Overcast and SunsetX all include unedited scenery in them, so none of them will work properly to simulate a distant horizon in all cases (eg. desert, oceanic) unless you want to see large oversized-scale trees or whatever at the far horizon. The other stock sky textures are altitude-cropped above the horizon and can't be used for this at all, as the horizon line is clipped mid-large-cloud. These are really only useful on maps that have perimeter mountains or other occluding geometry around the perimeter of the play area.

            Most spherical textures are taken at ground level and include portions of the local scenery (trees and/or buildings) which is usually within a few hundreds-of-meters from camera, so many spherical textures simply contain these extraneous items and you are stuck with them, or else the artist simply crops the spherical map above the horizon plane to remove them -- this totally removes all possibility of obtaining proper distant horizon skies.
            To properly obtain spherical maps, the shot must be taken at a location (eg. arctic or desert or sea are usually good) or an altitude (eg. mountain peak or tower or in-flight) that prevents the low-level trees and such from becoming part of the necessary horizon shot.

            Some of the UT3 Skies Objects on my site are proper/better horizon textures, so you may have better luck with one of those. I have a pile of additional sky textures coming soon of numerous styles and times-of-day, all with proper/better horizon aspect. I am currently using some of them in the mod I am working on. Most of the spherical textures that I have must be hand-edited to remove all of the trees and buildings, which can take many hours of work just for one spherical map, so it is some time for me to get all of these prep'ed for download.


              Wow...that all sounds very elaborate. I did try putting a fog volume throughout the whole level and coloring it to give a volcanic feel; it helps alleviate the lack of a real horizon. However, can you please describe how to scale down the material on my sheet static mesh?


                Why cant you just take one single poly plane and scale it out past the world bounds and then simple adjust the uv tiling of the material applied to it?


                  Originally posted by Argus9 View Post
                  However, can you please describe how to scale down the material on my sheet static mesh?
                  That depends on what you are using, but basically if it is a stock Material you may be able to use a MaterialInstanceConstant or you may have to duplicate the Material expressions (copy/paste in the material editor) to your own custom version in your map package, then change the UV values or add TextureCoordinate devices to the TextureSample UVs and adjust the UV tiling values.

                  Originally posted by Morphine View Post
                  Why cant you just take one single poly plane and scale it out past the world bounds and then simple adjust the uv tiling of the material applied to it?
                  Yes, adjusting the material UV is all that is required, however...

                  If this plane intersects with the play area geometry such as ocean through an island or ground through mountains, and the intersection area is visible to players, you can't use a simple two-triangle plane. It will z-fight where the plane intersects. So it has to be correctly tesselated and optimized to prevent this.