v3.0.9175 RC3
Pre-release
Pre-release
This is a release candidate version that uses Ab4d.SharpEngine v3.0.9175-rc3 version with the following new features (compared to v2.1.9118-beta2):
v3.0.9175 RC3:
- Added IsBackgroundImageUploadSupported and IsBackgroundBufferUploadSupported properties to VulkanDevice.
- Fixed using async methods when the GPU device does not support background image creation, buffer upload or when disabled by the user (setting CreateOptions.EnableBackgroundResourceUpload to false).
- Fixed using async methods when the SynchronizationContext.Current is null (in Console app). In this case it is not possible to continue the background task on the main thread.
- When using TextureLoader set GpuImage.Name to only the file name and not to the full path.
- When LineRasterizationMode is set to RectangularSmooth, then enable alpha blending to blend line edges with surrounding.
v3.0.9173 RC2:
- Fixed using SharpEngineSceneView in Avalonia with Vulkan backend on some computers.
v3.0.9169 RC1:
- 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.