I must support non-uniform scaling and skewing, my main intention is use this engine as basis of modeling software and then I want to build a game engine on top of it later as second (or parallel) purpose.
To do that I need 4x4 matrix (or least 3x3) as local transform (if exists). But I can provide an option/configuration to switch to quaternion then non-uniform scaling and skewing will not be supported in this configuration, like this:
gk_opt_set(GK_OPT_TRANSF_ALWAYS_USE_QUAT, true);
Probably there will be one or a few indirect (pointer) function call cost in every frame. After finished implementing all features, I will try to eliminate all costs. In the end the user will decide what should be supported or not
16 hours ago, galop1n said:i even did not mention that you do not need full precision floats for a quaternion if you really want to push it ( i pack the TBN of my meshes in a single HALF4 + sign for example, other even encode it in 32bits total ).
Cool! I never used 16 bits float so added it to my and cglm's TODOs (https://github.com/recp/cglm/issues/15)
Does your engine is accessible on internet or in-house?