Home Unreal Engine

UE5 VR environment, presentation, techincalProblems and Feedback request

Dantexagc
polycounter lvl 2
Offline / Send Message
Dantexagc polycounter lvl 2

Hi everyone, I am a 3D artist and I wanted to make a VR UE5 project for the sake of learning and improving my skills. I want to present what I have so far and hear your advice and feedback. This is still a WIP but I am running out of ideas. I definitely want to push the graphic quality further, if possible.


I want to briefly describe what I have done so far. I apologise if this is not the right section of the forum for this thread.



I started with the VR template. I created a landscape in World Machine, I got the heightmap and other masks that I used to blend different materials. I added the main structures of the house that I modelled in Blender. Almost all textures come from megascans, also some assets like the bed and the couches. I kept most of the surface textures, for floors or walls, limited to 1024x1024 pixels. Some individual assets might have textures at 2K.


Lighting:


All the lights are baked except for one directional light that is set to movable. There are two directional lights in the exact same position and orientation, one fully baked and the other fully movable. I noticed a big difference when adding the movable one, especially on the landscape. I am using the GPU lightmass plugin to bake lights and the results are noticeably better.


Effects:


There are 2 small fountains, water and a fireplace in the scene, as well as some fake fog planes outdoors. The water and the fog are just materials using a scrollable texture. The fountains are the same, but they add refraction and displacement of the mesh based on the texture. The fireplace is the same idea, but instead of a scrolling texture it uses a flipbook texture, generated from a fire simulation in Embergen.


Functionality:


The functionality is just what comes with the VR template. There is basic teleportation movement and some grabbable objects in the scene


Landscape Blending:


I wanted to achieve a nice looking exterior view. I am happy with the base landscape, but I wanted to add megascans to add details. To blend them with the terrain I used Runtime Virtual Textures. However, this does not look good in this case. The landscape is too large and the RVT does not have enough detail and the asset does not blend well with the terrain:



I would be fine with not having detail in the base color of the texture, but being able to see where the two meshes intersect is what truly bothers me. I would love to hear advice on this

Other Problems:


Beyond the issue of the RVTs I have noticed annoying black artifacts that “flicker” on my foliage meshes. I have no idea why this is happening. I tried to add some small rocks to the foliage system to scatter them more easily and they also get the artifacts. However, if instead of adding them as foliage I just manually place them as static meshes there are no artifacts. Here is a screenshot:


Screen Space Reflections do not seem to work, I added the post processing volume and checked the intensity for it but it does not show.


Trying to visualize shader complexity in the optimization viewmodes crashes unreal


Wishes:


I would like to use decals to add some extra details, especially on glass surfaces. I don’t know how this would affect performance. I also would like to learn how to assess performance better. I tried to find information but I have not been very lucky. I would love to find a tutorial or article that explains the tools and how to use them.


And finally, if the performance allows it. I would like to detail the landscape more (more foliage, megascans…)



Conclusion for now:


The scene works in VR on my gaming laptop. I tested on the editor and also made a couple of builds. My specs:


AMD Ryzen 7 5800H

32GB RAM

RTX 3070 Laptop

Oculus Rift S


Thank you for taking the time to read my post. I know it is a lengthy one but I want to learn as much as possible

Replies

  • rexo12
    Offline / Send Message
    rexo12 interpolator

    This is a fine place to post, in future you might get more attention in the 3D Art subforum as you don't have a specific problem you're asking about and this seems to be more of a journal thread. You can ask an admin to move the thread if you like.


    The asset blending with the landscape is usually done with a Depth Fade shader, often used to drive more complex effects like dirt or snow or moss 'climbing' up the intersection between your asset and the ground. Another tutorial: https://www.youtube.com/watch?v=2ATM3VMxckQ

    If you don't want to use Lumen, I think you should disable all the lumen features in your project settings so you can fall back to things like SSR and static lighting. It is strange that shader complexity visualisation crashes your engine, i'd suspect maybe your graphics drivers aren't correct?


    Some resources on optimisation. The unreal docs are generally pretty good for this:

    https://docs.unrealengine.com/4.27/en-US/TestingAndOptimization/

    You will be making use of the GPU Profiler tool a fair bit to understand your scene performance. Use this in standalone play mode to get accurate results.

    I've not read this, but it seems to be a decent guide:

    https://unrealartoptimization.github.io/book/

    Some general notes on measuring performance. There was a better blog post about this that I'm unable to find unfortunately:

    https://cgvr.cs.ut.ee/frame-rate-vs-frame-time/


    In general try not to get too hung up on performance while you're still building the project and making it look good. It makes it a lot harder to focus on your art. Optimisation is a process you do once you're no longer adding features or content.

  • Fabi_G
    Online / Send Message
    Fabi_G high dynamic range

    Hey, interesting project!

    Harsh intersections of meshes (with landscape or other meshes) could also be a result of the baked lighting. You could check in lighting only view mode if there is a drastic value difference. A problem you may encounter when dithering intersections, is that the baked shadow beneath the mesh becomes visible. One workaround would be to disable shadow casting for certain detail and transition meshes.

    I have not encountered the foliage flickering you describe yet. Do any messages pop up after baking? Foliage used with static lighting requires good lightmap UVs and sufficient resolution. I recommend test baking assets in a seperate small scene. I think the plants could use some subsurface scattering/light shining through to look more natural, faked if necessary.

    Did you find any difference between using a static plus a movable directional light, opposed to a stationary light?

    Overall I would also define a clear play space to focus your efforts on. Imo by design you can dodge/hide issues that come with baked lighting. Don't forget to place a lighting importance volume around the play space.

    A while back I did some free course on Unreal Academy about archvis with lightmass and it was really insightful. It's also helpful to find good sample projects and disect them. I remember being inspired by archvis projects of koola, maybe you find some projects or writeups of his (I remember getting one from the marketplace, interior focused though)

    Keep it up!

  • Dantexagc
    Offline / Send Message
    Dantexagc polycounter lvl 2

    Thank you for your answers @Fabi_G and @rexo12. This reply comes a bit late but I have had a flue so I had to step away from the computer for some days 😅

    Before that I had some time to update some aspects of the project based on @rexo12 feedback. I followed the tutorial you shared regarding how to blend megascans and now I added the dithering blend through pixel depth offset on top of what my material was. I think the results are better. I also disabled casting shadows for these meshes, as @Fabi_G also mentioned. Here are a couple of screenshots, including a general shot of "lighting only" visualization:


    I checked if I could disable lumen for Dynamic Global Illumination and Reflections but the dropdown menu appears grayed-out:


    Answering to @Fabi_G, you are right I did not see any difference between using a combination of a Static light + Stationary light vs static light + movable light (at least not at first glance). I have changed the movable light to stationary. Also I have a Lightmass Importance Volume that encompasses the house.

    I also checked the plants parent material and saw that it was adding a subsurface color through a translucency texture. I tried to improve the effect a bit more. I would like to get some greenish tint from the leaves bleeding into the floor but I am not so sure how to accomplish that.

    The flickering of the plants is still a mystery. I tried placing foliage in a different level and the problem is still there. I also tried importing a different plant model that I downloaded with a material made from scratch and the issue persists. I checked the lightmap UVs and their resolution with the visualization mode and they seemed ok. I have a quick video showing the glitch here: https://youtu.be/xg221SnrLUc

    I will look into optimization once I am happy with the content as @rexo12 suggested.


    Regarding content, I added a radio and I wanted to make it so the player could play a song. I have 3 elements for that but I suck at blueprints. If anybody could help me solve that I would highly appreciate it. The 3 components I have are a Widget blueprint, a blueprint interface and an actor blueprint. I managed to make the song play but then selecting stop would just re-start the song and by trying to fix that I somehow broke it even more. Here are the different blueprints:


    The desired behaviour would be so you click the play button with the trigger > song starts, button color changes to black, text changes to "Stop" and its color changes to black. Then if you press "Stop" UI resets and song stop. Pressing play again just plays the song from the beginning again.

    I also tweaked the VR-pawn blueprint so you could select things from a widget, I just followed a tutorial. I would love to add a "line" that appears when you hover over the button but I have no idea how to do that. This is what I added to the VR-pawn blueprint:


  • Fabi_G
    Online / Send Message
    Fabi_G high dynamic range

    Could repro the foliage flickering issue in VR template with starter content. Don't know what's happening :/

  • Dantexagc
    Offline / Send Message
    Dantexagc polycounter lvl 2

    Hey @Fabi_G, I found a fix to the foliage flickering issue. I also noticed that this was happening to instanced static meshes. I do not understand why but it was a checkbox in the project settings:

    I found out through this thread:

    https://forums.unrealengine.com/t/mobile-ue5-odd-black-flickering-on-instanced-static-meshes-foliage/623959/5

  • Fabi_G
    Online / Send Message
    Fabi_G high dynamic range

    Hey, cool that you found a solution to the issue - and props for sharing 👍️ Curious that this issue exists in a project template.

Sign In or Register to comment.