| Release 2015-05-09 |
This topic contains the following sections:
Release notes Memory leak in MonoGame
A critical memory leak in MonoGame has been fixed. The problem was caused by the following methods:
-
VertexBuffer.GetData
-
IndexBuffer.GetData
These methods pinned the data arrays and thereby prevented these objects from being garbage collected.
The following DigitalRune methods were affected by this bug:
Weighted blended order-independent transparency
A new sample demonstrates weighted blended order-independent transparency,
which is a technique for rendering transparent objects. In contrast to traditional
alpha blending, it does not require geometry to be rendered in sorted order (back-to-front).
Figure 1 shows an opaque tank model (reference), the model rendered with alpha blending (α = 0.8),
and the model rendered with weighted blended order-independent transparency (α = 0.8).
Triangles are submitted unsorted, which results in wrong visibility when using traditional alpha blending.
(Note: The shader used during weighted blended order-independent transparency uses a different lighting model, therefore the shading does not match exactly.)
For more information:
-
McGuire and Bavoil, Weighted Blended Order-Independent Transparency,
Journal of Computer Graphics Techniques (JCGT), vol. 2, no. 2, 122--141, 2013.
Available online http://jcgt.org/published/0002/02/09/
Documentation
The documentation is now generated using the latest Sandcastle presentation style.
Change log General
-
CHANGE: Documentation uses latest Sandcastle presentation style.
DigitalRune Geometry 1.17.1
DigitalRune Graphics 1.0beta2
-
NEW: Support for processing additional texture formats.
Formats supported in previous release:
-
R32G32B32A32_Float,
-
R8G8B8A8_UNorm,
-
R8G8B8A8_UNorm_SRgb,
-
R8_UNorm,
-
A8_UNorm,
-
BC1_UNorm,
-
BC1_UNorm_SRgb,
-
BC2_UNorm,
-
BC2_UNorm_SRgb,
-
BC3_UNorm,
-
BC3_UNorm_SRgb,
-
B8G8R8A8_UNorm,
-
B8G8R8A8_UNorm_SRgb,
-
B5G6R5_UNorm*,
-
B5G5R5A1_UNorm*,
-
B4G4R4A4_UNorm* (* loading only)
Formats added in this release:
-
R32G32B32A32_UInt,
-
R32G32B32A32_SInt,
-
R32G32B32_Float,
-
R32G32B32_UInt,
-
R32G32B32_SInt,
-
R32G32_Float,
-
R32G32_UInt,
-
R32G32_SInt,
-
R32_Float,
-
R32_UInt,
-
R32_SInt,
-
R16G16B16A16_Float,
-
R16G16B16A16_UNorm,
-
R16G16B16A16_UInt,
-
R16G16B16A16_SNorm,
-
R16G16B16A16_SInt,
-
R16G16_Float,
-
R16G16_UNorm,
-
R16G16_UInt,
-
R16G16_SNorm,
-
R16G16_SInt,
-
R16_Float,
-
R16_UNorm,
-
R16_UInt,
-
R16_SNorm,
-
R16_SInt,
-
R8G8B8A8_UInt,
-
R8G8B8A8_SNorm,
-
R8G8B8A8_SInt,
-
R8G8_UNorm,
-
R8G8_UInt,
-
R8G8_SNorm,
-
R8G8_SInt,
-
R8_UInt,
-
R8_SNorm,
-
R8_SInt,
-
A8_UNorm,
-
B8G8R8X8_UNorm,
-
B8G8R8X8_UNorm_SRgb
-
NEW: Effect parameter bindings will throw an exception if the value type is
not compatible with effect parameter.
(Additional checks are necessary because MonoGame does not fully validate
effect parameter values.)
-
NEW: Properties
EffectName
and
EffectParameterName
added to
EffectBindingException
to provide additional information when a binding fails.
-
NEW: FormsPresentationTarget
is now also available in MonoGame.
-
CHANGE: Presentation targets refactored. It is now possible to implement
custom presentation targets. (Methods
IPresentationTargetBeginRender
and
IPresentationTargetEndRender
added.
IPresentationTarget.Handle is no longer needed and has been marked as obsolete.)
-
CHANGE: Conservative shadow caster culling improved.
-
CHANGE: Some "false positives" removed in progressive shadow caster culling.
-
CHANGE: Clamp large (infinite) AABBs to camera/light AABB in
OcclusionBuffer.
Automatically handle infinite objects. Improve performance for large objects.
-
CHANGE: Calculate exact view-normalized distance in
OcclusionBuffer.
(Currently shader computes position from AABB instead of scene node origin.)
-
CHANGE: MeshHelper.ToTriangleMesh now supports meshes with 32 bit indices.
-
REMOVE: Method GraphicsManager.Present() has been marked
as obsolete and will be removed in future version.
-
FIX: ArgumentNullException
in DigitalRune Model Processor if skinned model is exported without any materials. (XNA only.)
-
FIX: When a skinned model without textures and without material definition (.drmat file)
is processed, the wrong effect may stored in the .xnb file.
-
FIX: When skinned model is exported without any materials, a SkinnedEffect is set as default.
-
FIX: Content processors try to automatically find resources if models contain invalid paths.
(For example, when a FBX file contains an invalid texture file name (path does not exist),
the model processor will search in the content folder and in the current directory for a
matching file.)
-
FIX: The DigitalRune Texture processor may throw an exception ("Surface format is not supported.")
even if no processing is required.
-
FIX: Minor floating-point rounding issues in
SpriteRenderer.
-
FIX: Effect parameter bindings for XNA stock effects (AlphaTestEffect, BasicEffect, etc.)
fail when using
Vector3F/Vector4F
instead of
Vector3/Vector4.
-
FIX: OcclusionBuffer
does not handle partially infinite shapes (e.g. ocean's
PlaneShape)
correctly.
-
FIX: OcclusionBuffer
did not cull shadow casters that were occluded from the light's point of view when "progressive shadow caster culling" is enabled.
-
FIX: OcclusionBuffer
may uses wrong MaxDistance
when culling shadow casters.
-
FIX: Wrong order of gamma correction and premultiplication in Billboard.fx.
-
FIX: Wrong opacity when rendering semi-transparent textures with Forward.fx.
(Premultiplication and gamma correction are calculated in the wrong order, which results in a
low opacity.)
Samples
-
NEW: WeightedBlendedOITSample added, which implements
weighted blended order-independent transparency.
-
CHANGE: InteropSample (XNA) and WpfInteropSample
(MonoGame) merged (shared source code).
The folder InteropSample now includes two Visual Studio projects:
InteropSample-XNA.csproj and InteropSample-MonoGame.csproj.
The folder WpfInteropSample has been removed.
-
FIX: WpfInteropSample does not end when WPF window
is active and ALT+F4 is pressed. (This bug was introduced by a change in MonoGame.)
-
FIX: Mesh name not set in ProceduralObject.cs.
MonoGame 3.4
- MonoGame 3.4 Release Notes
- BREAKING CHANGE: MGFX uses a new preprocessor for
effect files. Include files now need to end with a newline character, otherwise
compilation fails.
- BREAKING CHANGE: Effect files (.fx) need to be rebuilt.
- CRITICAL FIX: Memory leak in VertexBuffer.GetData and
IndexBuffer.GetData.
-
FIX: It is now possible to import skinned models from FBX files where the root
bone has a transformation pivot.