Skip to content

v3.0.9169 RC1

Pre-release
Pre-release

Choose a tag to compare

@abenedik abenedik released this 07 Feb 15:51

This is a release candidate version that uses Ab4d.SharpEngine v3.0.9169-rc1 with the following new features (compared to v2.1.9118-beta2):

  • Added support for async image loading and buffer upload. The following new async methods are added: TextrueLoader.CreateTextureAsync, GpuImage.CopyDataToImageAsync, GpuBuffer.WriteToBufferAsync, BitmapFont.CreateAsync, BitmapTextCreator.CreateAsync, AndroidTextureLoader.CreateTextureMaterialAsync, AndroidTextureLoader.CreateTextureAsync.
  • Added loadInBackground and initialDiffuseColor to StandardMaterial and SolidColorMaterial constructors that also take texture file name or texture stream as parameters. When loadInBackground is true the material is initially set to the initialDiffuseColor. When the texture is loaded, it is shown instead of the initialDiffuseColor.
  • Added TrueTypeFontLoader and VectorFontFactory that can show vector text meshes and outlines from the glyph defined in TrueType font files (.ttf).
  • Added new SharpEngineSceneView constructors that also take Scene as a parameter. That can be used to create a single Scene object and show it with multiple SharpEngineSceneView objects. See the new "Advanced / Multiple SceneViews" sample.
  • Added BackgroundGraphicsQueue and BackgroundTransferQueue to VulkanDevice. They are created when EngineCreateOptions.EnableBackgroundResourceUpload is true (by default) and when GPU device supports more then one Graphics queue and when any Transfer queue is available. Note that when EnableBackgroundResourceUpload is true, the VulkanDevice.TransferQueue is not set (BackgroundTransferQueue is set instead).
  • Improved CreateExtrudedMesh method in Ab4d.SharpEngine.Meshes.MeshFactory. Now all possible combinations of shape orientation (clockwise, counter-clockwise), simple shape / shape with holes, isYAxisUp, isSmooth, flipNormals and coordinateSystem produce the valid mesh.
  • Improved EdgeLinesFactory for some cases when a triangle edge is only partially covered by another triangle.
  • Improved Triangulator to correctly triangulate some more complex polygons, for example, those with multiple holes on different shapes, like % char.
  • Improved optimizing positions in PolygonAnalyzer - now when more than one consecutive position lies on the same line, then all of those positions are removed.
  • Show RotationCenterPosition value in in SceneView.GetCameraInfo. This method is also used by "Dump camera details" menu item in the Diagnostics window.
  • Added CustomCamera, CustomAmbientLightColor and CustomViewport to RenderingLayer. When set, then all RenderingItems in the layer will use the specified camera, ambient light color and custom Viewport.
  • Added ToCSharpString extension method to int[], Vector2[] and Vector3[] arrays - it produces a c# string that can be used to initialize the specified array.
  • Added Convert2DShapeTo3DPositions method to Ab4d.SharpEngine.Utilities.MeshUtils.
  • Added DepthBias property to LineBaseNode. This makes it much easier to set DepthBias to all line nodes.
  • Fixed calculating BoundingBox when positons to MultiLineNode or PolyLineNode are set in constructor.
  • Fixed rendering PolyLineNode when Positions are set to null or empty array after the PolyLineNode was already rendered.
  • Set default LogLevel to Warn (changed from None).
  • Prevented showing "the name DebuggerDisplay does not exist in the current contex" error in Visual Studio when debugging Ab4d.Vulkan objects.
  • Fixed rendering when Scene.IsTransparencySortingEnabled is set to false.
  • Added SetCustomVertexBuffer and SetCustomIndexBuffer to MeshModelNode.
  • Fixed using CullCounterClockwise and CullClockwise - in the previous version, the culling mode was swapped: CullClockwise culled (removed) counter-clockwise triangles and CullCounterClockwise culled clockwise triangles. Now this is fixed. This also changes the Scene.DefaultRasterizerState from CullCounterClockwise to CullClockwise.
  • Make the Dispose method in the SharpEngineSceneView virtual, so derived classes can provide their own disposal logic.

Ab4d.SharpEngine.glTF:

  • Prevented throwing an exception when a material does not define pbrMetallicRoughness property.
  • Added support for showing a diffuse texture from data in the KHR_materials_pbrSpecularGlossiness extension.