# Simplygon 10 Release Notes

# First release

  • New features

    • Modular seams, enabling gapless reduction between modular assets
    • Support for quad reduction
      • Feature overview
      • Quad support in GeometryData by linking adjacent triangles with the new QuadFlags triangle field.
      • FBX importer/exporter populates and uses the QuadFlags field to import and export quad geometry data.
      • OBJ importer/exporter populates and uses the QuadFlags field to import and export quad geometry data.
      • USD importer/exporter populates and uses the QuadFlags field to import and export quad geometry data.
      • Quads that pass though the triangle-based processors are maintained when possible, but will convert to triangles as required by mesh modifications and reduction operations.
      • Triangles which are marked as part of quads are automatically quadrangulated on export.
      • GeometryData::ValidateQuadFlags() can be used to check the validity of user-set quad flags.
      • Quad reduction processor and pipeline
        • New processor/pipeline that works on structured quad meshes and collapses entire strips of quads at a time.
        • Appropriate for LOD0 reductions as structured input -> structured output.
        • Settings for basic reduction targets; Ratio, Count, MaxDev, OnScreenSize
        • Limitations
          • May stop reduction ahead of reduction target if no more acceptable collapses are found.
          • Does currently not behave well on unstructured quad meshes, works best on authored content with regular topology.
          • Primarily tries to remove quads in geometry with mixed polygon types, and ignores triangles unless they are adjacent to quads.
          • Count and Ratio reduction targets will include triangles in stop condition calculation.
          • VertexWeights are not supported. The field must be removed completely from the geometry as it being present leads to unpredictable behavior.
          • Vertex welding is not yet supported.
      • Max
      • Maya
    • Tessellated Attributes in API
      • Added support for per-triangle implicitly stored tessellation of attributes in geometries. Supported by all processors, casting opacity and displacement (scalar or full vector displacement data)
      • VDM (Vector Displacement Maps) floating point maps (.tiff & .exr formats) can be imported and injected into displacement data in tessellated attributes
  • Unreal Engine (4.27)

    • Fixed issue with incorrect casting of vectors.
    • Fixed plugin compilation issue when not compiling for TargetPlatform Win64 Editor (i.e PS4)
    • Replaced FRunnables with ThreadPool to relax thread contention when running many assets.
    • Added baking of GeometryDataTextures
    • Fixed issue with vertex colors not being preserved when using IMeshReduction interface.
    • Fixed crash issue to avoid creating name lookups if there are no materials present.
    • Fixed issue with material ids end up incorrectly after using geometry culling on near pipeline.
    • Fixed issue with imposter material missing texture coordinate samplers
    • Fixed issue with incorrect uv's being used on the baked material for billboard cloud vegetation when trunk is separated.
  • Unreal Engine (5.0)

    • Fixed issue with incorrect casting of vectors.
    • Fixed plugin compilation issue when not compiling for TargetPlatform Win64 Editor (i.e PS4)
    • Replaced FRunnables with ThreadPool to relax thread contention when running many assets.
    • Added baking of GeometryDataTextures
    • Fixed issue with vertex colors not being preserved when using IMeshReduction interface.
    • Fixed crash issue to avoid creating name lookups if there are no materials present.
    • Fixed issue with material ids end up incorrectly after using geometry culling on near pipeline.
    • Fixed issue with imposter material missing texture coordinate samplers
    • Fixed issue with incorrect uv's being used on the baked material for billboard cloud vegetation when trunk is separated.
  • License updates

    • New license type "Standard" added which is more resilient to license server outage.
  • Improved container support

    • In container environments, Simplygon will fallback to CPU if GPU is not available.
  • Import/export

    • General N-gon polygon faces are automatically triangulated, and quad information is kept on import.
    • Added support for .exr file format input
    • Full support for importing, casting and exporting floating point texture data (in .tif and .exr file formats)
    • FBX exporter automatically compresses attribute fields using IndexToDirect.
    • RunImport and RunExport are renamed to Run and now returns EErrorCode, to harmonize with processors.
  • Scene data

    • Scene nodes now always generate guids for unique look up
    • Added BrightnessContrast and ColorCorrection nodes to shading network
    • Texture, material, bones and selection set tables now enforce unique names when adding or setting items.
  • Error handling

    • Error handling now supports recoverable errors in extension to the regular (unrecoverable) errors.
    • Recoverable errors from processors, importers and exporters are returned as EErrorCode enum values.
  • Breaking Changes and discontinued API objects

    • RemeshingLegacyProcessor (deprecated in 9) has now been removed.
    • DirectXRenderer has been removed.
    • CurvatureImportance has removed.
    • DetectEdgeNeighbours has been renamed/replaced with "DetectEdgeNeighbors".
    • Getter and Setter for IsFrozen on spSceneNode have been removed.
    • RunImport and RunExport method have been removed. They have been replaced with Run instead. Return type is not an enum instead of a bool. Helper methods are provided to cast to book for failure and success.
  • Python API

    • Renamed Simplygon python module to simplygon10
  • Documentation