| Change Logs 2010-2014 |
This topic contains the following sections:
2014-12-22 General
-
NEW: Using MonoGame content pipeline instead of XNA content pipeline for all
MonoGame projects.
DigitalRune Base 1.15
-
NEW: Added method
LinqHelperEmptyT.
-
FIX: Improved handling of ZIP storages in a
TitleStorage on Android.
-
Internal improvements.
DigitalRune Geometry 1.16
DigitalRune Graphics 1.0alpha16
-
FIX: Silhouette outlines created by
EdgeFilter
have only half thickness when object is rendered in front of empty background.
-
FIX: Workaround for unexpected WPF behavior. WPF may raise events, such as
drag-and-drop events, on the UI thread while D3DImage.Lock
is running on the same UI thread.
-
FIX: Shadow value of
CubeMapShadow
with NumberOfSamples = -1 was incorrect (but it looked plausible).
-
FIX:
Forward.fx
directional shadow should only be applied to first (dominant) directional light.
-
FIX:
SsaoFilter
with
Quality
= 1 did not sample mip-mapped G-Buffers correctly.
-
Content pipeline improvements:
-
NEW:
SkinnedEffect is now automatically assigned in
the material (.drmat file) when processing models with skinned meshes.
-
FIX: Only transforms of skinned meshes are baked. The transforms of regular meshes
are kept intact.
-
Internal improvements.
Samples
-
NEW: VolumetricCloudSample.
-
NEW: Updated Kinect samples for Kinect for Windows v2.
-
CHANGE: HeightFieldProcessor does not work in new MonoGame
content pipeline because MeshBuilder is not implemented.
Samples/Physics/32-ContentPipelineHeightFieldSample.cs is
excluded in MonoGame.
-
FBX models converted to FBX 2013 (required for MonoGame).
-
Minor improvements.
2014-10-23 General
-
NEW: Builds and samples for Linux, Mac OS, X, Android and iOS. (Graphics profile Reach)
-
NEW: Improved user documentation. Added several FAQs.
DigitalRune Base 1.15
DigitalRune Mathematics 1.12
DigitalRune Geometry 1.15.1
DigitalRune Physics 1.9
DigitalRune Particles 1.3
DigitalRune Animation 1.3
-
NEW: Property IsClipReversed
added to AnimationClipT
and TimelineClip.
-
NEW: Improved key-frame compression (see Compress).
The new compression is still lossy, but more accurate with regards to the specified error thresholds.
-
NEW: Method SkeletonHelperCopy
added, which copies the bone transform from one SkeletonPose
to another. Calling this method is faster than copying all bone transforms manually.
-
NEW: Method Clone
added.
-
NEW: Editing
SkeletonKeyFrameAnimation
after calling
Freeze
resets the animation into an editable state ("unfreeze").
It is possible to call
Compress,
Freeze,
test the animation, then repeat.
-
CHANGE:
SkeletonKeyFrameAnimation
optimized.
-
CHANGE: Class SkeletonPose
sealed.
-
REMOVE: Method SkeletonPose.Invalidate() removed. It is no longer
necessary to call this method explicitly.
-
REMOVE: Method SkeletonPose.OnUpdate() removed.
-
FIX: Wrong parameter used in AnimationClipT.
Problem occurs only if animation loops with cycle-offset and does not have a source value.
-
FIX:
SkeletonKeyFrameAnimationGetWeight
returned 0 if weights are partially set. Default value should be 1.
-
Internal improvements and optimizations.
DigitalRune Graphics 1.0alpha15
DigitalRune Game UI 1.5
-
NEW: Clipboard support added to Console.
See Cut,
Copy,
and Paste.
-
NEW:
ScrollViewer
can be scrolled with right gamepad stick.
-
NEW:
StackPanel
now supports padding.
-
FIX:
IInputServiceEnableMouseCentering
should have no effect on mobile.
-
FIX: Game UI did not set default scissor rectangle. (Only relevant for MonoGame
OpenGL platforms which do not correctly initialize the default scissor rectangle.)
-
FIX:
WindowClose
should do nothing if already closed.
-
FIX:
ScrollViewer
containing a
TextBlock
with word wrapping needs to re-measure the
text block with the final size.
-
FIX:
Windows
greater than the actual screen snap to the top of the screen. This
layout restriction has been removed. Windows may be positioned freely, regardless of
their size.
-
REMOVE: Property setter for ConsoleHistory
removed.
MonoGame
-
NEW: Property GraphicsAdapter.UseDebugDevice added.
-
CHANGE: Default position of game window.
Samples
-
The following samples have been added:
- FacialAnimationSample
- IKPhysicsSample
- ShadowSample
- VarianceShadowSample
- CompositeShadowSample
-
NEW: Sample framework refactored and simplified.
-
NEW: LightBufferRenderer supports different types of ambient occlusion.
-
CHANGE: Improved use of Options window. Helper methods added to quickly insert controls
(check boxes, sliders, etc.) into the Options window.
-
CHANGE: Buffer sizes reduced for Xbox 360. Previously, Xbox 360 samples used the same
resolution as the Windows desktop version. The memory usage would exceed the Xbox 360 eDRAM
and slow down rendering ("predicated tiling").
-
FIX:
BasicEffectBinding
"DiffuseColor" parameter must be set to
Vector4
not
Vector3.
-
FIX: Font "Segoe WP" is not always included in the Windows Phone SDK. Font
changed to "Segoe UI".
-
FIX: Drawing characters not included in sprite font causes and exception. Default
character added to sprite font.
-
Minor other improvements.
2014-06-12 General
- BREAKING CHANGE:
To improve cross-platform development DigitalRune libraries are being converted to
Portable Class Libraries (PCL). PCL only support subsets of the .NET API. The interface
ICloneable
is not supported on most platforms and has been removed from the API.
Types that previously implemented ICloneable
still have a Clone method, but they no longer implement the interface.
User data stored in properties such as
Tag
or UserData
is no longer duplicated: When an instance is cloned, user data is copied by reference
(shallow copy). Previously, Clone
was called when user data implemented ICloneable.
The Mesh
is no longer duplicated when the
TriangleMeshShape
is cloned. The mesh is copied by reference (shallow copy).
-
NEW: Portable class libraries added. See Files, Folders and Dependencies.
-
NEW: Tool Pack added.
-
REMOVE: Code previously marked as obsolete removed.
-
FIX: Licensing exception message in VS2013 XAML designer. No license key needed in designer.
DigitalRune Base 1.14
-
NEW: IStorage concept implemented.
See Storage and Virtual File Systems.
-
NEW: Parse
can parse all types which have a static Parse(string)
or Parse(string, IFormatProvider) method.
-
NEW: Class Global added.
-
NEW: Class PlatformHelper added.
(For internal use by other DigitalRune assemblies.)
-
REMOVE: Interface ICloneable removed.
-
Minor improvements.
DigitalRune Mathematics 1.11
-
NEW: Matrix, vector, and quaternion types now support data contract serialization.
-
CHANGE: Quaternion-vector multiplication optimized.
DigitalRune Geometry 1.15
DigitalRune Physics 1.8
DigitalRune Particles 1.2
DigitalRune Animation 1.2
DigitalRune Graphics 1.0alpha14
DigitalRune Game 1.1
DigitalRune Game UI 1.4
-
NEW: Internal property ConsoleHistory
is now public.
-
NEW: TextBox
with IsMultiline = false ignores Enter, Up and Down.
-
NEW: TextBox
ignores Up/Down/Left/Right keys when the caret is at the border to allow control focus to move to different control.
-
NEW: New methods added to LayoutSerializer
for loading a layout from XmlReader
(instead of XDocument).
-
NEW: New methods added to KeyMap
to load/save key map using XmlReader
and XmlWriter.
-
CHANGE: Internal order of constants in DigitalRune.Game.InputModifierKeys
changed to match the order in ModifierKeys.
-
CHANGE: Dependencies to System.Windows.Forms removed.
All uses of Form
and Cursor in the public API
have been replaced by Object.
-
REMOVE: Accelerometer functions removed from IInputService
in MonoGame projects.
-
FIX: <AltGr> should be handled as <Control>+<Alt>.
-
FIX: Window
did not correctly reset the mouse cursor when it was unloaded.
-
FIX: ThemeProcessor
can now build UI themes in subfolders. Previously the theme files (cursors, fonts,
textures) were always copied to the content root directory.
-
FIX (Windows Store): Missing scroll bars caused by differences in .NET runtime.
(Static field initialization behaves differently in .NET for Windows Store.)
-
Internal improvements.
MonoGame
-
CHANGE: Touch events also set mouse events. (Behavior should be consistent with
XNA for Windows Phone 7.)
-
FIX: Wrong scaling of touch position.
-
FIX (Windows Store): Wrong absolute mouse position.
-
FIX (Windows Store): Wrong relative mouse position.
Samples
-
CHANGE: Project "DigitalRune.Samples" renamed to "Samples". The .csproj files and
the platform-specific files have been moved to a subfolder.
Example: Samples/Platforms/MonoGame-WindowsPhone/
-
CHANGE: UI theme assets moved into the main content project to reduce the total
number projects in the solution.
-
The following new samples have been added:
- DumpContactSetSample
- VignetteSample
- InterlaceSample
- LensDistortionSample
- LightClipSample
- DistortionSamples
- VolumetricLightSample
-
CHANGE: The samples now use GetSpriteBatch
instead of creating a new SpriteBatch instance.
-
CHANGE: The samples now use the RebuildZBufferRenderer
instance stored in the render context instead of creating a new instance.
-
CHANGE: The ContentBuilder project for MonoGame now calls Pack
as a post-build step to package all assets (*.xnb files) in a ZIP archive. The Samples project for MonoGame only needs to include the ZIP archive as content.
-
CHANGE: WpfEnvironment
removed in Interop samples. WPF can now run on same thread as Windows Forms, which
makes it easier to use.
-
FIX: Sprite font is missing in InteropSample.
-
Several other improvements.
2014-03-03 DigitalRune Base 1.13
DigitalRune Mathematics 1.10
DigitalRune Geometry 1.14
DigitalRune Physics 1.7.1
DigitalRune Animation 1.1.2
DigitalRune Graphics 1.0alpha13
DigitalRune Game UI 1.3.1
MonoGame
-
NEW: Support for rendering point lists added (Direct3D only).
Samples
-
The following new samples have been added to DigitalRune.Samples:
- FurSample
- TechniqueBindingSample
- OcclusionCullingSample
- SceneCapture2DSample
- SceneCaptureCubeSample
- PlanarReflectionSample
- WaterSample
- OceanSample
- FogSphereSample
-
NEW: The DynamicSkyObject can cache sky in cube map.
-
CHANGE: The DeferredGraphicsScreen has been refactored. Other samples with their own
screens (e.g. split-screen sample) can reuse/derive from the DeferredGraphicsScreen.
-
FIX: Content fails to build when using the standalone version of XNA Game Studio.
(When multiple XNA content projects write to the same folder, content in the folder
gets deleted. This bug is fixed in the latest Windows Phone SDK.)
As a workaround for older version of XNA Game Studio, the Reach and HiDef content
projects have been combined into a single content project.
-
FIX: Sample did not always reset the RenderContext.SourceTexture property.
-
FIX: RefractionMeshRenderer caused exceptions when rendering refracted and non-refracted objects.
-
Minor changes.
2013-11-29 DigitalRune Base 1.12.1
-
NEW: DigitalRune.ServiceLocation.dll links against latest
Microsoft.Practices.ServiceLocation.dll 1.1.0.0
(officially signed Portable Class Library).
-
FIX: Windows App Certification Test failed with Windows Store builds.
DigitalRune Mathematics 1.9
DigitalRune Geometry 1.13
DigitalRune Physics 1.7
DigitalRune Animation 1.1.1
DigitalRune Graphics 1.0alpha12
-
NEW: Render states of DebugRenderer
can be overridden. See property AutoRenderStates.
-
NEW: Methods DebugRendererDrawTriangle
added.
-
NEW: Property GraphicsHelperRasterizerStateWireFrame
added.
-
NEW: Effect parameter bindings added.
-
NEW: Method NoiseHelperGetDitherTexture
which creates a 16x16 dither map.
-
CHANGE: Dither patterns in Noise.fxh and InstancedModel.fx
improved.
-
CHANGE: G-buffer stores normals in world space instead of view space.
-
CHANGE: Effect parameter binding
DecalOrientation
("DECALORIENTATION") is a vector in world space, not view space.
-
CHANGE: Memory optimizations in DebugRenderer.
-
CHANGE: CascadedShadow
maps use faster cascade selection on Xbox.
-
FIX: Increasing the MinLightDistance
decreases the shadow quality. Property is set to 100 by default.
-
FIX: DebugRenderer
uses wrong normal vectors for rendering view volumes and does not premultiply colors with alpha.
-
FIX: Atmospheric scattering did not work on Xbox because of HLSL compiler bug.
-
FIX: LOD hysteresis needs to be scaled by LOD bias internally.
-
FIX: Using RebuildZBufferRenderer
while restoring floating point color textures could create exception because of wrong sampler state.
DigitalRune Game UI 1.3
-
NEW: UIRenderer
implements IDisposable.
-
CHANGE: Improved relative mouse input using raw device input in MonoGame Windows (desktop) builds.
MonoGame
-
Merged changes of official MonoGame repository (branch develop).
Samples
-
NEW: Samples have been rewritten. Existing examples have been combined in a single
solution DigitalRune.Samples.
The following new samples have been added to DigitalRune.Samples:
- ProfilerSample
- HierarchicalProfilerSample
- InputSample
- InputCommandSample
- TriangulationSample
- ConvexDecompositionSample
- AutoRagdollShapesSample
- SplitScreenSample
- CloudQuadSample
- EnvironmentLightSample
- RefractionSample
- ParallaxMappingSample
- LodBlendingSample
-
REMOVE: The previous example projects have been removed from the DigitalRune Engine package.
They are still available as a separate download package. See
Premium Downloads.
-
FIX: DigitalRune content processors could not be used in projects that manually
invoke MSBuild to build XNA content, like the AppHub WinFormsContentLoading sample.
-
Internal improvements.
2013-10-21 General
-
NEW: Support for the Unity game engine added. See Unity.
DigitalRune Base 1.12
DigitalRune Mathematics 1.8.1
DigitalRune Geometry 1.12
DigitalRune Physics 1.6
DigitalRune Graphics 1.0alpha11
-
BREAKING CHANGE: Signature of method
ISceneQuerySet
and
QueryT
has changed. Both methods have a new parameter for the
RenderContext.
-
NEW: Support for distance culling added.
See
SceneNodeMaxDistance
and the usage in the
DeferredLightingSample.
-
NEW: Support for level of detail (LOD) added.
See LodGroupNode.
LOD settings added to
RenderContext and
property LodBias
added to
CameraNode.
-
NEW: Method
GraphicsHelperGetViewNormalizedDistance
added.
-
NEW: Property
SceneNodeProxy
added. (Required for LOD and future enhancements.)
-
NEW:
Methods
SceneHelperSupportsInstanceAlpha
and
SceneHelperSetInstanceAlpha
added.
-
NEW: Methods
SceneHelperGetSubtreeAabb
added.
-
NEW: Deferred light renderers now support
Alpha8 textures.
-
NEW: Property
RenderContextFrame
added.
-
NEW:
RenderContext
now implements ICloneable.
-
NEW: Method
FigureRendererOnLoadEffect
added.
-
NEW:
DebugRendererDrawContact
also visualizes penetration depth.
-
NEW:
DebugRenderer
supports
TriangleMeshShapeIsTwoSided.
-
NEW: Property
SceneNodeUserFlags
added.
-
CHANGE: Improved handling of transparent objects in
DebugRenderer.
(Opaque and transparent objects are now rendered in separate batches.)
-
CHANGE: Premultiplication with alpha is now applied before creating mipmaps in the
content pipeline texture processor.
-
CHANGE: ScaleAlphaToCoverage in content processors now correctly handles
premultiplied alpha.
-
CHANGE: Encoding of specular power in G-buffer improved.
-
CHANGE: Materials with XNA stock effects now accept
DiffuseColor as
Vector3 (fallback) in addition to
Vector4.
-
FIX: Gamma correction needs to be applied before premultiplication with alpha in
Forward.fx.
-
FIX:
DebugRenderer.DrawText("") did nothing but should create
an empty line of text.
-
FIX: Local lens flares did not work with orthographic projections.
-
FIX: Wrong alpha was used when using alpha blending with
BasicEffect
and BasicEffect.LightingEnabled was false.
-
FIX: ArgumentNullException
in DigitalRune model processor when input content did not have valid names.
-
FIX: Fixed confusing warning in model content processor when a merge animation replaced an existing animation.
-
FIX:
GraphicsHelperGetUniqueColor
improved to return better (more random) colors on Xbox and Windows Phone.
-
FIX: Cloud shadows did not work in MonoGame.
DigitalRune Game UI 1.2
-
CHANGE: Properties
ConsoleCaretIndex,
ConsoleText and
TextBoxCaretIndex
are now publicly accessible.
-
CHANGE: Previously the
InputManager
simulated accelerometer input using the keyboard when run in the Windows Phone emulator.
This feature was removed because new emulator versions can simulate accelerometer input.
-
FIX: Class
LayoutSerializer
was missing in Windows Phone build.
-
FIX:
InputManager
did not detect double-clicks of Back button on Windows Phone.
Samples
-
NEW: Level of detail (LOD) example added to
DeferredLightingSample.
-
NEW: ShapeProcessor of
DigitalRune Geometry Content Pipeline Samples
can handle boxes which are not centered on the scene node.
2013-09-04 DigitalRune Mathematics 1.8
DigitalRune Geometry 1.11
DigitalRune.Graphics 1.0alpha10
-
NEW (Breaking Change!): Figure rendering added.
FigureNode
and
FigureRenderer
replace LineNode and LineRenderer.
-
NEW (Breaking Change!):
DistanceFog
and
HeightFog
combined into a single more powerful
Fog
class.
-
NEW:
FogRenderer
automatically reduces fog scattering symmetry strength in the night when sun is below horizon.
-
NEW: Property
LensFlareNodeIntensity
added. Can be used to override the intensity of a single lens flare instance.
-
NEW: Cloud layers added (see
CloudLayerNode).
-
NEW:
ScatteringSkyNode
properties
BaseHorizonColor,
BaseZenithColor and
BaseColorShift
added. These properties define a color gradient that is added to the atmospheric
scattering results. Can be used to give the night sky a blue touch.
-
NEW:
ColorEncoder
post-processor and color encodings
(ColorEncoding,
RgbEncoding,
SRgbEncoding,
RgbeEncoding,
RgbmEncoding,
LogLuvEncoding)
added.
-
NEW:
SkyboxNodeEncoding
to support HDR cube maps.
-
NEW: Methods
GetCubeMapForwardDirection and
GetCubeMapUpDirection
added to
GraphicsHelper
to simplify cube map rendering.
-
NEW:
WpfInteropSample2
shows how to integrate graphics into a WPF application (without using the XNA Game class).
-
NEW: Method
D3DImagePresentationTargetToBitmap
added.
-
NEW:
D3DImagePresentationTargetIsFrontBufferAvailable
property and
D3DImagePresentationTargetIsFrontBufferAvailableChanged
event added.
-
NEW: Model processor logs warning instead of throwing
InvalidContentExceptions
for minor problems in the model asset.
-
NEW: New constructor added for
DelegateGraphicsScreen.
-
NEW:
DebugRendererDrawSkeleton
method added.
-
CHANGE: Calling
DebugRendererUpdate
is now optional in typical games.
-
CHANGE:
DebugRendererDrawShape
now explicitly handles capsules, cylinders, points and rays.
-
FIX:
DebugRenderer
checks whether number of triangles in
TriangleMeshShape
has changed and updates the cached vertex and index buffers.
-
CHANGE:
RebuildZBufferRenderer
now supports orthographic projections.
-
CHANGE: Improved handling of floating point source textures in several post processors
(EdgeFilter,
SsaoFilter,
BloomFilter).
-
FIX: MonoGame Texture2D.GetData did not work for non-power-of-2 textures.
-
FIX: Premultiplied textures may be too dark when
DRTextureProcessorScaleAlphaToCoverage
is enabled.
-
CHANGE: Define
GAMMA_CORRECTION
added to
Forward.fx.
2013-07-09 DigitalRune Base 1.11
DigitalRune Geometry 1.10
DigitalRune.Graphics 1.0alpha9
-
NEW: Screen-door transparency for opaque objects.
-
NEW: Decal rendering implemented. Classes
DecalNode
and DecalRenderer
added.
-
NEW: Sky rendering implemented including sky objects like sun/moon/starfields,
user-defined gradient skys, physically-based atmospheric scattering. See class
SkyNode
and derived types and the new
SkyRenderer.
-
NEW: Class Ephemeris
for computing physically accurate skies added.
-
NEW: HdrFilter
supports night vision blue-shift ("scotopic vision").
-
NEW: Property
CameraNodeViewDependentData
added.
-
NEW: Methods
CameraNodeGetInstances
and InvalidateViewDependentData
added.
-
NEW: Fog properties DistanceFog.HeightFalloff,
DistanceFog.ScatteringSymmetry,
and HeightFog.ScatteringSymmetry
added.
-
NEW: Property LineNode.DashInWorldSpace added.
-
NEW: Geometry instancing now supports additional instance parameters
InstanceColor
and InstanceAlpha.
Effects using instancing need to be updated - see "InstancingSample" in "GeneralSamples" project.
-
NEW: SceneNodeRenderer
now implements IDisposable.
-
NEW: PostProcessors
now implement IDisposable.
-
NEW: Properties
SceneNodeIsDisposed
and SceneNodeIsStatic
added.
-
NEW: Property ShadowShadowMap
added.
-
NEW: Method overload
RenderTargetPoolRecycle(Texture).
added.
-
NEW: GrainFilter
improved for higher quality. Noise animation can be disabled with new property
GrainFilterIsAnimated.
Static noise can be used to remove banding.
-
CHANGE: All renderer classes where moved to the new namespace
DigitalRune.Graphics.Rendering.
The namespace DigitalRune.Graphics.Deferred was removed.
-
CHANGE: Scene node groups in Scene
updated.
-
CHANGE: AscendingNodeComparer and DescendingNodeComparer now only implement
IComparer<SceneNode>. Specialized interfaces for specific
scene node types removed.
-
CHANGE: ProjectorLights
now supports orthogonal projections.
-
CHANGE: DefaultTargetFormat
of the HdrFilter set to
SurfaceFormat.Color.
-
CHANGE: Lens-flares, HdrFilter,
LuminanceFilter,
and SimpleMotionBlur
can now be applied to different camera nodes at the same time.
Methods HdrFilter.Reset(), LuminanceFilter.Reset(),
and SimpleMotionBlur.Reset() are obsolete and may be removed in a future
release. Use InvalidateViewDependentData
instead.
-
CHANGE: RebuildZBufferRenderer
now optionally copies color or texture to current render target.
-
CHANGE: Deferred light renderers combined into a single, extensible class
LightRenderer.
Shadow map renderers combined into a single, extensible class
ShadowMapRenderer.
Shadow mask renderers combined into a single, extensible class
ShadowMaskRenderer.
The individual renderers for specific light/shadow map types are no longer public. This
simplifies graphics screens and allows for internal optimizations.
-
FIX: Method DebugRendererDrawViewVolume
requires additional parameter to distinguish between orthographic and perspective projections.
-
FIX: Possible NullReferenceException
when IsEnabled
of CameraNode
is changed.
-
FIX: Base class SceneNode
called wrong overloaded
Dispose
method during finalization.
-
FIX: Default parameters defined in effect file (.fx) were lost once an effect was used
during rendering.
-
FIX: DictionaryEffectBinder
ignores effect parameters of type Boolean.
-
FIX: The 'depth' parameter in function SetGBufferDepth()
(file Deferred.fxh) had the wrong sign. The new function SetGBufferDepth()
takes the linear depth in the range [0, 1] as parameter.
-
FIX: Workaround for possible ObjectDisposedException
caused by RenderTarget2D.
-
REMOVE: Method Shadow.RecycleShadowMap removed. Shadow maps
need to be recycled manually.
-
Minor other changes and improvements.
2013-05-01 DigitalRune Base 1.10
DigitalRune Mathematics 1.7
DigitalRune Geometry 1.9.3
-
CHANGE: Major convex hull improvements. Creating convex hulls is faster and more
robust. (For 2d and 3d convex hulls.)
-
FIX:
DcelMeshIsTriangleMesh
did not correctly handle some open meshes.
-
Minor other improvements.
DigitalRune.Graphics 1.0alpha8
-
NEW: Sprite rendering added. See
ImageSprite,
TextSprite,
SpriteNode
and
SpriteRenderer.
-
NEW: Improved billboard rendering. Support for text billboards added, class hierarchy refactored.
See ImageBillboard
and TextBillboard.
-
NEW: Rendering of anti-aliased lines implemented. See
LineNode and LineRenderer.
-
NEW: "MatCap" shaders added.
-
NEW: New post-processing filter for rendering outlines/edges added: See
EdgeFilter.
-
NEW: Support for different text alignments added to
DebugRenderer.
-
NEW: Method PackedTextureGetBounds(Single)
added.
-
CHANGE: The default normal direction of billboards and particles has been inverted.
-
CHANGE: Property HeightFog/DistanceFog.Color (Vector4F) was separated
into two properties Color (Vector3F) and
Alpha (float).
-
CHANGE: Namespace DigitalRune.Graphics.Shadows. Types were moved
into namespace DigitalRune.Graphics.
-
CHANGE: SceneNodeDispose(Boolean)
method now has a parameter that determines whether data objects are disposed.
-
CHANGE:
Mesh
and Submesh
implement IDisposable.
-
FIX: Draw order of particle systems was ignored.
-
FIX: Setting
SceneNodePoseWorld
had no effect in a very specific case.
(Bug appeared when
SceneNodePoseLocal
is changed and immediately after this
SceneNodePoseWorld
is reset to the previous value.)
-
Minor other changes and improvements.
2013-03-13 DigitalRune.Graphics 1.0alpha7 and older
DigitalRune Game UI 1.1.1
-
FIX: Resizing did not work with right-aligned window. To fix this, properties
UIControlX
and UIControlY
are now only used when controls are top-left aligned.
2013-02-06 DigitalRune Mathematics 1.6.2
-
CHANGE: Less strict argument checks for orthographic and perspective projections in
matrix classes. For example, some projection properties are now allowed to be 0 or negative.
DigitalRune Geometry 1.9.2
2013-01-10 DigitalRune Base 1.9
-
CHANGE: Parallel for-loops ("replicables") are scheduled FIFO to improve CPU utilization.
-
CHANGE: New method overloads added in
Profiler.
DigitalRune Geometry 1.9.1
DigitalRune Particles 1.1
-
NEW: New constants added to ParticleParameterNames.
-
FIX: ParticleBatch in example does not properly sort particle systems by depth.
-
REMOVE: Property ParticleSystem.Scale removed.
2012-11-12 DigitalRune Base 1.8
DigitalRune Mathematics 1.6.1
-
CHANGE: Internal improvements.
DigitalRune Geometry 1.9
DigitalRune Physics 1.5
DigitalRune Game UI 1.1
2012-09-17 DigitalRune Base 1.7.1
-
FIX: Parallel task does not catch exception of child tasks.
-
FIX: ProfilerStop
should do nothing if Start
was not called.
DigitalRune Geometry 1.8.1
-
CHANGE: Internal class ContactHelper
made public.
-
FIX: Potential memory leak fixed in collision detection.
DigitalRune Physics 1.4
DigitalRune Particles 1.0.1
-
FIX: Errors when rendering multiple ribbons using ParticleBatch.
DigitalRune Animation 1.1
DigitalRune Game 1.0.1
DigitalRune Game UI 1.0.1
-
NEW: Property RectangleFSize
added.
-
NEW: Code samples added to API documentation of controls.
-
CHANGE: Multi-line support for TextBox
improved.
-
CHANGE: Minor changes in UI themes.
-
FIX: DropDown
(popup) is not scaled when parent window is scaled.
-
FIX: Window
dragging distance is wrong when screen is scaled.
2012-06-29 DigitalRune Base 1.7
DigitalRune Mathematics 1.6
DigitalRune Geometry 1.8
DigitalRune Physics 1.3.1
-
ENHANCEMENT: Avoiding memory allocations in vehicle physics. ("Zero garbage")
-
FIX: KinematicCharacterController
could tunnel through objects when trying to step on to obstacles.
-
Windows Phone assemblies now target Windows Phone 7.1.
DigitalRune Particles 1.0
-
FIX: Particle system should not advance time if system was removed by an effector.
-
FIX: ParticleBatch (of example project) used wrong pose when
drawing nested particle systems where the reference fame is
Local.
-
FIX: ParticleSystemRecycler (of example project) was not
thread-safe.
-
Windows Phone assemblies now target Windows Phone 7.1.
DigitalRune Animation 1.0
DigitalRune Game 1.0
-
FIX: Default name of GameObjects
and States
are not unique on the Xbox 360.
-
Windows Phone assemblies now target Windows Phone 7.1.
DigitalRune Game UI 1.0
-
CHANGE: Property UIControl.RendererInfo replaced with
UIControlRenderData.
-
CHANGE: Property UIControl.Tag replaced with
UIControlUserData.
-
FIX: Nested TabControl
cause exception.
-
FIX: Vertical scroll bar not positioned properly when
TextBox
was empty.
-
Windows Phone assemblies now target Windows Phone 7.1.
2011-12-21 DigitalRune Base 1.6.1
DigitalRune Mathematics 1.5
DigitalRune Geometry 1.7
-
NEW: Shape InfiniteShape
and constants for immutable shapes
(ShapeEmpty
and ShapeInfinite)
added.
-
NEW: Improved documentation regarding possible memory leaks with geometric objects (see
Geometric Objects and Shapes).
-
NEW (XNA only): Content serializer attributes added to selected shapes to support the
XNA IntermediateSerializer.
DigitalRune Game UI 1.0beta2
-
FIX: Caret index was not updated when character was added to empty
TextBox.
-
FIX: Exception when double-clicking beyond content in the
TextBox.
2011-11-18 DigitalRune Base 1.6
DigitalRune Mathematics 1.4
-
NEW: Mono support (experimental).
-
Minor changes and improvements.
DigitalRune Geometry 1.6
-
NEW: Mono support (experimental).
-
NEW: Interface for collision filters added:
ICollisionFilter
-
Minor other changes and improvements
DigitalRune Physics 1.3
-
NEW: Mono support (experimental).
-
NEW: Property SimulationTargetTime added.
-
NEW: Sample in PhysicsSample added that demonstrates use of contact filters and how to
create smooth movement of spheres over a triangle mesh.
-
NEW: Simulation does not create contact constraints between non-dynamic bodies anymore.
-
NEW: The default collision filter used by the simulation is now the standard
DigitalRune.Geometry.CollisionsCollisionFilter.
It can be replaced by any filter that implements
DigitalRune.Geometry.CollisionsICollisionFilter.
-
FIX: Jump height of kinematic character controller was dependent on frame rate.
-
Minor other changes and improvements.
DigitalRune Animation 1.0beta
-
NEW: Mono support (experimental).
-
NEW: Major API change! Types use TimeSpan
instead of Single
for optimal precision.
-
NEW: Class LogarithmicEase
added.
-
NEW: Completed
event for animation controllers added.
-
NEW: Constraint visualization added to passive ragdoll sample in the CharacterAnimationSample.
-
CHANGE: AnimationSplitter (from the CharacterAnimationSample content pipeline) uses
TimeSpan
to define time values in the split XML file.
-
FIX: AnimationSplitter (from the CharacterAnimationSample content pipeline) split animations with wrong duration.
-
FIX: Orientations (quaternions) could flip when using a
BlendGroup.
-
Minor other changes and improvements.
DigitalRune Game 1.0beta
-
NEW: Mono support (experimental).
-
NEW: Memory improvements: State machine allocates internal state collections only on demand.
-
NEW: Indexers added to state machine collections to access states by names.
-
NEW: State event handlers receive elapsed time as parameter.
-
CHANGE: Major redesign of timing classes.
-
CHANGE: Using TimeSpan
for time values in properties and method parameters.
-
Minor other changes and improvements.
DigitalRune Game UI 1.0beta
-
NEW: Support for font textures added.
-
NEW: Support for multiple textures per UI theme added.
-
NEW: UI theme supports image tiling for control images.
-
NEW: Background and Opacity can now be set in UI theme in the state tag of UI control style.
-
NEW: Support for selections and Cut/Copy/Paste in TextBox
added.
-
NEW: Data dictionary for custom data added to
InputContext
and UIRenderContext
-
NEW: Method overload for
UIRenderer
constructor that does not require a Game object added.
-
NEW: UI theme XML supports several new formats for vectors, rectangles and margins.
Old format: "R;G;B;A", "R; G; B; A".
Additional new formats: "R,G,B,A", "R, G, B, A", "R G B A".
-
NEW: New samples added: CustomControlSample (including tree view control), GameStateSample, TilingSample
-
CHANGE: Using TimeSpan
for time values in properties and method parameters.
-
CHANGE: A UIRenderContext
object is passed to UI control render methods.
-
CHANGE: Removed properties Screen, InputService and UIService from InputContext.
-
CHANGE: Renamed UIControlCollection to
VisualChildCollection.
-
FIX: Wrong TabItemTextStyle in NeoForce UI theme.
-
Minor other changes.
2011-07-20 DigitalRune Base 1.5
DigitalRune Mathematics 1.3
-
NEW: Methods Matrix44FDecomposeFast(Vector3F, QuaternionF, Vector3F)
and Matrix44DDecomposeFast(Vector3D, QuaternionD, Vector3D)
added.
-
NEW: XNA ContentTypeWriters and ContentTypeReaders for
DigitalRune.Mathematics.InterpolationPiecewiseCurveTParam, TPoint, TCurveKey
added.
-
CHANGE: Improved performance of
DigitalRune.Mathematics.InterpolationPiecewiseCurveTParam, TPoint, TCurveKeys
with many keys.
-
CHANGE: Renamed InterpolationHelper.HermitSmoothStep() to InterpolationHelper.HermiteSmoothStep()
(see DigitalRune.Mathematics.InterpolationInterpolationHelper).
-
CHANGE: Removed allocation of heap memory (GC garbage!) and added support for resource pooling in curve classes
(namespace DigitalRune.Mathematics.Interpolation).
-
FIX: Matrix44FDecompose(Vector3F, QuaternionF, Vector3F)
and Matrix44DDecompose(Vector3D, QuaternionD, Vector3D)
did not support negative scalings or scalings were a single factor was 0.
-
FIX: Wrong documentation: XNA quaternions are multiplied right-to-left.
DigitalRune Geometry 1.5.2
DigitalRune Physics 1.2.1
-
NEW:
DigitalRune.Physics.SpecializedVehicle
simulation uses hard constraints when wheel suspensions are
fully compressed. This reduces problems where wheels sink into the ground.
-
NEW:
DigitalRune.Physics.Specialized.AvatarRagdollAnimation
could cause an invalid cast exception when a custom collision filter was used in the
collision detection.
-
FIX: Exception in
SimulationUpdate(Single)
when a constraint was added to the simulation that referred to rigid bodies
that were not added to the simulation.
-
FIX: Sleeping kinematic rigid bodies did not wake up automatically when a very small
velocity was set for the rigid bodies.
DigitalRune Game 1.0alpha2
DigitalRune Game UI 1.0alpha2
2011-05-06 DigitalRune Base 1.4.2
-
NEW: Method StringBuilderHelper.Clear() added.
(Only in the Xbox 360 and Windows Phone 7 builds.)
DigitalRune Geometry 1.5.1
2011-04-07 DigitalRune Base 1.4.1
DigitalRune Geometry 1.5
DigitalRune Physics 1.2
-
NEW: Ragdolls for Xbox LIVE Avatars, including blending of ragdoll physics and keyframed animation.
-
NEW: Improved character controllers.
New features: dynamic jump height, configurable maneuverability during jump,
climbing, crawling, support for moving platforms, holding on ledges, and a lot more.
The old CharacterController class has been removed from
DigitalRune.Physics.dll and the PhysicsSample. Two new classes have been added:
DynamicCharacterController
and KinematicCharacterController.
A separate Character Controller Sample has been added.
-
NEW: Vehicle physics.
-
NEW: New DLL DigitalRune.Physics.Specialized.dll that contains avatar ragdolls, character controllers
and vehicle physics.
-
NEW:
MotionSettingsCcdFilter
allows to control when CCD should be used and for which body pairs CCD should be disabled.
-
ENHANCEMENT: Removed tunneling of very fast body when body hit concave edge of a triangle mesh or a composite shape.
-
FIX: Documentation corrected: For the
TwistSwingLimit
the Minimum/Maximum
angles are in the range [-Pi, +Pi] and not [-Pi/2, +Pi/2].
-
FIX: ContactSet
and Contact
could be recycled too early when CCD is used.
-
Minor other improvements.
2011-03-08 DigitalRune Base 1.4
DigitalRune Mathematics 1.2.1
-
FIX: License keys do not need to be entered in XNA content pipeline projects - this did not work with some Visual Studio Express editions.
DigitalRune Geometry 1.4
DigitalRune Physics 1.1.1
-
NEW: New examples added:
-
Windows Phone 7 examples and all examples from our website and blog.
-
How to load an XNA Model and build convex hull in XNA content pipeline.
-
How to load an XNA Model and build pre-processed triangle mesh in XNA content pipeline.
-
How to generate a height field using the XNA content pipeline.
-
How to play realistic collision sounds.
-
Several improvements in the existing samples.
-
FIX: License keys do not need to be entered in XNA content pipeline projects - this did not work with some Visual Studio Express editions.
-
CHANGE: The automatically computed mass of a
HeightField
is now always 0 (which means they are static and do not have a valid mass).
Previously, the library tried to compute a mass frame from the mesh of the height field.
-
CHANGE: The Recycle
methods of resource pooled objects are now instance methods instead of class/static methods.
-
Minor other changes.
2010-11-04 DigitalRune Base 1.3
-
NEW: Namespace DigitalRune.Threading
added. The namespace provides support for concurrency (multithreading). See class
Parallel
to find out more.
-
CHANGE: ResourcePoolT
improved (thread-safe, lock-free implementation).
2010-10-10 DigitalRune Mathematics 1.2
-
CHANGE: DigitalRune.Mathematics.dll now supports .NET Framework 3.5 (Client Profile) and XNA Framework 4.0!
-
NEW: Support for Windows Phone 7 added.
-
NEW: Property
Matrix44FIsNaN
added to vector, matrix and quaternion types.
DigitalRune Geometry 1.2
-
CHANGE: DigitalRune.Geometry.dll now supports .NET Framework 3.5 (Client Profile) and XNA Framework 4.0!
-
NEW: Support for Windows Phone 7 added.
-
NEW: Continuous collision detection (CCD) integrated. See
CollisionDetectionGetTimeOfImpact(CollisionObject, Pose, CollisionObject, Pose, Single).
-
NEW: Convex hull simplification added.
-
NEW: Convex decomposition (see ConvexDecomposition) added.
-
NEW: ConvexPolyhedron added.
-
NEW: Additional spatial partitions
AdaptiveAabbTreeT,
CompressedAabbTree,
DynamicAabbTreeT and
DualPartitionT added.
-
NEW: ShapeChangedEventArgs added.
ShapeChanged and
IGeometricObjectShapeChanged
changed from EventHandler<EventArgs> to
EventHandler<ShapeChangedEventArgs>.
-
NEW: Methods
PoseInterpolate(Pose, Pose, Single),
PoseFromMatrix(Matrix),
PoseToXna,
and
Pose (Pose to Matrix)
added.
-
NEW: Methods DcelMeshFromTriangleMesh(ITriangleMesh) and
DcelMeshFromTriangleMesh(TriangleMesh) added.
-
NEW: Methods AabbContains(Aabb),
AabbMerge(Aabb, Aabb) and
AabbTranslate(Vector3F) added.
GeometryHelperGetDistance(Aabb, Aabb)
added.
-
NEW: Method GeometryHelperComputeBoundingCapsule(IListVector3F, Single, Single, Pose) added.
-
NEW: Overload GeometryHelperGetDistance(Aabb, Aabb) added.
-
NEW: Method GeometryHelperGetContact(Ray, Triangle, Boolean, Single) added.
-
NEW: Method ShapeGetVolume(Single, Int32) added.
-
NEW: Overloads
TriangleMeshShapeInvalidate(Boolean)
and
TriangleMeshShapeInvalidate(Int32, Boolean)
added.
-
NEW: Method
ContactSetReset(CollisionObject, CollisionObject)
added.
-
CHANGE: The default value of shape features (see
ContactFeatureA and
ContactFeatureB)
is now -1 instead of 0.
-
ENHANCEMENT: The narrow phase algorithms are fully thread-safe and can be parallelized.
-
ENHANCEMENT: Internally using resource pooling to minimize the number of allocations.
-
ENHANCEMENT: Automatic computation of bounding volumes improved.
-
ENHANCEMENT: ContactSet
now implements IList<Contact> and ICollection<Contact>
directly and is no longer derived from Collection<Contact>.
-
ENHANCEMENT: Box vs. box and box vs. plane queries improved.
-
ENHANCEMENT: GJK algorithm improved to support more degenerate cases.
-
ENHANCEMENT: Contact welding implemented to improve height field and triangle mesh contacts.
-
ENHANCEMENT: CollisionDomain
checks whether collision objects are null or duplicates.
-
FIX: Closest-point query between different composite shapes with spatial partitions could crash.
-
FIX: Closest-point query between triangle meshes with spatial partitions crashed if the spatial partition did not implement
ISupportClosestPointQueriesT.
-
FIX: GeometryHelperHaveContact(Aabb, Aabb)
and GeometryHelperHaveContact(Aabb, Vector3F)
returned true if an AABB or a point contained NaN.
DigitalRune Physics 1.1
-
NEW: Multithreading support added. Multithreading within a
Simulation
can be enabled by setting the property
SimulationSettingsEnableMultithreading.
The multithreading support is provided by the DigitalRune Helper Library. See namespace
DigitalRune.Threading and class
Parallel.
-
NEW: New property
ConstraintSettingsRandomizeConstraints.
-
NEW: New property
MotionSettingsRemoveBodiesOutsideWorld.
-
NEW: The PhysicsSample example application contains a new sample "Sample 28 - Performance Test"
that explains several performance relevant tricks and settings.
-
ENHANCEMENT: Memory and performance optimizations.
-
ENHANCEMENT: Improved resource pooling to minimize memory allocations at runtime.
-
ENHANCEMENT: Damping
is now by default using a faster, but less accurate damping model.
-
FIX: Exception when rigid body left the simulation world.
-
FIX: Mass computation of non-closed meshes could lead to exception.
2010-07-20 DigitalRune Base 1.2
DigitalRune Mathematics 1.1.1
2010-06-30