Skip to content

@kimkulling kimkulling released this Sep 24, 2019 · 48 commits to master since this release

  • Bugfixes:
    • #2551: Collada output path is worng when that is exported.
    • #2603: Corrupted normals loaded from x-file.
    • #2598: introduce getEpsilon
    • #2613: merge glTF2 patch
    • #2653: Introduce 2 tests to reproduce fbx-tokenize issue.
    • #2627: Remove code from ai_assert test, will be removed in release versions.
    • #2618: Compilation fails with latest MinGW
    • #2614: FBX Crash on import
    • #2596: Stop JoinVerticiesProcess removing bones from mesh
    • #2599: Multiconfig debug postfix
    • #2570: Update config.h.in
    • #1623: Crash when loading multiple PLY files
    • #2571: Extra layer for multi uv sets
    • #2557: Fix CMake exporter macro
    • #1623: Crash when loading multiple PLY files
    • #2548: Check if weight are set or set the weight to 1.0f
    • #1612: Make wstaring handling depend from encoding of the filename.
    • #1642: Fix build on Hurd
    • #1460: Skip uv- and color-components if these are not defined.
    • #1638: Use memcpy instead of dynamic_cast.
    • #1574: Add API to get name of current branch.
    • #2439: Add null ptr test before calling hasAttr.
    • #2527: Use correct macro for Assimp-exporter.
    • #2368: Just fix it.
    • #2507: Collada_metadata' branch breaks loading of collada files
    • #2368: Add missign anim mesh for multimaterial meshes in fbx.
    • #2431: Use irrXml directly for mingw compiler.
    • #1660: Use memcpy instead of a c-style dynamic cast to parse a aiVector3D
    • #1722: Use a const reference to fix issue with ppc.
    • #1390: aiScene now stores metadata as well.
    • #1721: set camera parameters instead of nonsense.
    • #1728: check if mesh is a null instance before dereferencing it.
    • #1721: set camera param…
    • #1743: introduce /bigobj compile flag.
    • #905: Add missing contrib source from zlib.
    • #1758: Fix compiler warning.
    • #1752: Move guard over include statement.
    • #1583: Update doc.
    • #774: Use correct type for unitscale in fbx.
    • #1729: check for bit flip when unsigned int overflow happens in x-file parsing.
    • #1386: fix undefined behaviour in compare function.
    • #567: prevend dependency cycle.
    • #1564: Remove copy constructor.
    • #1773: Make FileSystemFilter forward all virtual functions to wrapped IOSystem instance
    • #1120: use euler angles for pre- and post-rotation.
    • #1796: return correct value on detach logger.
    • #1850: remove buggy setup in cmake.
    • #1836: make documentation much more clear how to apply global scaling.
    • #1855: fix correction of node names.
    • #1831: make config CMAKE_LIBRARY_CONFIG overridable.
    • #1881: make template-based get and put in streamreader/writer public.
    • #1621: add file check for dxf file without extensions.
    • #1894: use mesh name to name exported obj node.
    • #1893: fix mem leak in glft2Importer.
    • #1784: change so.name to keep track of the minor version of the lib.
    • #842: experimental suppor for ascii stl pointcloud export.
    • #919: add missing cast for vs2015.
    • #1952: check for postprocessing parameter before try to parse -f
    • #1780: check against nullptr before accessing normal data in aiMesh instance.
    • #1970: stl with empty solid.
    • #1587: Add validation to LWS unit test.
    • #1973: Added support for CustomData(Layer) to support multiple (texture) UV mappings.
    • #2016: Only add material uv mappings if set, ignore when no uvmapping set.
    • #2019: fix the qt-viewer without export.
    • #2024: make code more readable.
    • #2011: add reference to free model.
    • #2001: Make glTF2 the default exporter for glft
    • #1340: Fix handling of empty nodes in openddl-parser.
    • #2449: fix uwp handling
    • #2459: fix duplicated fbx-type propertry.
    • #2334: run vc_redist in passive + quiet mode.
    • #2335: add cmake-modules to the installer.
    • #2054: make empty bone validation optional.
    • #2056: use correc exception type in MMD-loader.
    • #1724: add default material access to the material API.
    • #2075: Make inject of debug postfix an option, so you can swich it off.
    • #2088: fix possible out-of-bound access in fbx-lerp operaation.
    • #1451: break when assimp-bin format was exported with a different version.
    • #212: introduce unittest for line-splitter, will validate that the current behaviour is correct.
    • #2154: remove redundant file from source folder.
    • #2067: introduce /bigobj compiler flag
    • #2206: make bone error in verification more verbose.
    • #2199: introduce first version for exporter.
    • #2229: fix count of polylines when only one vertex was indexed.
    • #2210: use different enum value.
    • #2202: put STEPParser out of IFC importer.
    • #2247: change include folder from debian package from /usr/lib/include to /usr/include
    • #817: use emmisive factor instead of color.
    • #2251: introduce AI_CONFIG_PP_FID_IGNORE_TEXTURECOORDS to avoid removing textures.
    • #2297: introduce obj-unittest to validate working importer.
    • #2115: rollback setup of FBX-camera.
    • #1593: fix computation of percentf for 3DS.
    • #934: introduce material keys for shader types.
    • #1650: build irrXml as shared lib.
    • #2411: Revert parts of dynamic ixxxml linkage
    • #2336: use new cmp_048 policy even for zlib in the assimp build.
    • A crash in the aiMesh destructor
    • Unicode fix ( experimental, feedback is welcome )
    • alloc-dealloc-mismatch
    • fix for div by zero reported by address sanitizer
  • assimp_cmd:
    • Add --verbose flag to 'info' command, to print node transforms.
    • assimp_cmd info: list meshes and print basic mesh stats.
    • print error message on failure.
    • Parse post process arguments when using info tool.
    • prettier and better-compressed node hierarchy.
  • Common Stuff:
    • Exporter::ExportToBlob() Pass on preprocessing and properties. Issue #2302
    • Use correct escape sequence for unsigned.
    • Ensure that the aiString lenght is 4 bytes independent which platform
    • Fix compiler warnings
    • Fix codacy issues
    • Implemented basic PBR materials into assimp.
      This adds the following texture types:
      • BASE_COLOR
      • NORMAL_CAMERA
      • EMISSION_COLOR
      • METALNESS
      • DIFFUSE_ROUGHNESS
    • Make IsVerbose accessible outside the exporter
    • Create FUNDING.yml
    • Add copyright headers to ZipArchiveIOSystem
    • diable unaigned pointer access temprary.
    • Fix signed unsigned comparison warnings.
    • Fixed anim meshes generated from blendshapes not being copied to output for multi-material meshes
    • All textures use relative path except embedded, this is fix for it.
    • I want to see what GetErrorString() blurts out on the Travis failure real quick
    • including <unzip.h> instead of <contrib/unzip/unzip.h>
    • Fix Matrix4x4t Decompose to rotation vector.
    • Add missing assignment operator to aiString.
    • fast_atof: Remove unused variable.
    • BaseImporter: Remove dead condition.
    • Some StreamWriter improvements / additions.
    • added support for embedded textures defined with buffer views.
    • fixed embedded texture reading.
    • BaseImporter: fix lookup for tokens during inmemory imports.
    • Reorg of code: Each importer / exporter / domain has its own folder.
    • Export: Copy metadata to be able to export it properly.
    • Some MSVC/Windows corrections and updates, issue 2302.
    • Introduce new log macros.
      -_stat64 doesn't seem to exist. use __stat64!
    • Fix strict aliasing violation in MaterialSystem
    • Added check to BaseImporter::SearchFileHeaderForToken making sure that a detected token is not
      in fact just a fraction of a longer token.
    • added internal to_string.
    • Use delete[] instead of delete to clear mMeshes
    • Fix memory leak in assimp_loader
    • Fix VS2013: array initialization does not work.
    • aiMatrix4x4t::FromEulerAnglesXYZ modified to row order
    • Various additions/fixes (FBX blend-shapes support added)
      • Added animMesh name assignment at ColladaLoader
      • Fixed animMesh post-processing on ConvertToLhProcess (blend-shapes weren't being affected by post-processing)
      • Added WindowsStore define. This is used to change some incompatible WinRT methods
      • Added FBX blend-shapes and blend-shapes animations support
      • Added Maya FBX specific texture slots parsing
      • Added extra FBX metadata parsing
      • Added GLTF2 vertex color parsing
      • Fixed IFC-Loader zip-buffer reading rountine
      • Fixed OBJ file parsing line-breaker bug
      • Fixed IOStreamBuffer cache over-read bug
      • Added mName field to aiAnimMesh
      • Reverted EmissiveFactor, TransparencyFactor and Specular
  • Doc:
    • Move to https://assimp-docs.readthedocs.io/en/latest/
    • Add more detailed information about the source code structure
    • Clarify the matrix layout
    • Document AI_MATKEY_REFLECTIVITY and AI_MATKEY_COLOR_REFLECTIVE.
    • Correct matrix layout documentation
    • Fix aiBone->mOffsetMatrix documentation, which was incorrect.
    • Fix the assimp.net link.
    • Expand the current documentation about loading of embedded textures.
    • Improve the contribution guide.
    • Add the HAXE-port.
  • Build:
    • Add example build script.
    • Update DLL PE details: Copyright, git commit hash and original filename.
    • Depreciated compiler which doesn't support standard features.
    • Fix error when building assimp on older Mac OS X version.
    • Update scene.h to use #include only if the compiler is used to compile c++ code.
    • Fixed MSVC toolset versions >140.
    • Fixed android zlib compile error.
    • Export static libaries as CMake package.
    • Set directory and name properties for installing static lib PDB.
    • Use CMAKE_INSTALL_PREFIX as ASSIMP_ROOT_DIR.
    • ios-build-script
    • Add Inno setup path to PATH variable.
    • Assimp will now be correctly built with -O3 or -Og based on build type.
    • Add TARGET_INCLUDE_DIRECTORIES for assimp target
    • Use a more accurate way of checking if the build is 64 bit
    • Improved cmake configs for Windows and Linux.
    • Default CMAKE_DEBUG_POSTFIX to 'd' on multiconfig
    • Adds a way to select which exporters you want to compile
  • CI:
    • Fix Travis CI sign-compare warning
    • Travis updated to clang 5.0 and there are new issues
    • Appveyor + Travis: use caching
    • Use clange adress sanitizer + memory leak detection
    • Handle warnings as errors
    • Use Hunter for pulling in dependencies.
  • 3DS:
    • Reformat initializer list
    • Add explicit default constructors and assignment operators to Material.
    • Add Material constructor which takes material name.
    • Add Mesh constructor with takes name.
    • Explicitly pass "UNNAMED" as 3DS root node name.
    • Fix more thread-safety issue in 3DS loader.
  • 3MF:
    • Introduce first prototype for basematerial support.
    • Fix parsing of base-material color.
    • Fix order of init list.
    • Use correct material assignment in case of multi-materials.
    • Add missig tags for meta data.
    • Fix model folder desc.
    • Fix CanRead-method for the 3MF-Importer.
  • ASE:
    • Reformat initializer list.
    • Add explicit default constructors and assignment operators to Material.
    • Add Material constructor which takes material name.
    • Pass a default material name when resizing materials buffer.
    • Fix more thread-safety issue in ASE loader.
  • AssJSon:
    • Add json export.
  • B3D
    • Use std::unique_ptr
  • BlenderLoader:
    • Fix memory leak.
    • Update BlenderDNA.h.
  • Collada
    • Add Collada zae import support
    • fix possible memleak when throwing an exception.
    • Don't use SkipElement() to skip empty Text.
    • Correction on Collada parser missing textures when the image is in CDATA
    • Richard tea collada metadata
    • collada export: Use Camera local coordinate system
    • Save/Load Collada 1.4 Root Asset Metadata
    • Fix automatic name assignment for ColladaLoader when using name based assignment
  • DXF:
    • Fix macro issues.
  • glFT
    • Add ortho camera support
    • Fix incorrect NO_GLTF_IMPORTER define name in glTFExporter.h
    • Fix delete / delete[] mismatch
    • glTFAsset: Use std:unique_ptr for Image data
    • Update o3dgcTimer.h
    • Added import of material properties (double sided and transparency) in glTF 1.0 importer.
    • Forced 4-bits alignment for glTF buffers
    • Fixed some gltf files being detected as OBJ
    • Added support for non-indexed meshes in glTF importer. Addresses issue #2046.
    • GLTF segfault using triangle strip
    • buffer grow changes and large files support
  • glFT2
    • Add ortho camera support.
    • Lights import.
    • Added support for generating glb2.
    • Not using external bin file for glb2.
    • Correctly export images with bufferView.
    • Using relative buffers URI.
    • Set camera "look at" to (0.0, 0.0, -1.0).
    • Assign default material to meshes with no material reference.
    • Import scale for normal textures and strength for occlusion textures.
    • Add vertex color support to glTF2 export.
    • Fix export gltf2, The JOINTS_0 componentType is incorrect.
    • Move creation of vars to avoid useless creation in case of an error.
    • Fix gltf2 export component type error
    • Change glTF2 file extensions from gltf2/glb2 to gltf/glb in the exporter so that it matches the importer and respect the standard specifications
    • Read and write the KHR_materials_unlit glTF/2.0 extension.
    • Pick scene zero as scene to recursively load if no "scene" property is specified.
    • Properly reads in glTF/2.0 sampler address modes.
    • Fix inconsistency between animation and node name in glTF2 Importer
    • Add test for glTF2 lines, line strip, lines loop and points
    • Fixes crash when importing invalid glTF/2.0 files
    • Skips some glTF/2.0 uv processing if the count of uvs in the attribute stream doesn't match the vertex count.
    • Make gltf2's roughnessAsShininess matches between importer and exporter.
    • Add support for importing GLTF2 animations.
    • glTF2 importer multiple primitives and 16-bit index buffer skinmesh support.
    • Fix glTF2 export with no texture coordinates
    • Fix inconsistency between animation and node name in glTF2 Importer
  • FBX
    • FBX Import: Properly clean up post_nodes_chain in case of exception.
    • Implemented basic PBR material textures
    • Added maya stingray support for textures
    • Added VertexColor to FBX exporter (one channel)
    • Fix FBX units not being converted from CM to application scale
    • FBX node chain assert fix
    • FBX importer armature fixes and root bone fixes - animations should now work for more models.
    • Fix Issue: group node in fbx being exported as bone node
    • Fix non-ascii encoding in comments in FBXMaterial.cpp
    • FBX files may use a texture reference from an embedded texture that hasn't been loaded yet.
      This patch fixes this issue, storing all texture filenames, that can be acessed later via "scene::GetEmbeddedTexture", when all textures are already loaded.
      Some warnings have been added to other file formats that uses embedded data.
    • Fix export custom bindpose error
    • Some FBX multi-material mesh fixes
    • Fixed first vertex of each blendshape on a multi-material mesh having all unmapped vertice offsets being added to it
    • Fixed blendshapes not importing for multi-material FBX meshes with no bones
    • Store UnitScaleFactor for fbx-files.
    • Global settings use float instead of double.
    • Initial FBX Export Support, sponsored by MyDidimo (mydidimo.com).
    • FBX Importer double precision fix.
    • Apply inverse of geometric transform to child nodes.
    • Node names optimization and fixing non-unique name
    • Support for FBX file sizes more than 4GB.
    • Fragmented FBX ASCII emdedded resource.
    • Fix parse error for uv-coordinates.
    • Exception spam fix for FBXMaterial.
    • Fix empty fbx mesh names
    • fix for geometric transform nodes with multiple children.
    • FBX Export: Geometric transformations always create transformation chain.
    • FBX Export: fix logic for determining if scale transformation is identity.
    • FBX geometric transforms fix
    • FBX Export: handle newly-added geometric transform inverse nodes.
    • FBX Export: reconstruct full skeleton for any FBX deformers.
    • Fbx export skeleton improvements
    • FBX Export: add missing 0 value to file footer.
    • Fix Texture_Alpha_soutce typo.
    • LayeredTextures now work with embedded texture data
    • Assimp animation time is already in seconds. Just convert to FBX time.
    • Added check for NULL Compound in Properties70 element (fixes DeadlyImportError on some FBX files)
    • FBXImporter: Fix GetUniqueName to return names properly
    • Fix for crash in StreamWriter::PutString when exporting ASCII FBX
    • Don't call PutString with an empty string. Both DumpChildrenAscii and EndAscii can return without modifyting the string,
      so we need to check the string before calling PutString. This used to cause a crash.
    • Fbx convert to unit
    • Optimisation of FBX node name uniqueness
    • FBX import: fix import of direct data by vertices + unify node renaming
    • fixed ordering of skin indices and weights, to be consistent between systems
    • Add FBX Line Element support.
    • Preserve all the material parameters from FBX models
    • Fix for FBX binary tokenization of arrays of type 'c'
    • Generate attenuation constants if non are privded in the Blender file. Using: https://imdoingitwrong.wordpress.com/2011/01/31/light-attenuation/
    • Fix FBX face materials not being properly loaded if the face count mismatches the material count
  • LWO:
    • Initialize unnamed node uniqueness index outside of loop.
    • Use C++11 auto for easier refactoring.
    • Move some assignments to make it clearer when the thing should be moved.
  • IFC-2x3:
    • Fixed bug in IFC when dimensional exponent parameters in IfcSIUnits is not defined.
    • In IFC, fixed parser to avoid interpretation of '##' in string as identifiers
  • MD5:
    • MD5-Loader: set meshnames.
  • MDC:
    • Fix horrible pointer casting hack
    • fix a possible nullptr access.
  • MDLLoader:
    • Replace raw pointer with vector to fix a memory leak
  • MMD:
    • Add virtual destructor to a class which already has virtual functions
    • Fix memory leak
  • MDLImporter:
    • Use unique_ptr
    • Fixes a double free
  • Obj:
    • Use unique_ptr
    • Fix possible memory leak
    • Fix line continuations in OBJ files
    • Fix buffer overflow in obj loader
    • Replace assertion by an exception in Obj parsing.
    • Fix material index off-by-one error in some OBJ files (seen in a C4D export).
    • Fixed test .obj file: OBJ Vertex Colors are expected to be floats (0-1).
    • Fix Issue #1923: OBJ Exporter can't correctly export vertex colors.
    • bad OBJ file that can still be read
    • Fix .obj displacement texture parsing
    • Fix expensive memory allocation and memory copying occurring in obj files with a large number of meshes.
    • Pointcloud support
    • OBJ: Coerce texture coords of nan or infinity to zero
    • a test for bad OBJ file format and code fix that handles it
    • Fix progress reporting in ObjFileParser. Remove old unused code which is claiming to still take up "1/3" of the total progress.
    • Obj: we can still import partially incorrect files
    • OBJ coerce invalid nan or inf texture coords to 0
  • Ogre:
    • Change OgreXmlSerializer::HasAttribute parameter from std::string to pointer.
    • Avoid creating static std::strings.
    • Avoid creating function-scoped static constants.
    • Prevent crash when Ogre skeleton file is missing
  • OpenGEX:
    • Replace raw pointer with vector to fix a memory leak.
    • Replace std::copy with explicit loop.
    • Use std::unique_ptr to fix some memory leaks.
  • Q3BSP:
    • Convert Q3BSP Importer to use ZipArchiveIOSystem
    • Add assertion to silence a static analyzer warning
  • PLY:
    • float-color.ply is broken.
    • Fix for undefined behavior when loading binary PLY.
    • PLY importer should not create faces.
    • Set primitive_type to point when PLY is a point cloud.
    • Add support for texture file in PLY exports.
    • PLY importer should not automatically create faces.
    • Fix ply exporter to be conformant to spec respecting vertex colors.
    • Fix ply exporter to be conformant to spec respecting vertex colors.
  • Smd
    • Cannot read bone names containing spaces
  • STL:
    • Fix white ambient in STL loader
    • Fix import of binary STL files in double-precision builds.
    • STL binary Export should write 4-byte floats for vertex and normal coordinates.
    • Add mesh names to imported ASCII STL.
    • STL-Exporter: fix division by zero in normalize method during update
  • XGLLoader:
    • Fix const issue when seeting vec2.
    • Fix a memory leak
  • X3DImporter:
    • Add virtual destructors to some classes which already have virtual functions
  • X:
    • fix out of bound access.
    • Release x-file-based scene when throwing an exception.
    • Fix exception.
    • Fix typo.
    • Add misisng bracket.
  • Postprocessing
    • Fix UV texture coords generation along Z Axis
    • Thomasbiang fix issue join identical vertices not needed.
    • Fix missing File Scale and Application scale fixes for all conversions.
    • ScaleProcess overhauled to improve compatibility with animations and unit conversion.
    • All textures use relative path except embedded textures, this is a fix for it.
    • Add gen-aabb process to postprocessing.
    • Embedding images post-process.
    • PretransformVertices: Rearrange some assignments to clarify things.
    • LimitBoneWeightsProcess: Initialize all members of Weight in constructor.
    • FindInstancesProcessOptim: Optim FindInstancesProcess.
    • Optim FindInstancesProcess: ComputePositionEpsilon() is a costly function which was called in the inner
      loop although it only uses data from upper loop.
    • Degenerate triangles with small area removing fix
    • ImproveCacheLocality crashes if non triangular faces
    • Add mesh name to ValidateDataStructure log
    • Fix GenVertexNormals
    • Added forced generation of normals with extra flag.
    • Force generating mesh normals.
    • Deactivate area based rejection of triangles in triangulation
    • JoinVerticesProcess should only try to deduplicate used vertices.
    • Feature/join vertices processor kill unused vertices
    • FlipUVsProcess should also process AnimMeshes (if any)
    • Allow findDegenerate and SplitLargeMesh to pass point clouds models.
    • integrated DropFaceNormals process (cmake, poststepregistry)
    • ValidateDataStructure.cpp:
      • Fixed warnings introduced by last commit (hopefully)
      • Fixed case fallthrough (due to exception flow, it didn't make a practical difference, but hopefully will remove a warning)
      • Minor formatting consistency improvements
  • Tools:
    • Remove the qt-viewer from the build system and move it into its own repo.
    • Fix AssimpView build.
    • Fix Assimp viewer build with MinGW
  • Examples:
    • Update Sample_SimpleOpenGL.c
  • Java-Port:
    • JAssimp: fix simple code analysis issues.
    • Fix another misinterpretation from the JNI-interface.
    • Add progresshandler support jassimp
  • .Net-Port:
    • Fix documentation for assimp.net.
    • Update AssimpNet redirect
  • Python-port:
    • Version bump pyassimp.
    • Fix indentation error in python bindings.
    • Remove check for 'assimp' in name of directories to be searched for library in python port.
    • Add pyassimp code generation script for materials.
    • Ensure obj is not null before using hasattr.
    • Minor changes to setup.py to make it slightly more compliant
    • Solved pyassimp.errors.AssimpError in conda
    • Build Python representation for metadata.
    • Fix "bytes aketrans" issues in Python>=3.1
    • Fix: except SyntaxError for py3 viewer
  • Android:
    • Added ASSIMP_ANDROID_JNIIOSYSTEM precheck to only remain set to ON in proper ANDROID enabled toolchain environment
  • zlib & unzip
    • unzip: fix build with older zlib
  • irrXml:
    • IrrXML doesn't recognise the construction: <author></author> as being an empty element, and
      so ColladaParser::TestTextContent advances the element stream into the </author> element.
Assets 2
You can’t perform that action at this time.