Author Topic: Objreader64 Version 5.00  (Read 160 times)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 2027
    • zapsolution
Objreader64 Version 5.00
« on: October 12, 2026, 06:12:02 pm »
ObjReader 5.00 - sneak preview

Skeletal animation comes to OR

Until now, OR animated meshes with its own .mtl directives (#rotate, #pulse, #inflate, #move...).
Version 5.00 adds true bone / skin animation, the same kind you see on Sketchfab,
fully computed on the GPU, while keeping the Wavefront spirit of OR.

How it works
  • orbtool converts an animated .glb into the usual .orb + .mtl, and when the GLB has a skin, it also writes a small sidecar: <model>.mtls (material skin)
  • The .mtls holds the skeleton, the vertex weights and all the animation clips, LZNT1 compressed
  • The .mtls file is the switch: when it sits beside the .orb, the model comes alive; remove it and you are back to the static model
  • It never interferes with the existing directives nor with the Animation checkbox

Animation > Skeletal Animation
  • The first clip starts automatically, as on Sketchfab
  • The submenu lists every clip found in the file (Mixamo Walk, Idle, Running... for the astronaut)
  • Pause holds the current pose
  • New global directive to choose the starting clip:
Code: [Select]
#skeletal 2

Works everywhere in OR
  • All render modes: Blinn, normal map, inspection, Minnaert, Gooch, Toon, X-ray, fancy texture modes, wireframe overlay
  • Audio sync, .shc and .fs backgrounds
  • Export .ORB to .MTL/.OBJ now keeps the animation: the exported .obj and the .orb rebuilt from it walk exactly like the original
  • Reload model works as expected

Shader backgrounds: save the view
  • New File > Save shader pose to mtl file (enabled only while a .shc background is running)
  • The shader orientation (iMouse) is stored in the .mtl, independent of the window size:
Code: [Select]
#wallpaper @73tGzB.shc
#shaderpose 0.2315 0.3860
  • It is restored at load, with or without MouseON

Still OR
  • Native C/C++, Win32 SDK
  • The whole skeletal animation engine (CPU bone evaluation + GPU skinning + menu) adds about 10 KB to the binary: OR 5.00 weighs 335 KB
  • Totally optional: models without a .mtls behave exactly as before

Test lab: the Mixamo astronaut (538,589 vertices, 72 bones, 3 clips), walking in front of an audio-synced .shc sky.


Download the Sneak preview

Unzip, then use RunMe.bat


« Last Edit: October 12, 2026, 06:18:35 pm by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 2027
    • zapsolution
Re: Objreader64 Version 5.00
« Reply #1 on: October 15, 2026, 08:44:53 am »
ObjReader 5.00 - What's new



SKELETAL ANIMATION (new)
  • Bone / skin animation for Wavefront-based .orb models, computed on the GPU (works like Sketchfab).
  • New sidecar file <model>.mtls ("material skin"): skeleton, vertex weights and animation clips, LZNT1 compressed.
  • The .mtls file is the switch: present = animated, absent = static model.
  • Totally optional: models without a .mtls behave exactly as before; never interferes with the existing .mtl directives (#rotate, #pulse, #inflate, #move) nor with the Animation checkbox.
  • Animation > Skeletal Animation menu: one line per clip found in the file, plus Pause. The first clip starts automatically.
  • New global .mtl directive:
Code: [Select]
#skeletal n   (1..n, clip to play first)
  • Works in every render mode: Blinn, normal map, inspection, Minnaert, Gooch, Toon, X-ray, fancy texture modes, and the wireframe overlay (skinned lines).
  • The whole engine adds about 10 KB to the binary.


ORBTOOL (GLB -> ORB converter)
  • Reads skins and animations from .glb files (joints, weights, inverse bind matrices, clips).
  • Writes <model>.mtls automatically whenever the .glb has a skin (no command-line switch).

EXPORT .ORB TO .MTL/.OBJ
  • The export now keeps the skeletal animation: <target>.mtls is written beside the .obj.
  • Loading the exported .obj animates it; the .orb that OR then builds from it gets its own .mtls, so Reload works too.

SHADER BACKGROUNDS (.shc)
  • New native SHC renderer, synchronized with the same audio as the 3D model.
  • Old .fs animated backgrounds are converted to .shc on the fly: existing projects keep working.
  • Drag and drop of .shc files and of any audio file, on the fly.
  • New File > Save shader pose to mtl file (enabled only while a .shc background runs).
  • New .mtl directive:
Code: [Select]
#shaderpose x y   (shader orientation, kept in any window size or full screen)
    Restored at load, with or without MouseON.
  • Fix: no freeze when switching shaders while a video shader (WebView2) is playing.

COMPATIBILITY / FIXES
  • Intel GPUs: model shaders no longer fail to compile.
  • No more silent crash on exit (0xC015000F), fixed in WinLIFT64.dll. Also fixes every other WinLIFT-based application.
  • Double-click on an .orb file in Explorer loads the model again.
  • Cleaner exit: OpenGL resources released while the windows still exist.
  • Sync timer no longer spins a CPU core when idle.
  • ListViews: last row no longer truncated, no more horizontal scrollbar.

SIZE (byte hunting)
  • CRT and STL removed from ObjReader.
  • Binary from 536 KB down to about 335 KB, skeletal animation included.
Special thanks to UEZ for testing on Intel hardware and for spotting the silent crash on exit.
« Last Edit: October 15, 2026, 09:37:47 am by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)