Skip to content

VincentGsell/FMeX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FMeX

FMeX (or Delphi FMX Extended) is a set of classes designed to optimize the performance and usability of the FMX library. FMeX is compatible with Delphi 10+

History

  • 20200601 - Demos fixed and tested on mobile (10.4 (android32/Ios64)
  • 20200304 - New Perlin's noise 3D "voxel" Demo (early)

Main features

  • Introduces TeCustomMesh, with "MergeFrom" method, for merging FMeX Mesh together into on and single Mesh. (Draw Call optimization)
  • FMX compatible
  • Show techniques to achieve good performance within FMX, with merging Ticks, and animation
  • Cadender, to control precise animation cadence (slow down motion, speed up, back to normal) (see Particle demo)

Dependancy :

  • GS.Core
  • Gx (TEMPORARY)

Author's Note :

As a "learning" base, if you find this lib cool, please "star" it ! It's free, and help to reference code, as well to make it more visible.

Exemples

3D Perlin's noise Demo.

Alt text

Obj Loader (Work in progress)

Attempt to replace the OBJ FMX loader which has some problem for loading large file (perf(!) and materials behaviour)

Alt text

Alt text

Spine Loader (Work in progress)

Attempt to adapt an existing Spine loader. (esotericsoftware.com) -> Used cool unit form Dan (dan.soft.studio "a_t" gmail.com): -> After compile, please put goblins.xxx and goblins-[anim].xxx into binary dir. This is a test only, and certainly spine had no futur application in FMeX.

Alt text

Merged Mesh

As a TeCustom.MergeFrom(...) capabilities, see Stress Cube demo. With a less than a middle class usual SoHo desktop PC computer, thousands of cube limits could be reached. It could be a good base for a Cube Voxel Engine. Note that is is a raw rendering, there are no geometric optimization at all. And it need it. :)

Alt text

Merged Mesh in a real case

this example implements a 2d particle rendering : Logic side is processed on CPU, and rendering side prepares all Particles in large Merged Mesh, which is manipulated runtime by CPU, and drawing in one "low level" call. (see FMeX.Particles2D.pas)

Alt text

Releases

No releases published

Packages

No packages published

Languages