Flix - Procedural training and Movie making

Yeah I know what you were both talking about, I was referring to the go node madness which I know kills perf quite a bit :slight_smile:
Technically I can do some automated mesh collapsing too. Where I can get nodes collapsed on load by pushing down the transforms and ending up with much fewer meshes too. I did test doing this in the past, and its a good/quick win.
Also, I had looked at doing an instance shader too (since my shaders are custom anyway :slight_smile: ). I did this with the world renderer I did, by passing in instance data as a texture - very messy but doable.

On another update note. The ozzanim lib is in and loading gltf anims nicely with a full ozzanim hierarchy. Will look at using a custom shader for anim tomorrow and see how that goes.

Out of this work I expect to update a couple of libs:

  • geomextension will become alot more friendlier to creating meshes without the silly pool.
  • defold-nuklear ui (have been updating that as I go atm).
  • ozzanim - this will be a new lib that people can use to load anims via gltf, glbs. will obviously need shaders or some api to hook into current defold anim (not looked at that yet, since I need runtime).
  • gltfloader lib - all lua based with some reliance on geomextension.

Hope to get these updated in around a week once the base Director and Act interface is working.

Are you applying frustum culling on your meshes?

1 Like

I forgot to mention perf. This is on a PC with i9 and 3070 GTX. Its also not a release build :slight_smile: So its not overly a relevant question/note/points. In fact I generally do not optimize up front until I have all the key design elements in and working. 99% of the time perf is about design and not render stats.

Once I have a release that looks ok, I’ll pop up the gpu/render stats. Atm, theres not alot of point.
I was impressed, because I expected the scene hierarchy to kill Defold :slight_smile:
Theres alot of features to come for flix, so Im not really worried about it atm.

Thats a big nope :slight_smile: Thanks (adds to design doc )
I’ll add that in. That will def make a huge improvement, as as mentioned dont really wanna side track too much with unimportant things atm. pre-emptive perf improvement is something Im extremely wary of.

Note that we don’t make a difference between debug/release builds in terms of performance. They are all built with ”/O2”.

Oh? Thanks. Didnt the editor build with debug. In the past (like with the biosim project) there were substantial differences in building a runtime vs running in editor? This is no longer the case? Do you have to explicitly build a debug now?

Ok. I add this, because it was literally one line of code (since the gltf has a minx max for its primitive buffer). And thanks for that, because it really made a huge difference (30-60 now). Appreciate the tip.

This why I kinda wasnt overly worried. Theres alot of things you can do in need of improving how something renders. But for a simple fix like that. Too nice. :slight_smile:

1 Like

The alpha mask issues were really annoying me. Now the carparks and trees look right :slight_smile:


And thanks again to @britzl for the one liner that make this much nicer to navigate :slight_smile:

6 Likes

Nothing’s changed. We still have a debug flag, which enables logging.
In terms of “building”, you will get an engine from the extender server. And we use a release app manifest to control which extra helper libraries should get added to the engine: engine_service (web server), profiler and recorder.

However, all compilation/linking is still done with /O2, so they’re all optimized, and they have the same performance. It’s part of our philosophy, to have good performance throughout the entire dev cycle.

I hope this helps clear things up.

Thanks. I must be getting old and senile :slight_smile:

Setting Default Texture Min Filter to linear mipmap linear, should clean up the image quality and also improve performance (assuming mips are also generated). Looking great so far though, most advanced 3D I’ve seen in Defold so far.

Little update. Director and Scene panel well underway. Hope to have working Director by Wed.

1 Like

Its not running any AA or sampling. :slight_smile: Again, not really concerned. Function first :slight_smile:

Remind me again, which UI framework are you using? It was something other than Dear ImGui right?

Nuklear - GitHub - dlannan/defold-nuklear
Ive made this initial extension for it. It doesnt do any hw accel (it can, but Im using CPU based buffer rendering). The main reason I use it is that I had problems with imGui running drawing commands in html. I think it has some nicer features, but its also missing some things imgui has (which Im putting in the extension).

3 Likes

Little update. Have taken a little longer due to the addition of embedding a web server so I can interrogate the tiny-ecs entities while running. Sample screeny.

WIll make a tiny-ecs extension project sometime soon in case people are interested in it.

4 Likes

So it’s something you can use to make an in-game cutscene?

Yeah. sorta :slight_smile: You will be able to make movies with it for sure. But its a little more weird, because you can develop movie like scripts (Acts, Scenes etc) but with branching and event based control. So another output will be an exe (this wont be available on mobile, it will have a runtime server that you will publish to), and run the exe, and have people interact with the movie in a number of forms (key input, movement, voice etc) - these are stretch goals btw, but features I have implemented previously in ptt’s.

Hope that makes sense. For budding movie creators, and maybe youtube and similar content creators wanting to develop a script with camera controls, entity control and script movie flow for scenes, it will be a handy prototyping tool (I hope! :slight_smile: ). Will be getting it in the hands of some script writers I know.

Flix will also be able to output an actual script (in movie script formats) with the video. So as to make peoples potential marketing of their movie ideas much easier too. Its a very niche space.

This will be the free application. The commercial one I will be selling to procedural training companies that have a need for a tool like this to be able to train people in tasks. Mostly in safety, hazard, mining, and mill type training applications.

Another update. Lots done on the ecs side, with entity control and management almost complete. The Acts and Director should be functional tomorrow, so I should be able to make my first movie on the weekend (might put in some nicer assets :slight_smile: ).


The debugger has been so dang handy, not sure why I didnt do this in other projects :slight_smile:
Anim is in, but still not rigged (time… will get to it soon). Really want to be able to run Acts, Scenes…and animate commands on objects this weekend. will see. I suspect that might not happen till midweek next week, usually need to do family things over weekend :slight_smile:

Very happy with progress tho. And I think people will like the ecs extension once I package that up.
Note: I should point out the Tiny ECS debugger is a live tool. It updates roughly every second, and allows editing and monitoring of the ecs world - and I really should get an artist to make it look nice once its ready for consumption :slight_smile:

5 Likes

Ok. Very quick update. Close to making first movie.
Added @d954mas and @astrochili excellent illumination and new illumination package:
< GitHub - astrochili/defold-illumination: Ready-to-use forward shading lighting extension for Defold >
< GitHub - d954mas/defold-illumination-new >
This means lights and shadows are going to be a little better (still integrating with my pbr).


And some night lights. Spot and point.

Lots to fix/improve. Will hopefully post a vid tomorrow of a many number of features. :slight_smile:

8 Likes