Forum Replies Created
-
AuthorPosts
-
So, let me see if I understand correctly… if the json values are identical it returns zero?
(I always forget what the “<=>” operator does…)Ok, caveman grade asset management & loading screen is up!
https://github.com/DoctorWhoof/Plane-DemoNow on to some more texturing.
Cheers.Aw, I didn’t see the post with the code and ended up making the asset loading screen in my own caveman style. Will take a look at this approach tonight and see if I can borrow some ideas.
At a glance, I’m still confused by “who-calls-what-in-which-order”, but I guess it’ll click at some point.
Thanks!
Ok. I’ll try something like:
- Start game, but don’t load anything yet
- On first frame, render a loading screen
- On second frame, load all assets while the loading screen stays there
- After it’s all loaded, the next frame will be rendered normally and the game will start
Cheers!
Airplane has been moved to the “Toy-Plane” banana project… still figuring out the best way to export stuff. One thing is certain: using Substance Painter for textures is a hit! Really cool blend of procedural and painted materials. Probably won’t use that custom material exporter in Houdini anymore, and will move all shading work into S. Painter.
I hope to finish painting textures in a week or two. Want some white stripes over the red paint, like a racing plane.
Current demo has improved controls and dynamic animation for things like rudder and ailerons.
https://github.com/DoctorWhoof/Plane-Demo
Current export methodology is:
- Export from Houdini as FBX with a temp material.
- Bring that into Substance Painter, then export multiple channels (Roughness, Normal, etc) to textures.
- Import FBX into Qtek Viewer, export GLTF from it (preserves animation)
- Load GLTF into Monkey2 code
- Replace materials using PbrMaterial.Load( path ) to bring all the textures from Substance Painter in a single line of code.
- The canopy alpha is set in code using Model.Alpha, since it’s not coming in the GLTF file (even when I fix it by hand adding the “alphaMode”:”BLEND” line.
Phew. Every time I update the model is a workout, which is a problem considering how often I revise things… Need to streamline! Being able to remove the Qtek viewer step would be great, but I still haven’t succeeded bringing an animated FBX into Monkey.
Cheers.
Toy-Plane banana. A 3D pipeline exercise using “vanilla” Mojo3d (no custom framework). Hope to be done with this one by end of February. Will include a fully textured airplane, a tiny island to fly around, distant BG environment and some sort of control limits that prevent you from flying too far or going underwater.
https://github.com/DoctorWhoof/Plane-Demo2D shader tests in Mojo, another educational project. Ongoing.
https://github.com/DoctorWhoof/Mojo-Shader-TestsWill post others (Serialization module, Json based GameObject module, etc.) as they become more usable.
Cheers!No idea why it’s slow on your end, but it doesn’t seem right. My laptop can usually run at 1280×720 without problems at 60fps, even when I select the intel HD graphics instead of the discreet GPU. Maybe your computer/drivers have trouble running OpenGL instead of DirectX?
“isnt deffered supposed to be faster than forward?”
Not sure about that, I think it depends mainly on number of lights. Forward can be faster for simple stuff on old hardware. Deferred can require a lot of bandwidth in the GPU, and some old cards (or mobile targets) may not deal with it very well, as far as I know.
Cheers.
Ah, ok. In 3D, the most common is to create your animation within the 3D application you’re using and simply export it to a format that supports animation. Swapping the models is not a usual technique.
If you’re just trying to load 2D images onto the same plane in 3D, this may help:
https://github.com/DoctorWhoof/spriteTools
The “AnimSprite” class does just that. You can load a sprite sheet and set the frame rate, specify which frames play in which order, etc. Sorry the example file is not helpful, I never updated it to demonstrate animated sprite frames… will try tomorrow night, if that interests you.
I run into a lot of performance issues with HighDPI on when maximizing or going full screen. If it goes away, it would be nice to have some sort of “Half-resolution” mode, or a fill mode that lets you specify the vertical resolution (and adapts the horizontal automatically).
We can always render to texture with whatever resolution you want, but it’s kinda bureaucratic for small projects / quick tests.
Checking for null kinda works, but is not ideal.
Sometimes you get null when there’s a file format problem, which is common when dealing with various 3d formats that are not entirely standard, like FBX and its multiple iterations over the years. In cases like that, it can take longer than necessary to figure out where the problem is (file name wrong? format error? typo? did I forget to put it in the right folder? etc.).
Ideally, attempting to import a non-existent asset should cause a specific errors, at least on Debug mode.
Cheers.Oh, and here’s the overly shiny test model, created using Houdini. Soon to be a Monkey2 Banana demo! I’m experimenting with baking all materials to a single material with mapped color/roughness/metalness.
Yet to be textured though, I wanna add some weathering and (normal mapped) rivets all over the fuselage like 1930’s race planes.

Small progress… Houdini Principled shader to Mojo PbrMaterial exporter almost done… here’s a glimpse at the output.

I stopped being lazy and booted up Windows… very fun! Super hard to avoid bullets and aim at the same time, though!
Congrats!
It’s possible that your model is too small or too big. Try using “ship.Mesh.FitVertices( New Boxf )” to fit everything into a 1x1x1 box, then place your camera accordingly ( moving to “0,2,5” is a good starting point, then “camera.PointAt( ship )” to point at model ).
-
AuthorPosts