UPBGE is very active - a fork of bge with enchanced phyiscs, rendering, and workflow additions. enchanced mesh editing w/ BVH_Tree_From_KX_MeshProxy() https://github.com/UPBGE
Setting the light in the Unreal Engine 4.20 is quite good, with many different types of lighting duck life
Stylish Water Shader 2.0 for Unity with many great features, I enjoyed this new application run 3
Kyle Hall gave a detailed breakdown of his lovely environment, which features some very neat lights and beautiful colorful skyboxes.
I grew up in the Middle east with my family – despite being born in Canada. We moved around a lot, and never settling down has definitely lead me to my current position as the manager of a youth hostel in Ottawa – Canada’s capital. It’s great, I have a lot of time to work on my art projects, and I get to meet plenty of inspiring characters. Every now and then I get lucky and an artist passes through.
I graduated from Full Sail University in Orlando, Florida. My father had heard of his friend’s son attending, and so helped line everything up for me to get there. I met a bunch of great artists and developers at University, and have worked with some on a few little projects since graduating. But I mostly work on my own pieces, pretty much every day.
When I started planning this project earlier this year, I knew that I wanted to create a scene that would challenge both my hard-surface and organic modeling skills. I then considered how I could make these two elements clash in an interesting way, and came upon the idea of an undiscovered stonework portal being kick-started by some technophile explorers.
I find it really important to get inspired during the early stages of a project. I surrounded myself with images, stories and music that made me feel like I was a part of the universe I wanted to create. Pinterest was really useful for this part, and I collected almost two-hundred images that helped shape and solidify my ideas.
If you’re interested, you can check out my project board here.
The first thing I did in-engine was the grass and some other ground plants. This isn’t because it was a logical place to start – although it did end up giving me some direction – but because I was just still considering where I wanted to push the scene. Sometimes it’s important not to get stuck, so I chose to just ‘do’. The landscape was very basic at this point. I ended up creating a new level file at a later stage.
After that, I created a very basic atmosphere and lighting direction, and started to concept my centerpiece.
As the environmental rocks and portal rocks are the same asset, they came next. I did a bunch of daily sculpts to try and reach a level of quality that I was happy with. Once I was close enough, I found some reference and hit the road. There are only two main rocks in my scene.
Once I had sculpted my high/medium-level details, I left the rest to be done by my tiling rock material in Unreal 4. This material was generated from a tiling image passed through Substance Bitmap2Material. I used this software package a lot during my project as I find that it hits a good level of quality – fast – and is easy to work with. Of course, I passed the textures through Photoshop too, in order to add some elements I felt were missing.
The rock material itself is pretty fun. There is a main material function that uses the tiling albedo, normal and splatmap (roughness, height, ambient occlusion) that makes use of the world-aligned moss function. And then there are three separate materials (both rocks and the portal’s “antler”-like frame) that call this tiling rock function and perform changes based on masks created for each individual model. These masks helped to add cavity dirt, edge highlights, occlusion colour, and object-space hue changes.
By using tiling maps instead of producing a map set for each rock, you actually end up using less texture space overall – boosting performance, and you get crisp texel density for all rocks – no matter how big you scale them. So worth it!
As for my other materials in the project, most are kept within their respective asset.
Material Instances and Dynamic Parameters played a large role in my project. If you have one material and three instances of it, you are only executing the shader once – which is great for performance. They are also excellent for tweaking on the fly, and this is really important set-up for the later stages of your project!
The Gateway you see in the scene is actually an iteration of a previous design. I wasn’t satisfied with the early product of my first design and so I went back to the drawing board. I had read a few enlightening design articles around the time and was working through a fantastic book on the compositional elements of colour and light (aptly named ‘Color and Light’, by James Gurney). The issue with my piece was that it didn’t feel as if it had been forced out of the earth, but rather felt constructed. My gate needed to appear more mystic than something a living creature could create. It needed to embody the sadness of someone being trapped on the other side. This lead to the teary, accented eye shape. I remember hearing somewhere online that, “every element of your artwork should bleed the narrative you are trying to convey. That’s how you tell a real visual story.”
As for its construction process, the gate is made of my earlier created two rocks and the additional “antler” mesh. I bashed the rocks in-engine to create something I was happy with, iterating upon it several times whilst designing other aspects of the scene. Then I exported the rocks to Maya, placed a floor plane and used camera-based selection to remove all non-visible faces. I now had the issue of unnecessarily high polygon density in the smaller copies of the rocks, but this was solved with a Maya plug-in called ‘Polygon Cruncher’. It keeps your UV layouts but removes unnecessary geometry based on mesh size. Bingo. This whole Maya process brought the triangle-count from somewhere over 100k to just over 17k, taking only twenty minutes!
There’s also some overlaid moss geometry, using the same masked & layered method as in ‘Ryse: Son of Rome’. It’s essentially four sheets of geometry, stacked, with the bottom layer having the least transparency and the top layer having the most. This gives the moss a little fuzzy pop! You can mess with the ‘FuzzyShading’ material node in Unreal to enhance this effect, and add a ‘TemporalAADither’ node plugged into the ‘Pixel Depth Offset’ output to help with surface blending. If you’re interested in learning more about this method, one of the artists from Ryse broke it down in a Polycount thread, and it produces great results!
Having a charming skybox was always on my to-do list, as your sky is half of your scene. I think that it is important to show that there is more to a world than just the areas you can reach. In ‘Halo’, Bungies’ skyboxes give the player the feeling that although they have the power to change their surroundings, there are still jobs out there that are too big for them. It seems to put the player in place and add an element of mystery. Halo was a big inspiration to me during this project.
Lighting and Effects
After deciding I wanted to go with a dusk setting – for dramatic lighting and long shadows – I found a sky panorama that had enough clouds to add some interesting accents to the blue. I used this to create a 360° cloud-ring to enhance the horizon, and a few individual cloud cards that used ‘Parallax Occlusion Mapping’ for pop, and UV distortion for subtle movement. There’s also a masked and dithered cloud in front of the sun to cast a three-dimensional vignette through the fog and onto the landscape.
The planets were created using massive spheres and texture maps from the NASA website. The spheres you see in my scene are actually in-between the landscape and the skydome. Although this isn’t physically correct, it seems to be one of the better ways of pulling off the effect as it does give the illusion that they are beyond the atmosphere of your scene. Your fog actors will also play a huge role in pushing these skybox elements into the distance.
By using a ‘PixelNormalWS’ node, you can get all of your sphere’s positive facing normals (half of the sphere) and find the dot product of that and a dynamic three-vector (your sunlight direction). This function is used to make one side of the sphere fully transparent, whilst the other shows off your textures. Add some Fresnel emissive – acting as bright atmosphere – and some scrolling clouds, and you get your planet! Make sure this material is set to unlit, as this is a faked effect.
I was very excited when the volumetric fog feature was released during my scene’s construction. My height fog makes use of this feature, adding a ethereal pink hue to the landscape. But the main implications of volumetric fog are the three-dimensional light-shafts and their occlusion. These features allow large objects to cast gaps in the lit fog, with a dramatic punch.
The scrolling floor fog you see also makes use of the volumetric feature. I have been following the blog of Epic Artist Ryan Brucks recently, and noticed him experimenting with the possibilities of this new fog (which I believe he played a part in making.) I ended up rebuilding his fog pocket shader and made some minor tweaks to make it roll over my landscape. You can find more information by visiting his blog, ‘Shader Bits’.
One great tip he mentions when playing with volumetric fog is to use one very large particle, rather than hundreds of smaller ones. My earlier fog versions had a few frame-rate issues, and it was because I was voxelizing the same space for every individual particle. This paired with overdraw can wreak havoc on your performance.
The gateway has a number of VFX aspects, but the dripping orb and its background distortion seem to have the most visual impact.
I felt that having a pupil was pretty necessary in my eye-like portal design, and so was born the liquid orb. The small spherical particles flying towards the center were inspired by iris freckles, and add a sense of attractive power to the orb. The orb’s material is very similar in structure to a water shader – using scrolling normal maps, highlighted Fresnel edges, and subtle movement through the ‘World Position Offset’ output.
The background distortion was also made using scrolling normal maps, however, these were used in tandem with refraction to add the rippling effect over a translucent, half-sphere mesh.
All in all this project spanned from Spring to the end of Summer. Some of this length can be attributed to a few redesigns and cut assets, and the rest to the amount of time I was putting towards picking up shader knowledge and going back to basic art theory. I feel that fully understanding the basics of composition, colour, and light helps to give your work more flare, as you learn how to capture and bend reality to your vision.
This scene helped me learn a lot about project management. Since finishing my previous project, I knew that I had to brush up on my organisational skills. This time, I used an online to-do list, ‘Trello’. I think that when you have a large scale project it is important to break everything down into simple tasks and figure out what will have the most impact on your scene, and how long it will take.
Thank you very much for the interview! I hope that everyone can gain something from the work of my past few months.