3.4.0
This release of BBMOD mainly brings features useful for level editors. There is a new Gizmo module and the renderer now supports mouse-picking of instances and gizmos, as well as highlight of selected instances. Models and animation files now also have a minor version - this allows us to include additional data into the files, without requiring you to reconvert all your assets. Additionally, the camera now supports 360° vertical rotation and roll from side to side. All shader code was cleaned up utilizing the latest features of Xpanda.
Changelog:
GML API:
General:
- Further fixes of variable and argument types in docs.
- Removed all API previously marked as deprecated or obsolete!
Core module:
- Added new macros
BBMOD_VERSION_MAJOR
andBBMOD_VERSION_MINOR
. - Macro
BBMOD_VERSION
is now obsolete. - Added new properties
VersionMajor
andVersionMinor
to structsBBMOD_Model
andBBMOD_Animation
. - Property
Version
of structsBBMOD_Model
andBBMOD_Animation
is now obsolete. - Added new property
Model
toBBMOD_Mesh
. - Added new optional
_model
parameter toBBMOD_Mesh
's constructor. - Added new properties
BboxMin
andBboxMax
toBBMOD_Mesh
, which are the minimum and maximum coordinates of the mesh's bounding box. This is supported ony for model version 3.1! - Added new function
bbmod_set_instance_id
. - Added optional argument
_instances
to methodsubmit
ofBBMOD_RenderQueue
, using which you can submit only meshes with given instance IDs. - Added new property
ShadowmapBias
toBBMOD_DefaultMaterial
, using which you can control a range over which a material smoothly transitions into a full shadow. This is useful for example for volumetric objects. - Added new property
BaseOpacityMultiplier
toBBMOD_BaseMaterial
, which is a color multiplier ofBaseOpacity
. - Fixed method
Mul
ofBBMOD_Matrix
. - Method
destroy
ofBBMOD_Class
now returnsundefined
.
Camera module:
- Added new property
Roll
toBBMOD_Camera
, using which you can control camera's rotation from side to side. - Added new properties
DirectionUpMin
andDirectionUpMax
toBBMOD_Camera
, using which you can control the minimum and maximum values ofDirection
. These are set to -89 and 89 respectively, same as was the hard limit before. To remove the limit, use set these toundefined
. - Property
Up
ofBBMOD_Camera
is now obsolete, please use theget_up
method instead to retrieve a camera's up vector.
Gizmo module:
- Added new module - Gizmo.
- Added new struct
BBMOD_Gizmo
. - Added new macros
BBMOD_SHADER_INSTANCE_ID
andBBMOD_SHADER_INSTANCE_ID_ANIMATED
, which are shaders used when rendering instance IDs. - Added new enum
BBMOD_EEditAxis
, which is an enumeration of edit axes. - Added new enum
BBMOD_EEditType
, which is an enumeration of edit types.
Rendering module:
Renderer submodule:
- Added an optional argument
_clearQueues
toBBMOD_Renderer.render
, using which you can disable clearing render queues at the end of the method. - Added new property
RenderInstanceIDs
toBBMOD_Renderer
. When set totrue
, then the renderer renders instance IDs into an off-screen surface. - Added new method
get_instance_id
toBBMOD_Renderer
, using which you can pick an instance ID at given position on the screen. - Added new property
InstanceHighlightColor
, which is the outline color of selected instances. - Added new property
Gizmo
toBBMOD_Renderer
, using which you can add a gizmo to a renderer. This enables its automatic rendering and highlight of its selected instances. - Added new method
select_gizmo
toBBMOD_Renderer
, using which you can pick a gizmo at given position on the screen.