This major release of BBMOD focuses on modularity of the GML library, increased animation playback performance and support for advanced rendering pipelines.
-oa) using which you can configure the animation optimization level.
-sr) using which you can configure the animation sampling rate (fps).
3. It is not possible to load
*.bbanimfiles from previous versions.
BBMOD_SprCheckerboardand removed its subimages except for the first one, which is the checkerboard texture.
BBMOD_DLLusing which you can configure the animation optimization level.
BBMOD_DLLusing which you can configure the animation sampling rate (fps).
BBMOD_VertexFormat.get_byte_size, which retrieves a size of a single vertex using the vertex format in bytes.
BBMOD_VFORMAT_DEFAULT_BATCHED, which are the default vertex formats for static, animated and dynamically batched models respectively.
BBMOD_EMeshinto a GMS2.3+ struct
BBMOD_Mesh. This is a
BBMOD_VertexFormatthat the mesh uses.
BBMOD_ENodeinto a GMS2.3+ struct
BBMOD_Node, which is the parent of the node or
undefinedif it is the root node.
BBMOD_Node, which tells whether the node or any node down the chain is a part of a skeleton. This is used to increase performance of animation playback.
BBMOD_Node.set_skeletonusing which you can mark a node as a part of a skeleton node chain.
BBMOD_Node, which tells whether the node or any node down the chain has a mesh. This is used to increase performance of model rendering.
BBMOD_Node.set_renderableusing which you can mark a node as renderable.
Shaders and materials:
BBMOD_Shader, which wraps regular GM shader resources.
BBMOD_Materialnow accepts a
BBMOD_Shaderinstead of a regular GM shader resource.
BBMOD_PBRMaterialwhich inherits from
BBMOD_Material. Moved PBR-only properties of
bbmod_get_materialswhich returns an array of all existing materials.
BBMOD_Material. This property determines the order of materials in the array returned by
BBMOD_Materialusing which you can configure texture repeat for the material.
BBMOD_Material.set_priority, using which you can change the
Priorityproperty of a
BBMOD_Material, using which you can control its texture coordinates within a texture page.
BBMOD_Material.applynow returns the
BBMOD_Material) instead of a boolean.
BBMOD_Material.copywhich copies the material's properties into another material.
BBMOD_Material.set_base_opacityusing which you can change the material's base color and opacity using floats.
bbmod_material_on_apply_default. Setting shader uniforms and textures is now taken care of by the
BBMOD_SHADER_DEFAULT_BATCHED, which are the default shaders for static, animated and dynamically batched models respectively.
BBMOD_SHADER_PBR_BATCHED, which are PBR shaders for static, animated and dynamically batched models respectively.
BBMOD_MATERIAL_PBR_BATCHED, which are PBR materials for static, animated and dynamically batched models respectively.
BBMOD_Material. This property is a list of
BBMOD_RenderCommandstructs that use the material.
submit. This method still immediately draws the model.
BBMOD_StaticBatch, which enqueues the model for rendering.
submit_object. This method still immediately draws the dynamic batch.
BBMOD_DynamicBatch, which enqueues the dynamic batch for rendering.
BBMOD_AnimationPlayer. These are shorthands for
BBMOD_Material.submit_queueusing which you can submit all its render commands.
BBMOD_RENDER_SHADOWS, which is a flag used to tell that a material is rendered in a shadow pass.
BBMOD_EBone. Animation data is now stored in a more optimal way.
BBMOD_AnimationPlayer. All frames are now precomputed.
BBMOD_Animationusing which you can check if the animation supports node attachments, bone transformations through code and transitions respectively. This is determined by the optimization level of the animation.
BBMOD_AnimationPlayerusing which you can retrieve a node's transform from the last played animation frame.
BBMOD_AnimationPlayerwhich is the last played animation and whether it loops respectively.
BBMOD_AnimationPlayer. The animation player now remembers the last played animation and if a different one is passed it automatically transitions into it. This also triggers a new animation event
BBMOD_EV_ANIMATION_LOOP, which is an event triggered by an animation player when the animation played loops and continues from the start.
BBMOD_Animationusing which you can add a custom animation event triggered at a specific frame.
Camera and renderer:
BBMOD_Camerawhich implements both first-person and third-person camera.
BBMOD_IRenderablewhich defines an abstract interface of renderable objects. These can be rendered in the
BBMOD_Rendererwhich implements a basic render pipeline. This struct can be inherited from to define custom render pipelines.
Mesh builder and model importer:
BBMOD_MeshBuilder, using which you can create BBMOD meshes through code.
BBMOD_Importer, which is a base struct for model importers.
BBMOD_OBJImporter, which is an importer of
BBMOD_NotImplementedException, which is an exception thrown in methods that do not have an implementation (generally in methods of abstract interfaces).
Third-party libraries support:
bbmod_model_to_colmeshusing wich you can add
BBMOD_Models to TheSnidr's ColMesh, a popular library for 3D collisions.
Copyright © 2023, BlueBurn. Built on September 11, 2023 using GMDoc.