With HDRP now I think Unity has the best redering engine out there
Когда дочитал до фотки интерьера, почувствовал, как будто вернулся на пять лет назад в переполненную электричку до Киева в 6 утра. Это просто потрясающе атмосферно и вызывает все эмоции связанные с теми утренними поездками. Все это грустно-сонное настроение, спасибо за это флэшбек!
Looks absolutely gorgeous!
Pawel Stolecki did a little write-up about his experience as a “Substance guy” in a growing game studio.
My journey with 3D started quite early. When I was 16, to be exact. I decided to make use of my free time by learning 3d and from the start, I knew it is what l live for. Happily, after a not that long time of freelancing I’ve managed to start working full time, 2 months before my high school has officially finished. Now I am also part-time studying Graphics at the Institute of Information Technologies in Katowice.
What I really find useful from my past and contemporary days is that I am always curious of how things work, regardless if it’s exploring new software or a technique to achieve a particular effect, everything is interesting to me, modeling, texturing, VFX, animation etc.
Since M.O.R.E is our first project, there were loads of tools and solutions needed to be developed from scratch, I knew that it will require a lot of time spent on research to ensure that our modeling team(which I am also a part of) will have all that they need to achieve the look, that the players will appreciate. Being a technical artist to me is a constant pursuit of a knowledge and this is what I really admire.
One of the challenges that have arisen was that we had to develop a stable and texture map efficient pipeline, that allowed us to reduce the number of textures in a game without losing the quality. Here is what I came up with:
It all starts with an idea to blend reusable substance materials based on given color ID with an support of normal, ambient, occlusion map information baked from high poly. The biggest limitation I had to face was to use no more than 14 texture maps maintaining all the goods of PBR workflow.
The solution was to use every free RGBA channel possible. I store material masks inside RGB channels of color ID and use the alpha channel for optional Opacity map.
Splat map usually contains Ambient Occlusion and optional Emissive mask and what’s left is 2 free channels for special needs. They are usually used for altering color and roughness for example on edges, to create specular highlights. I also use material functions to break-up base-colors which store in its alpha channels roughness information. To make it work you have to make sure you pack roughness information into base-color before publishing substance material. This trick reduces texture map amount by one which is huge.
What’s more, I source all of my ambient occlusions from material and combine it into one single texture map by a script.
Stuff in Action
This allowed me to rapidly texture models with an advantage of Substance Painter’s mask generators and brush system. It also, for example, enabled me to create a complex scene in no time using only 3 materials with an option to constantly perform look dev by changing few parameters in a material instance
Heat Distortion Shader
The other interesting thing I would like to share with you is my heat distortion shader based on Screen Colour information. I source Screen Position and distort it by given Flame map information that I can pan. Flame is in 2 different forms, one that is tiled multiple times and moves with changing speed, and pretty slow big one
This allows me to break up the effect and also, for example, make nice animations.
What’s more, I use vertex position to determine the strength of the effect to create a gradient from bottom to the top. This is also used to determine the UV distortion level on the flame pattern.
The next move is to add a small refraction effect which is fairly simple.
I source screen position after being it distorted by flames and adding or subtracting the number from the x/y/z component leaving the other 2 unchanged. The result is that only single part moves and I can separate the reds blue’s and green’s. I do it for all 3 channels and combined the effect which I then I can tint if needed and this is the end result.
Different worlds to discover
It is crucial to continue learning new techniques and branches of technical art.
One day you may find yourself writing a shader for a heat distortion or planet in outer space with atmosphere rim lighting etc, the other day you will be writing a system that generates ship modules based on exposed parameters in order to accelerate the production.
Variety of tasks
As a technical artist in Gamgoo, I am responsible for a lot of different subjects, what is to be said that there is no room for routine.
At the start of the production, I was mostly responsible for creating core shaders, pipeline solutions.
Now mid-way publishing I mostly focus to deliver materials, create mesh generators and customize shaders for races needs.
The different side of being a Technical.
As a tool developer, I also have to ensure that the people are confident working on it and if not spend some time explaining.
The experience obtained during a freelance time and have tried all sorts of 3D is really helpful because no matter who you talk to, you usually will find common ground which is crucial in this kind of work.
This helps to communicate and naturally, it is so much easier to enhance or explain the process you have actually gone through multiple times before. The knowledge how the artist perceives the process and what are his needs makes me Technical but also an Artist.
That’s why I think every Technical Artist should experience the process he wants to alter.
Being a technical artist is a great journey for people willing to constantly gain knowledge.
Even though you may find yourself being an expert in few subjects, you will quickly notice that the more you know the more there is to be learned and there is no stopping in this process.
Passion is the key
If you are interested in more detailed images of the workflows I’ve presented find me here.