[WIP] [UE4] Modular Japanese Temple

kelheor
polycounter lvl 3
Offline / Send Message
Pinned
kelheor polycounter lvl 3
This project was started a couple of years ago but stopped due to lack of experience. Then I tried to recreate everything from scratch during the Artstation challenge, but again, I wasn't able to finish it due to personal circumstances. Now I finished my previous project and decided to finally complete this environment.

In this thread, I will post my progress on this environment.
This project, when it will be completed, will be available on UE4 Marketplace.

Global Lighting Controller Features:
- Day/night cycle within real-world coordinates.
- Auto-activation of point/spotlights/advanced lights 
- Ability to ignore certain lights
- Blending between day/night parameters for Sky Sphere, SkyLight, Directional Light, Atmospheric Fog, Exponential Height Fog
- Can work in the editor via construction script or at runtime 
- Trigger blueprint to switch between day/night (useful for making interactive demonstrations to showcase day/night variants of the environment)
- Ability to quickly select a certain time of a day (midnight, morning, evening, etc).

Advanced Light Blueprint Features:
- Light intensity and mesh emissive intensity blending during day/night cycle transitions
- Ability to set mesh representation of a light
- Light flickering for mesh emissive and light function
- Wind simulation to make meshes looks lively
- Physics Constraint and Cable Component support - visible connect lights to surface and affect its movement by physics
- Lots of parameters to tune for both light and mesh
- Quickly change from point light to spotlight or mesh emissive only lighting.
- You can use the float curve to set custom transition speed between day/night
- Ability to set custom time intervals for day/night transitions. 
- You can disable certain advanced lights from managing them by the global lighting controller.

Universal Material Features:
- One material to rule them all. It can be used for almost any kind of purpose - trim sheets, tileable materials, unique materials for props, grass/trees/foliage, subsurface, glass,  etc.
- Enable only those features per instance material, which you need via static switch parameters - unused parts won't be compiled and it will reduce the number of instructions.
- Modular approach. Reuse parts of this material in your custom materials.
- Surface effects support. Add procedural snow/sand/mud/wetness/dissolve effects for your meshes or enhance the system to add your effects.
- Parallax Occlusion Mapping support
- Tesselation support
- World Aligned / Custom Triplanar mapping support.
- Various color variation methods support (SpeedTree/Global Variation Map)
- ScratchGrime masks support
- Translucent materials with refraction support
- Cheaper glass materials via masked blend mode and dither temporal AA.
- Fuzzy shading support. Take most of your moss materials.
- Details normal support
- Various methods to control the normal intensity
- Ability to use separate tiling amount per each input
- Emissive effects - flickering/dynamic fade
- You can be able to not use any textures at all - just pure input scalar/vector values
- Distance-Based Tesselation
- Ability to use separate far tiling value based on camera distance
- Wind support
- Pixel Depth Offset support
- The project also included separate material which supports vertex paint with 3 layers + liquid. You can select default lerp or height lerp to use.

Latest update:



Replies

  • kanga
    Offline / Send Message
    kanga interpolator
    Looks pretty super! Love the curved forms. May be interesting for modular dummies like me for you to outline your process a bit.

    Great stuff.
  • kelheor
    Offline / Send Message
    kelheor polycounter lvl 3
    Update 7.11.19

    For the last week I worked on a couple of things:
    - Resurrected the whole project, which was abandoned since the Artstation Challenge.
    - Worked on materials and UV.
    - Tried to make it possible to work on this project on 2 different PCs seamlessly.

    Trim Sheet for temple fundament was sculpted in ZBrush, baked in Marmoset Toolbag and finally polished in Substance Painter.



    I used the AtlasMaker node to make trim sheet for roof details/decals. Good thing is that you can update parts of your trim sheet at any time without a lot of effort. This texture has a 2K resolution and created for 512px/m texel density. I probably pack more decals later in it, when I need them.



    Lots of work took UVs, especially for roofs. Very useful addons for UV in Blender is Magic UV, TexTools, Texel Density Checker.



    A prototype of this temple is Byōdō-in, but I added some changes in it. Though the main forms are complete, I still not sure about surroundings - walls/water/something else?

    Some screenshots from UE4 (all shadows are from Mesh Distance Fields + SSAO - no cascaded shadow maps on images below):





    As for seamless work on 2 different PCs, I tried a couple of solutions. 

    First of all, I tried SyncThing. In the beginning, I used 2 PC + Mobile Phone for sync files. Then I tried to use Raspberry Pi 3 Model B instead of the smartphone to make it work 24/7. I also tried to use my own relay on VPS. It worked fine for small files, but pretty unstable if you need to sync 1-2 Gb every day - sometimes sync could take 1-2 hours.

    Then I moved to usual cloud providers and currently testing this solution. The main idea to enable sync only when you need it and disable it when you're working on a project. The reason for this is because unlike SyncThing, most cloud storage providers are not supporting delta sync (except Dropbox maybe, but it's too expensive) and ability to exclude subfolders from sync (not even Dropbox).
  • kelheor
    Offline / Send Message
    kelheor polycounter lvl 3
    Update 9.11.19





  • kanga
    Offline / Send Message
    kanga interpolator
  • icegodofhungary
    Everything looks pretty consistent in quality and high quality indeed. If you haven't yet, I think a night version of this would be phenomenal, with paper lanterns and the like. Would also be good lighting practice.
  • kelheor
    Offline / Send Message
    kelheor polycounter lvl 3
    Update 11.11.19

    What's new:

    - Global Lighting Controller (GLC)

    GLC Features:
    - Day/night cycle within real-world coordinates.
    - Auto-activation of point/spotlights and blueprints with advanced light interface with the ability to ignore certain lights
    - Correct sun position by using UE4 Sun Position plugin
    - Blending between day/night parameters for Sky Sphere, SkyLight, Directional Light, Atmospheric Fog, Exponential Height Fog
    - Can be run in the editor via construction script or at runtime 
    - Trigger blueprint to switch between day/night
    - Advanced light blueprint, which supports additional features, like intensity blending during day/night cycle


  • kelheor
    Offline / Send Message
    kelheor polycounter lvl 3
    Everything looks pretty consistent in quality and high quality indeed. If you haven't yet, I think a night version of this would be phenomenal, with paper lanterns and the like. Would also be good lighting practice.
    Working on it. Look for the latest update with video. :)
  • kelheor
    Offline / Send Message
    kelheor polycounter lvl 3
    Update 18.11.19

    Global lighting controller improvements, including:
    - Easier to add new parameters to switch them between day/night/dusk/dawn
    - Added new parameters for skylight, directional light, and exponential height fog
    - Ability to select a certain time of a day via combobox (midnight, morning, evening, etc).

    Lots of improvements on Advanced Light blueprint, including:
    - Light flickering for mesh emissive and light function
    - Wind simulation to make meshes looks lively
    - Physics Constraint and Cable Component support - visible connect lights to surface and affect its movement by physics
    - Tons of parameters to tune for both light and mesh
    - Quickly change from point light to spotlight or mesh emissive only lighting.


  • Eric Chadwick
    Would be cool to see the leaves transition to green as the sun hits them.

    Also, need a jump pad on the end there, ala The Longest Yard. :D
  • kelheor
    Offline / Send Message
    kelheor polycounter lvl 3
    Would be cool to see the leaves transition to green as the sun hits them.
    Currently, everything follows the timings, which can be set in the global lighting controller (when a transition from day to night starts). But I guess it's possible to add custom timings to the advanced light blueprint, so each actor can have separate info when to start such transition. It will make possible to set accurate transition interval so the tree will change color exactly at the moment when the sun starts to shine. I will add this to the task list.
  • franman
    Offline / Send Message
    franman polycounter lvl 10
    kelheor said:
    Update 9.11.19





    This shot here looks like a good potential stage for a fighting game especially if that fighting game happens to be Soul Calibur 6.
  • kelheor
    Offline / Send Message
    kelheor polycounter lvl 3
    franman said:
    This shot here looks like a good potential stage for a fighting game especially if that fighting game happens to be Soul Calibur 6.
    Yeah, I also had this idea, to make it as a training ground for monks. I also had an idea to make it as a helipad, place the whole temple on skyscraper's roof and place a city around. But currently, it's a small rest area with a single grave, on which the mystic tree was planted.

    To be honest, initially, I had references for the temple only. And now I'm stuck with making proper surroundings for it. It can be flying islands, mountains around (like Huangshan), an island in the sea, a futuristic city, a giant cave or something else. If I only was able to paint in 2d a proper concept art, the work would be much simpler. But unfortunately, I don't have the skills in making 2d concepts at this moment. 
  • easterislandnick
    Offline / Send Message
    easterislandnick polycounter lvl 14
    The end of your roof beams are yellow, why? Are they painted? Wood in the real world doesn't really do that, only very old wood that has been recently cut and no where to that amount. Have a look at these sleepers.. Once wood has been in the wild for a couple of years any fresh wood on the end grain matches the side grain anyway,
  • kelheor
    Offline / Send Message
    kelheor polycounter lvl 3
    The end of your roof beams are yellow, why? Are they painted? Wood in the real world doesn't really do that, only very old wood that has been recently cut and no where to that amount. Have a look at these sleepers.. Once wood has been in the wild for a couple of years any fresh wood on the end grain matches the side grain anyway,
    It's painted. I may reverse to a full red version (instead of pure wood) as in the image below, but currently, I left yellow color just to make better separation of details.


    In the original old version (which is not in Hawai, but in Japan), it's wasn't painted initially.


    But then it became painted too:

  • kelheor
    Offline / Send Message
    kelheor polycounter lvl 3
    Update 22.11.19

    What's new:

    - Testing another variant of surroundings around the temple.

    - Global master material refactoring. All materials now are modular. Each module (input, util, effect) can be reused to make various specialized materials or universal material with the ability to enable only required features.

    - Advanced lights now can use the float curve to set custom transition speed between day/night. Also, it's possible to set a custom time intervals for such a transition. You also can disable certain advanced lights from managing them by global lighting controller. 

    - Lots of various tweaks and optimizations here and there. For example, I found and fixed a bug with roof's distance fields, which only occurs only with a certain light angle and because of it shadows are incorrect.
    Also, decreasing the quality of screen-space reflections from 100 to 70 gave a huge boost of performance without almost any visible changes.



  • kelheor
  • kelheor
    Offline / Send Message
    kelheor polycounter lvl 3
    Updated details about universal material features in header of a forum thread.

  • kelheor
  • kelheor
    Offline / Send Message
    kelheor polycounter lvl 3
    Quick Hierarchical Level of Detail Tutorial

    HLODs is really a good way to optimize modular environments non-destructively.
    Unlike merging multiple actors to decrease draw calls, HLODs can do the same for you and you still can change your environment and add new details. HLODs can do more than that, but we're focusing on the auto-merge feature in this tutorial.





  • kelheor
    Offline / Send Message
    kelheor polycounter lvl 3
    Did a small research on anamorphic lens flares in UE4.
    I wanted to add it to my scene, but it looks like things are more complex than I thought.

    Quick summary:
    - You can't make it via image-based lens flares in post-process volume. Even more, those lens flares are extremely expensive, so I can't recommend you to use them.
    - You can implement anamorphic bloom via post-process material, but it won't be an ideal solution.
    - You can fake it via particle system (look for infiltrator demo) and even more, add complex materials and spawn logic to make it look properly everywhere.
    - But to make it really properly, it looks like you have to edit engine code and add this feature by yourself.
    - UE3 had a good lens flare editor, UE4 for some reason is not.

    Useful links:
  • kelheor
    Offline / Send Message
    kelheor polycounter lvl 3
    Testing morning lighting 





  • kelheor
    Offline / Send Message
    kelheor polycounter lvl 3
    Initially, I wanted to learn if it's possible to tune various inputs (like roughness) via post-process material. But then I just started to play with nodes in a random way and made this material (on screenshots I just tuned various settings).





  • kelheor
    Offline / Send Message
    kelheor polycounter lvl 3
    Summary of technical changes over the last couple of updates:
    - Meshes with cloth simulation and wind support were added
    - Proper auto-exposure support
    - Ray-tracing support (change API from DirectX 11 to 12 to activate it) with optimizations (checkbox in global lighting controller)
    - Parallax occlusion mapping for water
    - Post-processing volume parameters tweak (building look much better after fine-tuning AO)
    - New post-process materials (unsharp mask, letterbox effect, various stylized looks)
Sign In or Register to comment.