Feature Preview: Material Editor

Welcome to the new Flax Facts! There was a small break but we’ve done a lot of good stuff meanwhile.
New C# Editor starts to look great. In fact, it has all the good features from the old C++ version plus many new useful things.
Now we’re working on Custom Editors feature which is a great way to enhance your game development experience by extending Flax Editor for your need.
It’s gonna be a way better than Unity. Here you can track changes live.
Anyway, today is time to show and tell you more about our materials editor so let’s do it!

The surface

What are the ways to create and edit materials in game engines you know?
Unity has shaders code writing and material properties editing via inspector window.
Unreal has materials graph editor.
Xenko has properties window to edit material structure.
But what about Flax? We use something similar to UE4.
In fact, our materials editor is in the engine for quite long (3-4 years) and it has been already proven.
It’s node-based surface graph editor where the user can very easily and quickly achieve almost anything.
Like on the gif below, just right click and spawn new nodes. You can also type to find nodes you want.

material nodes spawning

Simple but powerful

What can you do with it? From the simplest diffuse material through complicated multilayer surface to post effects.
Every material can contain a custom collection of various parameters.
They can be accessed from code (here is API).
And of course, we have material instances which are used to duplicate material but with different parameters values – it’s super useful. Artists just love it!
Yeah, it’s really a super tool and a great piece of engineering.
But let’s show you that stuff, here are some examples of different materials:


Future improvements

The editor itself is fine. It’s quite stable because it has been used for a long time.
Now we need to expose more API for it like creating custom post fx and rendering post fx material manually using GPUContext. Also, there is a lack of undo/redo so removing nodes is a little risky 🙂 But I think there a plenty of room to improve like material functions and static switches. I hope our community will help at some point with it especially when the whole editor is now open source.

Anyway, I hope you liked this feature. I’m really looking forward to the alpha release so you could use it but for now – wait for another Flax Facts!
Bye! 😀

Wojciech Figat

Lead Developer


Kuba · July 28, 2017 at 5:10 PM

Is UI written in QT or sth else?

Leave a Reply

Avatar placeholder

Your email address will not be published.