Node based material editor


Looks impressive ! You obviously put in a lot of work there. Plan to release it ?

Yes. One day it will be opensource. Currently it only works with opengl 2. We plan to release it when we finish support for glsl and hlsl. I can provide access to early build for a feedback.

1 Like

What did you use for UI?

WPF + UrhoSharp for preview. There are plans to make it crossplatform with AvaloniaUI.

1 Like

Can I ask you what is the node editor you used in WPF?

How did you achieve runtime material modification?
just change the values of an existing material object (sometimes i get confused doing so)
or discard the existing object and instantiate a new one?

The editor generates material.xml, technique.xml and shaders in background. Then it calls to update the runtime.

1 Like

Custom one. I’ll release it as a nuget package later. It is also suitable for scripting if you are interested in it :wink:


I using and it’s have lot of problem and also it’s have memory bug from reactiveui . so modified that lot and i removed reactive ui but still that you did it’s really nice it’s have grouping it’s really nice.

An early version is avaliable via by invite. Drop me a message if you want a key.
Some limitations of the current version:

  • desktop OpenGL only
  • forward render only, per pixel lighting only
  • bugs are expected
  • there are no guarantees that the graph you make will be compatible with the final version. Although I made some safe checks so you can always “upgrade” it manually.
1 Like

Perfect. It’s working really nice. GOOD JOB :+1:
DirectX working much much better with WPF. because WPF is running over directx.
There is a bug in ReactiveUI it’s leaking memory and i saw it’s effecting your project little.
You need to open menu and submenu lot of times and watch the memory or add lot of nodes and remove them you can see memory will not release after that. Dump memory with visual studio i’m sure you will see lot o IDisposable and ReactiveUI classes. :wink:

Actually I removed ReactiveUI finally and it’s much faster and no more memory leak. Our application should be run on embedded devices so we are limited on memory that why I found it’s good to don’t use ReactiveUI.

I only use ReactiveUI to throttle user input. Shouldn’t be that bad. Otherwise there is a custom commands and the base node graph implementation doesn’t have any fancy dependencies.

Anyway I’ll run it under profiler later when the architecture gets stable.

1 Like

Nice. then it’s easy to move from that. really nice. i going to test the new one on my scenes

@glebedev I didn’t success to load my scenes because i have 2 folders.

    DesktopUrhoInitializer.AssetsDirectory = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, @"../../Assets");
    var options = new ApplicationOptions("Data;Machines")

I didn’t know it’s possible! :slight_smile:

Ok, I need to do something about it…

If programn not run, you must manually C: \ Users \ ____ \ AppData \ Roaming \ Urho3DMaterialEditor change settings or delete folder

@glebedev Is there a Linux version available?