diff --git a/assets/js/search-data.json b/assets/js/search-data.json index 75e7797954..ac7ad2a3e4 100644 --- a/assets/js/search-data.json +++ b/assets/js/search-data.json @@ -29,7 +29,7 @@ },"4": { "doc": "Changelog", "title": "Changelog", - "content": "# Changelog ## Ongoing development For F3D users: - Added `--animation-autoplay` option (libf3d: `scene.animation.autoplay`) to automatically start animation on file load. - Added an experimental VDB reader for .vdb files using OpenVDB - Changed `--verbose` into a string based option, eg: `--verbose=quiet` or `--verbose=debug`. `--verbose` is still supported. - Changed `--no-render` behavior so that it doesn't impact verbosity anymore - Deprecated `--quiet`, use `--verbose=quiet` instead. - Reading EXR files is now multi-threaded and much faster. - Translucency support is now enabled by default. - A small margin is added between the model and the grid to avoid potential z-fighting. - Add X files support (part of `assimp` plugin) - Fix potential crashes when reading `assimp` plugin file format For libf3d users: - Added `scene.animation.autoplay` option. - Added a `f3d::image::saveBuffer` API to save an image as a file format in memory. For F3D packagers: - Added a new optional dependency through VTK, OpenVDB ## v2.2.1 For F3D users: - Added a native Apple Silicon release package - Added new options `hdri-file`, `hdri-ambient`, `hdri-skybox` to have more control on the HDRI behavior - Added a default HDRI used when providing no `hdri-file` - Added bindings to toggle HDRI ambient lighting (`F`) and HDRI skybox (`J`) - Added bindings to move the camera to standard locations: `1`: Front, `3`: Right, `7`: Top, `9`: Isometric - Added [Open CASCADE BRep format](https://dev.opencascade.org/doc/overview/html/specification__brep_format.html) to the OCCT plugin. - Fixed an infamous issue when the Windows thumbnailer always steal the focus - Fixed an issue with the binary release when opening draco files - Fixed an issue with matcap textures - Fixed an issue with HDRI lighting - Fixed an issue with HDRI lighting when dropping HDRI after a model - Fixed an issue where invalid option would not show on Windows - Fixed an issue where previously loaded file would stay visible - Fixed an issue when loading invalid EXR file as HDRI - Fixed cheatsheet menu rendering under 'Drop File Instructor' - Fixed raytracing rendering issues - Improved cheatsheet menu contrast for any background color - Improved overall text contrast for any background color - Improved performance when changing model and using a HDRI - Improved HDRI cache performance - Deprecated `hdri` option For libf3d users: - Reworked image API to support many file formats to read (EXR, HDR) and write (PNG, JPG, TIF, BMP) - Added `render.hdri.file`, `render.hdri.ambient`, `render.background.skybox` options. - Deprecated `render.background.hdri` in favor of new options above - Deprecated previous image API - Add `loader::loadGeometry` allowing loading geometry from memory buffers For developers: - Added a deprecation framework - Removed `F3D_TESTING_ENABLE_HDRI_TESTS` cmake option and merged it with `F3D_TESTING_ENABLE_LONG_TIMEOUT_TESTS` - Added a Getting Started guide for beginners developers For F3D packagers: - Fixed compatibility with FreeBSD ## v2.1.0 For F3D users: - Reworked Animation support and added many animation related options - Added `--camera-direction` and `--camera-zoom-factor` and use it in default config file - Added `--texture-matcap` option to load a MatCap texture - Added support for opening HDRI background with Drop - Added .exr support for HDRI and textures - Improved HDRI caching performance - Added a EGL headless binary release - Added typo suggestion when failing to use the right option name - Added `--invert-zoom` option (libf3d: `interactor.invert-zoom`) to invert zoom direction with right-click on mouse - Added support for keeping camera position when reloading a file with `UP` key - Added a `--grid-absolute` option (libf3d: `render.grid.absolute`) to position the grid instead of being below the model - Added a \"Drop Zone\" when starting F3D without loading a file - Added coloring support for STEP files in binary release - Fixed an issue on Windows where the error window would popup even with `--quiet` - Fixed an issue with 16 bit and 32 bit textures with assimp plugin - Fixed an issue on Windows where errors where not visible - Fixed an HDRI issue on reload - Fixed a crash when with the progress bar on reloading a file - Fixed an issue where certain options from config file would be ignored - Fixed a crash with many GLTF files when an array does not have a name - Fixed an issue where dropping a duplicate file would change the loaded file instead of not doing anything - Fixed an issue when loading an unsupported file - Fixed an issue with VRML files - Improved config file for .ply files - Improved config file regex so that they are case-insensitive - Improved `--up` option to support no sign and better validation - Improved F3D version reporting about itself and VTK (`--version`) - Improved documentation, testing, help - Excluded TIFF format from Windows Thumbnailer - Changed the automatic camera position to a version more close to the data - Reduced size of binary release by a factor of two For developers: - Added vcpkg support for dependency installation For F3D packagers: - Added a `F3D_PLUGIN_OCCT_COLORING_SUPPORT` CMake variable to control if this feature is compiled, default is ON - Added `SONAME` support - Added a `F3D_PLUGINS_INSTALL_DIR` CMake variable to control where to install plugins - Added a new module: `F3D_MODULE_EXR` that depends on openexr - Added support to use external `cxxopts` and external `nlohmann-json` - Fixed a link issue with VTK modules - Fixed a `@loader_path` issue on MacOS - Added support for `CMAKE_INSTALL_*DIR` variables on installation - Added support for building against a EGL enabled VTK - Fixed a compilation issue with VTK master Contributors: @DeveloperPaul123 @topazus @bkmgit @snoyer @Meakk @mwestphal ## v2.0.0 For F3D users: - Removed `--fullscreen` options completely - Added a `--position` option to set the position of the F3D window - Added a `--light-intensity` option and associated bindings - Improved fish and zsh completion - Added a new interaction to center the camera on the point under the cursor using *middle* mouse button - Added HDRi caching for improved performance - Added scene bounding box to the dump interaction - Reworked lighting for fullscene format files - Improved grid rendering and customization greatly with new options - Improved HDRi blur performance and customization - Added support for reading config file directory instead of a single file - Changed config file location on Windows - PostFX option names have been changed - Added an interaction (down arrow) to load all files from the directory containing the current file - Added a `--group-geometries` option to load multiple default scene file into a single render window For libf3d users: - Reworked loader API from scratch - Fixed an issue with engine creation in the Python bindings - Fixed an issue with image Python bindings - Improved libf3d examples - Added experimental javascript bindings based on webassembly/emscriptem - Added dynamic support for all `model` options - Added plugin SDK to create your own plugins for any file format For F3D packagers: - Added plugins support for true optional dependencies - Added a `F3D_APPLICATION_LINK_FILESYSTEM` CMake option to control if F3D should link explicitly against libstdc++fs - Removed most of `F3D_INSTALL_` options with the switch to a component-based approach - Removed installation of useless static libs from VTKExtensions (needs VTK master) - Fixed RPATH of F3D for system using lib64 instead of lib - Many CMake option name changed - Fixed data license to use only permissive license for F3D testing data - Removed packaging support from F3D Contributors: @snoyer @mzf-guest @CharlesGueunet @myd7349 @allemangD @Meakk @mwestphal ## v1.3.1 - Fix raytracing support - Fix macOS window positioning Contributors: @mwestphal @Meakk ## v1.3.0 Main new features and fixes: - Introducing an alpha version of the libf3d, see below for more information - Added a --font-file option - Added support for Alembic file format (.abc). Geometry only. Thanks a lot @nyue. - Fixed many HDRI issues - Fixed an important drag and drop issue on linux Other fixes: - Fixed many doc and UI typos - Fixed shell completion - Fixed multiple issue with image comparison - Fixed an issue with --line-width and --point-size with full scene formats - Fixed an issue with translucent object and RGBA texture - Fixed issues with a few specific .gltf files - Fixed a window title issue on MacOS - Fixed multiple issues with the output window on Windows - Fixed issues with file association and thumbnails on Windows - Fixed a small issue with the cheatsheet not appearing in some cases - Fixed an issue with certain .obj files - Fixed a clipping issue when setting camera position - Removed fullscreen hotkey For F3D developers: - Updated cxxopts to 3.0.0 - Now using json.hpp for parsing json config file - Better reproducible build support - Improved CI with coverage, sanitizer, dedicated actions for dependencies - Complete rework of the architecture to separate F3D, the application, the libf3d (see below) and a VTKExtensions layer. - Improved unit testing by adding test in the libf3d and VTKExtensions layer For libf3d users: - Introducing an alpha version of the libf3d! - The libf3d is a C++ library to open and render 3D meshes, it is of course used by F3D and supports python bindings - More info available in README_libf3d.md Binary Release Information: - The binary release is **not** built with raytracing support - This binary release is built with assimp 5.1.2, animation for assimp formats is not working well Contributors: @schuhumi @herrriehm @rafcon-dev @mzf-guest @nyue @jpouderoux @Meakk @mwestphal ## v1.2.1 Bug fixes and features: - Fixed a build issue on MacOS - Fixed a critical issue with the Windows Thumbnailer that could crash explorer.exe - Fixed the --quiet option so that it actually quiets VTK errors and warnings - Fixed an issue with output window popping up at each log on Windows - Added a `.deb` package for Linux Debian-based distros For Packagers: - LFS file have been added in source code release, this seems to be retroactive, so hash of previous releases may have changed - Flatpack org name has been fixed Contributors: @Meakk @mwestphal @jpouderoux ## v1.2.0 Main New Features: - Added STEP and IGES file format support thanks to @Open-Cascade-SAS /[OCCT](https://github.com/Open-Cascade-SAS/OCCT) (thanks @drtrigon) - Added FBX, DAE, OFF, and DXF file format support thanks to @assimp /[assimp](https://github.com/assimp/assimp) - Added thumbnail support with many linux file managers - Added thumbnail support on Windows - Added desktop environment integration in linux - Added scalar and scalar component looping Other New Features: - Added support for KHR_materials_unlit with glTF files (thanks @spiraloid) - Added option for selecting camera `--camera-index` (thanks @spiraloid) - Added coloring the to Windows error output window - Added a man entry on Linux - Added a `--config` option to select a config file to load instead of using default location - Added a `--quiet` option - Added `--camera-azimuth` and `--camera-elevation` options (thanks @tatsuya-s) - Added a metainfo.xml file (thanks @kevinsmia1939) Issue Fixes: - Fixed an issue with opening files with accented char in the name on Windows (thanks @shankarsivarajan) - Fixed HDRI orientation with --up option (thanks @truhlikfredy) - Fixed an issue with point cloud rendering - Fixed a crash on exit on Windows - Fixed an issue with fullscreen window size on Windows - Fixed offscreen rendering (`--output` and `--ref` ) to actually use offscreen rendering - Fixed a memory leak when no rendering is performed (thanks @CharlesGueunet) - Fixed a rendering issue with certain GPU drivers - Fixed tone mapping with background opacity - Fixed non-working drag and drop implementation in VTK (thanks @msbit) - Fixed a potential sorting issue when opening a folder - Fixed a crash with unsupported glTF files in VTK For Developers: - Full rework of the CI framework, including coverage report support - Full rework of the testing framework - Separation of vtkF3DRenderer in two classes - Separation of f3d executable into a libf3d library and f3d executable to support windows thumbnails For Packagers: - New CMake options to select file to install, all documented and starting with F3D_ - mime types file can be installed, make sure to trigger update-mime-databse - desktop file can be installed, make sure to trigger update-desktop-database Packagers: AndnoVember @jokersus @kevinsmia1939 @yurivict @bcdarwin @mzf-guest @Meakk @mwestphal Binary Release Information: - The binary release is **not** built with raytracing support - This binary release is built with assimp 5.1.2, animation for assimp formats is not working well Contributors: @CharlesGueunet @kevinsmia1939 @mzf-guest @jpouderoux @Meakk @mwestphal ## v1.1.1 A patch release dedicated to package managers that makes F3D v1.1 compatible with vtk v9.1.0 - Fix a render pass build issue with vtk 9.1.0 - Fix a renderer build issue with vtk 9.1.0 Contributors: @Meakk @mwestphal ## v1.1.0 New Important Features: * **Added direct scalars color rendering mode**, see doc. * **Added a turntable interactor** and made it default. The previous interactor can still be used using a dedicated option. Thanks @orangebowlerhat @filip.sund and @jjomier for your suggestions. * **Added animation support** for glTF and Exodus files. Press space for playing the animation. * Added animation related option, --animation-index, only for glTF when using the full scene. New Readers and format compatibility features: * Added skinning and morphing support with glTF files. * Added TIFF format support. Thanks @proudot for your suggestion. * Added exodus format support. Thanks @gvernon for your suggestion. * Added support for OBJ with color directly inside of it instead of using a .mtl file. Thanks @Chenge321 for your suggestion. Quality of life features: * Added a hotkey (UP) to reload current file, thanks @caioaao. * Improved Alpha blending performance, thanks @paul.lafoix. * Changed the progress bar to a more nice looking one and made it appears only if loading takes time. Thanks @finetjul for the suggestion. * Improved logging mechanism with color on all OS and a dedicated output window on windows. * Added a warning when using RayTracing but it is not available. Fixes: * Fixed an issue with skybox and edges. * Fixed a crash when an array had no name. * Fixed a window naming issue on OSX. * Fixed a symlink issue. * Fixed a coloring issue with dataset containing only cell data. Packaging: * Upgraded the AUR f3d package to 1.1.0 : https://aur.archlinux.org/packages/f3d. * Added a Brew f3d 1.1.0 package : https://formulae.brew.sh/formula/f3d. * FreeBSD now contains a f3d 1.1.0 package, thanks to yuri@freebsd.org. * NixOS now contains a f3d package, 1.1.0 should come soon, thanks to bcdarwin@gmail.com. How to support F3D: * Use the software. * Share it with anyone interested. * Star us on github: https://github.com/kitware/F3D. Note: Binaries have no raytracing support. Contributors: @Meakk @mwestphal ## v1.0.1 - VisualStudio Runtime is now included into the windows release - Ensure VTK compatibility - Improve STL binary reader performances - Fix default configuration issues - Add support for Window icon on all OSes Note: Binaries have no raytracing support. Contributors: @Meakk @mwestphal ## v1.0.0 - Documentation - Online documentation based on Hexo (https://kitware.github.io/F3D/) - Rendering - Add volume rendering for 3D images - HDRI support (skyboxes, HDR files, Filmic tone mapping) - Point sprites for displaying point clouds - Color map customization (default one changed to “inferno”) - Interface - Drag&Drop files support - Supports opening of several files (or folder), use left/right arrow to navigate - Scalars field handling improvements - Cheat Sheet - Interactive hotkeys have been reworked - File association on Windows and OSX - Fullscreen mode - No background mode (useful when saving image to a PNG file with alpha channel) - Command line - Camera configuration - Metadata (field data) display - File name display - No render mode (useful to read information in the file) - Shell completion (supports bash, zsh, fish) - New readers - CityGML - PTS - Packages - Default config provide Note: Binaries have no raytracing support. Contributors: @Meakk @mwestphal @hlngrandmontagne Paul Lafoix ## v0.1.1 - Fixes `--version` and `--help` crash Contributors: @Meakk @mwestphal @jpouderoux ## v0.1.0 First release! Contributors: @Meakk @mwestphal @jpouderoux ", + "content": "# Changelog ## Ongoing development For F3D users: - Added `--animation-autoplay` option (libf3d: `scene.animation.autoplay`) to automatically start animation on file load. - Added an experimental VDB reader for .vdb files using OpenVDB - Changed `--verbose` into a string based option, eg: `--verbose=quiet` or `--verbose=debug`. `--verbose` is still supported. - Changed `--no-render` behavior so that it doesn't impact verbosity anymore - Deprecated `--quiet`, use `--verbose=quiet` instead. - Reading EXR files is now multi-threaded and much faster. - Translucency support is now enabled by default. - A small margin is added between the model and the grid to avoid potential z-fighting. - Add 3MF and X files support (part of `assimp` plugin) - Fix potential crashes when reading `assimp` plugin file format For libf3d users: - Added `scene.animation.autoplay` option. - Added a `f3d::image::saveBuffer` API to save an image as a file format in memory. For F3D packagers: - Added a new optional dependency through VTK, OpenVDB ## v2.2.1 For F3D users: - Added a native Apple Silicon release package - Added new options `hdri-file`, `hdri-ambient`, `hdri-skybox` to have more control on the HDRI behavior - Added a default HDRI used when providing no `hdri-file` - Added bindings to toggle HDRI ambient lighting (`F`) and HDRI skybox (`J`) - Added bindings to move the camera to standard locations: `1`: Front, `3`: Right, `7`: Top, `9`: Isometric - Added [Open CASCADE BRep format](https://dev.opencascade.org/doc/overview/html/specification__brep_format.html) to the OCCT plugin. - Fixed an infamous issue when the Windows thumbnailer always steal the focus - Fixed an issue with the binary release when opening draco files - Fixed an issue with matcap textures - Fixed an issue with HDRI lighting - Fixed an issue with HDRI lighting when dropping HDRI after a model - Fixed an issue where invalid option would not show on Windows - Fixed an issue where previously loaded file would stay visible - Fixed an issue when loading invalid EXR file as HDRI - Fixed cheatsheet menu rendering under 'Drop File Instructor' - Fixed raytracing rendering issues - Improved cheatsheet menu contrast for any background color - Improved overall text contrast for any background color - Improved performance when changing model and using a HDRI - Improved HDRI cache performance - Deprecated `hdri` option For libf3d users: - Reworked image API to support many file formats to read (EXR, HDR) and write (PNG, JPG, TIF, BMP) - Added `render.hdri.file`, `render.hdri.ambient`, `render.background.skybox` options. - Deprecated `render.background.hdri` in favor of new options above - Deprecated previous image API - Add `loader::loadGeometry` allowing loading geometry from memory buffers For developers: - Added a deprecation framework - Removed `F3D_TESTING_ENABLE_HDRI_TESTS` cmake option and merged it with `F3D_TESTING_ENABLE_LONG_TIMEOUT_TESTS` - Added a Getting Started guide for beginners developers For F3D packagers: - Fixed compatibility with FreeBSD ## v2.1.0 For F3D users: - Reworked Animation support and added many animation related options - Added `--camera-direction` and `--camera-zoom-factor` and use it in default config file - Added `--texture-matcap` option to load a MatCap texture - Added support for opening HDRI background with Drop - Added .exr support for HDRI and textures - Improved HDRI caching performance - Added a EGL headless binary release - Added typo suggestion when failing to use the right option name - Added `--invert-zoom` option (libf3d: `interactor.invert-zoom`) to invert zoom direction with right-click on mouse - Added support for keeping camera position when reloading a file with `UP` key - Added a `--grid-absolute` option (libf3d: `render.grid.absolute`) to position the grid instead of being below the model - Added a \"Drop Zone\" when starting F3D without loading a file - Added coloring support for STEP files in binary release - Fixed an issue on Windows where the error window would popup even with `--quiet` - Fixed an issue with 16 bit and 32 bit textures with assimp plugin - Fixed an issue on Windows where errors where not visible - Fixed an HDRI issue on reload - Fixed a crash when with the progress bar on reloading a file - Fixed an issue where certain options from config file would be ignored - Fixed a crash with many GLTF files when an array does not have a name - Fixed an issue where dropping a duplicate file would change the loaded file instead of not doing anything - Fixed an issue when loading an unsupported file - Fixed an issue with VRML files - Improved config file for .ply files - Improved config file regex so that they are case-insensitive - Improved `--up` option to support no sign and better validation - Improved F3D version reporting about itself and VTK (`--version`) - Improved documentation, testing, help - Excluded TIFF format from Windows Thumbnailer - Changed the automatic camera position to a version more close to the data - Reduced size of binary release by a factor of two For developers: - Added vcpkg support for dependency installation For F3D packagers: - Added a `F3D_PLUGIN_OCCT_COLORING_SUPPORT` CMake variable to control if this feature is compiled, default is ON - Added `SONAME` support - Added a `F3D_PLUGINS_INSTALL_DIR` CMake variable to control where to install plugins - Added a new module: `F3D_MODULE_EXR` that depends on openexr - Added support to use external `cxxopts` and external `nlohmann-json` - Fixed a link issue with VTK modules - Fixed a `@loader_path` issue on MacOS - Added support for `CMAKE_INSTALL_*DIR` variables on installation - Added support for building against a EGL enabled VTK - Fixed a compilation issue with VTK master Contributors: @DeveloperPaul123 @topazus @bkmgit @snoyer @Meakk @mwestphal ## v2.0.0 For F3D users: - Removed `--fullscreen` options completely - Added a `--position` option to set the position of the F3D window - Added a `--light-intensity` option and associated bindings - Improved fish and zsh completion - Added a new interaction to center the camera on the point under the cursor using *middle* mouse button - Added HDRi caching for improved performance - Added scene bounding box to the dump interaction - Reworked lighting for fullscene format files - Improved grid rendering and customization greatly with new options - Improved HDRi blur performance and customization - Added support for reading config file directory instead of a single file - Changed config file location on Windows - PostFX option names have been changed - Added an interaction (down arrow) to load all files from the directory containing the current file - Added a `--group-geometries` option to load multiple default scene file into a single render window For libf3d users: - Reworked loader API from scratch - Fixed an issue with engine creation in the Python bindings - Fixed an issue with image Python bindings - Improved libf3d examples - Added experimental javascript bindings based on webassembly/emscriptem - Added dynamic support for all `model` options - Added plugin SDK to create your own plugins for any file format For F3D packagers: - Added plugins support for true optional dependencies - Added a `F3D_APPLICATION_LINK_FILESYSTEM` CMake option to control if F3D should link explicitly against libstdc++fs - Removed most of `F3D_INSTALL_` options with the switch to a component-based approach - Removed installation of useless static libs from VTKExtensions (needs VTK master) - Fixed RPATH of F3D for system using lib64 instead of lib - Many CMake option name changed - Fixed data license to use only permissive license for F3D testing data - Removed packaging support from F3D Contributors: @snoyer @mzf-guest @CharlesGueunet @myd7349 @allemangD @Meakk @mwestphal ## v1.3.1 - Fix raytracing support - Fix macOS window positioning Contributors: @mwestphal @Meakk ## v1.3.0 Main new features and fixes: - Introducing an alpha version of the libf3d, see below for more information - Added a --font-file option - Added support for Alembic file format (.abc). Geometry only. Thanks a lot @nyue. - Fixed many HDRI issues - Fixed an important drag and drop issue on linux Other fixes: - Fixed many doc and UI typos - Fixed shell completion - Fixed multiple issue with image comparison - Fixed an issue with --line-width and --point-size with full scene formats - Fixed an issue with translucent object and RGBA texture - Fixed issues with a few specific .gltf files - Fixed a window title issue on MacOS - Fixed multiple issues with the output window on Windows - Fixed issues with file association and thumbnails on Windows - Fixed a small issue with the cheatsheet not appearing in some cases - Fixed an issue with certain .obj files - Fixed a clipping issue when setting camera position - Removed fullscreen hotkey For F3D developers: - Updated cxxopts to 3.0.0 - Now using json.hpp for parsing json config file - Better reproducible build support - Improved CI with coverage, sanitizer, dedicated actions for dependencies - Complete rework of the architecture to separate F3D, the application, the libf3d (see below) and a VTKExtensions layer. - Improved unit testing by adding test in the libf3d and VTKExtensions layer For libf3d users: - Introducing an alpha version of the libf3d! - The libf3d is a C++ library to open and render 3D meshes, it is of course used by F3D and supports python bindings - More info available in README_libf3d.md Binary Release Information: - The binary release is **not** built with raytracing support - This binary release is built with assimp 5.1.2, animation for assimp formats is not working well Contributors: @schuhumi @herrriehm @rafcon-dev @mzf-guest @nyue @jpouderoux @Meakk @mwestphal ## v1.2.1 Bug fixes and features: - Fixed a build issue on MacOS - Fixed a critical issue with the Windows Thumbnailer that could crash explorer.exe - Fixed the --quiet option so that it actually quiets VTK errors and warnings - Fixed an issue with output window popping up at each log on Windows - Added a `.deb` package for Linux Debian-based distros For Packagers: - LFS file have been added in source code release, this seems to be retroactive, so hash of previous releases may have changed - Flatpack org name has been fixed Contributors: @Meakk @mwestphal @jpouderoux ## v1.2.0 Main New Features: - Added STEP and IGES file format support thanks to @Open-Cascade-SAS /[OCCT](https://github.com/Open-Cascade-SAS/OCCT) (thanks @drtrigon) - Added FBX, DAE, OFF, and DXF file format support thanks to @assimp /[assimp](https://github.com/assimp/assimp) - Added thumbnail support with many linux file managers - Added thumbnail support on Windows - Added desktop environment integration in linux - Added scalar and scalar component looping Other New Features: - Added support for KHR_materials_unlit with glTF files (thanks @spiraloid) - Added option for selecting camera `--camera-index` (thanks @spiraloid) - Added coloring the to Windows error output window - Added a man entry on Linux - Added a `--config` option to select a config file to load instead of using default location - Added a `--quiet` option - Added `--camera-azimuth` and `--camera-elevation` options (thanks @tatsuya-s) - Added a metainfo.xml file (thanks @kevinsmia1939) Issue Fixes: - Fixed an issue with opening files with accented char in the name on Windows (thanks @shankarsivarajan) - Fixed HDRI orientation with --up option (thanks @truhlikfredy) - Fixed an issue with point cloud rendering - Fixed a crash on exit on Windows - Fixed an issue with fullscreen window size on Windows - Fixed offscreen rendering (`--output` and `--ref` ) to actually use offscreen rendering - Fixed a memory leak when no rendering is performed (thanks @CharlesGueunet) - Fixed a rendering issue with certain GPU drivers - Fixed tone mapping with background opacity - Fixed non-working drag and drop implementation in VTK (thanks @msbit) - Fixed a potential sorting issue when opening a folder - Fixed a crash with unsupported glTF files in VTK For Developers: - Full rework of the CI framework, including coverage report support - Full rework of the testing framework - Separation of vtkF3DRenderer in two classes - Separation of f3d executable into a libf3d library and f3d executable to support windows thumbnails For Packagers: - New CMake options to select file to install, all documented and starting with F3D_ - mime types file can be installed, make sure to trigger update-mime-databse - desktop file can be installed, make sure to trigger update-desktop-database Packagers: AndnoVember @jokersus @kevinsmia1939 @yurivict @bcdarwin @mzf-guest @Meakk @mwestphal Binary Release Information: - The binary release is **not** built with raytracing support - This binary release is built with assimp 5.1.2, animation for assimp formats is not working well Contributors: @CharlesGueunet @kevinsmia1939 @mzf-guest @jpouderoux @Meakk @mwestphal ## v1.1.1 A patch release dedicated to package managers that makes F3D v1.1 compatible with vtk v9.1.0 - Fix a render pass build issue with vtk 9.1.0 - Fix a renderer build issue with vtk 9.1.0 Contributors: @Meakk @mwestphal ## v1.1.0 New Important Features: * **Added direct scalars color rendering mode**, see doc. * **Added a turntable interactor** and made it default. The previous interactor can still be used using a dedicated option. Thanks @orangebowlerhat @filip.sund and @jjomier for your suggestions. * **Added animation support** for glTF and Exodus files. Press space for playing the animation. * Added animation related option, --animation-index, only for glTF when using the full scene. New Readers and format compatibility features: * Added skinning and morphing support with glTF files. * Added TIFF format support. Thanks @proudot for your suggestion. * Added exodus format support. Thanks @gvernon for your suggestion. * Added support for OBJ with color directly inside of it instead of using a .mtl file. Thanks @Chenge321 for your suggestion. Quality of life features: * Added a hotkey (UP) to reload current file, thanks @caioaao. * Improved Alpha blending performance, thanks @paul.lafoix. * Changed the progress bar to a more nice looking one and made it appears only if loading takes time. Thanks @finetjul for the suggestion. * Improved logging mechanism with color on all OS and a dedicated output window on windows. * Added a warning when using RayTracing but it is not available. Fixes: * Fixed an issue with skybox and edges. * Fixed a crash when an array had no name. * Fixed a window naming issue on OSX. * Fixed a symlink issue. * Fixed a coloring issue with dataset containing only cell data. Packaging: * Upgraded the AUR f3d package to 1.1.0 : https://aur.archlinux.org/packages/f3d. * Added a Brew f3d 1.1.0 package : https://formulae.brew.sh/formula/f3d. * FreeBSD now contains a f3d 1.1.0 package, thanks to yuri@freebsd.org. * NixOS now contains a f3d package, 1.1.0 should come soon, thanks to bcdarwin@gmail.com. How to support F3D: * Use the software. * Share it with anyone interested. * Star us on github: https://github.com/kitware/F3D. Note: Binaries have no raytracing support. Contributors: @Meakk @mwestphal ## v1.0.1 - VisualStudio Runtime is now included into the windows release - Ensure VTK compatibility - Improve STL binary reader performances - Fix default configuration issues - Add support for Window icon on all OSes Note: Binaries have no raytracing support. Contributors: @Meakk @mwestphal ## v1.0.0 - Documentation - Online documentation based on Hexo (https://kitware.github.io/F3D/) - Rendering - Add volume rendering for 3D images - HDRI support (skyboxes, HDR files, Filmic tone mapping) - Point sprites for displaying point clouds - Color map customization (default one changed to “inferno”) - Interface - Drag&Drop files support - Supports opening of several files (or folder), use left/right arrow to navigate - Scalars field handling improvements - Cheat Sheet - Interactive hotkeys have been reworked - File association on Windows and OSX - Fullscreen mode - No background mode (useful when saving image to a PNG file with alpha channel) - Command line - Camera configuration - Metadata (field data) display - File name display - No render mode (useful to read information in the file) - Shell completion (supports bash, zsh, fish) - New readers - CityGML - PTS - Packages - Default config provide Note: Binaries have no raytracing support. Contributors: @Meakk @mwestphal @hlngrandmontagne Paul Lafoix ## v0.1.1 - Fixes `--version` and `--help` crash Contributors: @Meakk @mwestphal @jpouderoux ## v0.1.0 First release! Contributors: @Meakk @mwestphal @jpouderoux ", "url": "/doc/CHANGELOG.html", "relUrl": "/doc/CHANGELOG.html" @@ -50,7 +50,7 @@ },"7": { "doc": "Build", "title": "Build", - "content": "# Build guide F3D uses a CMake based build system, so building F3D just requires installing needed dependencies, configuring and building. If you are not used to such processes please take a look at our [getting started guide](/doc/dev/GETTING_STARTED.html). ## Dependencies * [CMake](https://cmake.org) >= 3.1. * [VTK](https://vtk.org) >= 9.0.0 (9.2.6 recommended). * A C++17 compiler. * A CMake-compatible build system (Visual Studio, XCode, Ninja, Make, etc.). * Optionally, [Assimp](https://www.assimp.org/) >= 5.0. * Optionally, Open CASCADE [OCCT](https://dev.opencascade.org/) >= 7.5.2. * Optionally, [Alembic](http://www.alembic.io/) >= 1.7. * Optionally, [OpenUSD](https://openusd.org/release/index.html) >= 23.05. * Optionally, [OpenVDB](https://www.openvdb.org/download/) >= 10.0.0, enable `IOOpenVDB` VTK module. * Optionally, [Draco](https://google.github.io/draco/) >= 1.5. * Optionally, [Python](https://www.python.org/) >= 3.6 and [pybind11](https://github.com/pybind/pybind11) >= 2.2. * Optionally, [Java](https://www.java.com) >= 18. * Optionally, [OpenEXR](https://openexr.com/en/latest/) >= 3.0. ## VTK compatibility As stated in the dependencies, F3D is compatible with VTK >= 9.0.0, however, many features are only available in certain conditions. We suggest using VTK 9.2.6 with RenderingRayTracing, RenderingExternal, IOExodus and IOOpenVDB modules enabled in order to get as many features as possible in F3D. ## Configuration and building Configure and generate the project with CMake, then build the software using your build system. Here is some CMake options of interest: * `F3D_BUILD_APPLICATION`: Build the F3D executable. * `BUILD_TESTING`: Enable the [tests](/doc/dev/TESTING.html). * `F3D_MACOS_BUNDLE`: On macOS, build a `.app` bundle. * `F3D_WINDOWS_GUI`: On Windows, build a Win32 application (without console). * `F3D_WINDOWS_BUILD_SHELL_THUMBNAILS_EXTENSION`: On Windows, build the shell thumbnails extension. * `F3D_PLUGINS_STATIC_BUILD`: Build all plugins as static library (embedded into `libf3d`) and automatically loaded by the application. Incompatible with `F3D_MACOS_BUNDLE`. Some modules, plugins and bindings depending on external libraries can be optionally enabled with the following CMake variables: * `F3D_MODULE_RAYTRACING`: Support for raytracing rendering. Requires that VTK has been built with `OSPRay` and `VTK_MODULE_ENABLE_VTK_RenderingRayTracing` turned on. Disabled by default. * `F3D_MODULE_EXTERNAL_RENDERING`: Support for external render window. Requires that VTK has been built with `VTK_MODULE_ENABLE_VTK_RenderingExternal` turned on. Disabled by default. * `F3D_MODULE_EXR`: Support for OpenEXR images. Requires `OpenEXR`. Disabled by default. * `F3D_PLUGIN_BUILD_EXODUS`: Support for ExodusII (.ex2) file format. Requires that VTK has been built with `IOExodus` module (and `hdf5`). Enabled by default. * `F3D_PLUGIN_BUILD_OCCT`: Support for STEP, IGES and BREP file formats. Requires `OpenCASCADE`. Disabled by default. * `F3D_PLUGIN_BUILD_ASSIMP`: Support for FBX, DAE, OFF, DXF and X file formats. Requires `Assimp`. Disabled by default. * `F3D_PLUGIN_BUILD_ALEMBIC`: Support for ABC file format. Requires `Alembic`. Disabled by default. * `F3D_PLUGIN_BUILD_DRACO`: Support for DRC file format. Requires `Draco`. Disabled by default. * `F3D_PLUGIN_BUILD_USD`: Support for USD file format. Requires `OpenUSD`. Disabled by default. * `F3D_PLUGIN_BUILD_VDB`: Support for VDB file format. Requires that VTK has been built with `IOOpenVDB` module (and `OpenVDB`). Disabled by default. * `F3D_BINDINGS_PYTHON`: Generate python bindings (requires `Python` and `pybind11`). Disabled by default. * `F3D_BINDINGS_JAVA`: Generate java bindings (requires `Java` and `JNI`). Disabled by default. ## VCPKG It's possible to use VCPKG to automatically build dependencies. A manifest file `vcpkg.json` is available at your convenience. Please read [VCPKG documentation](https://vcpkg.io/en/getting-started.html). Basically, just install VCPKG, and configure F3D using `-DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake` option. ## Installing Installation can be done through CMake, by running the following command: ``` cmake --install ${your_build_dir} ``` Individual components can also be installed by specifying the component name: ``` cmake --install ${your_build_dir} --component ${component_name} ``` Here is the list of all the components: Name|Installed by default|Operating system|Description ------|------|------|------ `application`|YES|ALL|F3D application `configuration`|NO|ALL|Default configuration files, `config` and `thumbnail`. `library`|YES|ALL|libf3d library binaries `plugin`|YES|ALL|libf3d plugins `dependencies`|NO|ALL|libf3d runtime dependencies. Can be used to create a self-contained and relocatable package. System libraries are excluded. `sdk`|NO|ALL|libf3d SDK (headers and CMake config files) `licenses`|YES|ALL|F3D and third party licenses `documentation`|YES|Linux|`man` documentation `shellext`|YES|Windows/Linux|Desktop integration `python`|YES|ALL|Python bindings `java`|YES|ALL|Java bindings `mimetypes`|NO|Linux|Plugins mimetype XML files for integration with Freedesktop `assets`|YES|Linux|Assets for integration with Freedesktop ", + "content": "# Build guide F3D uses a CMake based build system, so building F3D just requires installing needed dependencies, configuring and building. If you are not used to such processes please take a look at our [getting started guide](/doc/dev/GETTING_STARTED.html). ## Dependencies * [CMake](https://cmake.org) >= 3.1. * [VTK](https://vtk.org) >= 9.0.0 (9.2.6 recommended). * A C++17 compiler. * A CMake-compatible build system (Visual Studio, XCode, Ninja, Make, etc.). * Optionally, [Assimp](https://www.assimp.org/) >= 5.0. * Optionally, Open CASCADE [OCCT](https://dev.opencascade.org/) >= 7.5.2. * Optionally, [Alembic](http://www.alembic.io/) >= 1.7. * Optionally, [OpenUSD](https://openusd.org/release/index.html) >= 23.05. * Optionally, [OpenVDB](https://www.openvdb.org/download/) >= 10.0.0, enable `IOOpenVDB` VTK module. * Optionally, [Draco](https://google.github.io/draco/) >= 1.5. * Optionally, [Python](https://www.python.org/) >= 3.6 and [pybind11](https://github.com/pybind/pybind11) >= 2.2. * Optionally, [Java](https://www.java.com) >= 18. * Optionally, [OpenEXR](https://openexr.com/en/latest/) >= 3.0. ## VTK compatibility As stated in the dependencies, F3D is compatible with VTK >= 9.0.0, however, many features are only available in certain conditions. We suggest using VTK 9.2.6 with RenderingRayTracing, RenderingExternal, IOExodus and IOOpenVDB modules enabled in order to get as many features as possible in F3D. ## Configuration and building Configure and generate the project with CMake, then build the software using your build system. Here is some CMake options of interest: * `F3D_BUILD_APPLICATION`: Build the F3D executable. * `BUILD_TESTING`: Enable the [tests](/doc/dev/TESTING.html). * `F3D_MACOS_BUNDLE`: On macOS, build a `.app` bundle. * `F3D_WINDOWS_GUI`: On Windows, build a Win32 application (without console). * `F3D_WINDOWS_BUILD_SHELL_THUMBNAILS_EXTENSION`: On Windows, build the shell thumbnails extension. * `F3D_PLUGINS_STATIC_BUILD`: Build all plugins as static library (embedded into `libf3d`) and automatically loaded by the application. Incompatible with `F3D_MACOS_BUNDLE`. Some modules, plugins and bindings depending on external libraries can be optionally enabled with the following CMake variables: * `F3D_MODULE_RAYTRACING`: Support for raytracing rendering. Requires that VTK has been built with `OSPRay` and `VTK_MODULE_ENABLE_VTK_RenderingRayTracing` turned on. Disabled by default. * `F3D_MODULE_EXTERNAL_RENDERING`: Support for external render window. Requires that VTK has been built with `VTK_MODULE_ENABLE_VTK_RenderingExternal` turned on. Disabled by default. * `F3D_MODULE_EXR`: Support for OpenEXR images. Requires `OpenEXR`. Disabled by default. * `F3D_PLUGIN_BUILD_EXODUS`: Support for ExodusII (.ex2) file format. Requires that VTK has been built with `IOExodus` module (and `hdf5`). Enabled by default. * `F3D_PLUGIN_BUILD_OCCT`: Support for STEP, IGES and BREP file formats. Requires `OpenCASCADE`. Disabled by default. * `F3D_PLUGIN_BUILD_ASSIMP`: Support for FBX, DAE, OFF, DXF, X and 3MF file formats. Requires `Assimp`. Disabled by default. * `F3D_PLUGIN_BUILD_ALEMBIC`: Support for ABC file format. Requires `Alembic`. Disabled by default. * `F3D_PLUGIN_BUILD_DRACO`: Support for DRC file format. Requires `Draco`. Disabled by default. * `F3D_PLUGIN_BUILD_USD`: Support for USD file format. Requires `OpenUSD`. Disabled by default. * `F3D_PLUGIN_BUILD_VDB`: Support for VDB file format. Requires that VTK has been built with `IOOpenVDB` module (and `OpenVDB`). Disabled by default. * `F3D_BINDINGS_PYTHON`: Generate python bindings (requires `Python` and `pybind11`). Disabled by default. * `F3D_BINDINGS_JAVA`: Generate java bindings (requires `Java` and `JNI`). Disabled by default. ## VCPKG It's possible to use VCPKG to automatically build dependencies. A manifest file `vcpkg.json` is available at your convenience. Please read [VCPKG documentation](https://vcpkg.io/en/getting-started.html). Basically, just install VCPKG, and configure F3D using `-DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake` option. ## Installing Installation can be done through CMake, by running the following command: ``` cmake --install ${your_build_dir} ``` Individual components can also be installed by specifying the component name: ``` cmake --install ${your_build_dir} --component ${component_name} ``` Here is the list of all the components: Name|Installed by default|Operating system|Description ------|------|------|------ `application`|YES|ALL|F3D application `configuration`|NO|ALL|Default configuration files, `config` and `thumbnail`. `library`|YES|ALL|libf3d library binaries `plugin`|YES|ALL|libf3d plugins `dependencies`|NO|ALL|libf3d runtime dependencies. Can be used to create a self-contained and relocatable package. System libraries are excluded. `sdk`|NO|ALL|libf3d SDK (headers and CMake config files) `licenses`|YES|ALL|F3D and third party licenses `documentation`|YES|Linux|`man` documentation `shellext`|YES|Windows/Linux|Desktop integration `python`|YES|ALL|Python bindings `java`|YES|ALL|Java bindings `mimetypes`|NO|Linux|Plugins mimetype XML files for integration with Freedesktop `assets`|YES|Linux|Assets for integration with Freedesktop ", "url": "/doc/dev/BUILD.html", "relUrl": "/doc/dev/BUILD.html" @@ -162,7 +162,7 @@ },"23": { "doc": "Limitations and Troubleshooting", "title": "Limitations and Troubleshooting", - "content": "# Limitations Here is a non exhaustive list of F3D limitations: * No support for specifying manual lighting in the default scene apart from using `--light-intensity` option. * Multiblock (.vtm, .gml) support is partial, non-surfacic data will be converted into surfaces. * Animation support with full scene data format require VTK >= 9.0.20201016. * Full drag and drop support require VTK >= 9.0.20210620 * Drag and drop interaction cannot be recorded nor played back. * Volume rendering and HDRI support requires a decent GPU. * The `--camera-zoom-factor` option require VTK >= 9.3.0 ## Assimp FBX, DAE, OFF, DXF and X file formats rely on [Assimp](https://github.com/assimp/assimp) library. It comes with some known limitations: - PBR materials are not supported for FBX file format. - Complex animations are not working very well with Assimp 5.1, it's recommended to use Assimp 5.0 for this use case. - Only one animation can be shown at a time, showing all animations is not supported yet. - Some files can be empty, crash, or show artifacts. - DXF support is very limited: only files with polylines and 3D faces are displayed. ## Alembic ABC file formats rely on [Alembic](https://github.com/alembic/alembic) library. It comes with some known limitations: - Supports only simple polygonal geometry. - Does not support ArbGeomParam feature in Alembic. - Does not support Subdivision Meshes. - Does not support Materials. - Does not support Animations. ## USD USD file formats rely on [OpenUSD](https://github.com/PixarAnimationStudios/OpenUSD) library. It comes with some known limitations: - Skinning is slow and baked on the CPU. - Does not support Face-varying attributes. - The `usd` plugin is not shipped in the python wheels yet. ## VDB VDB file formats rely on [OpenVDB](https://github.com/AcademySoftwareFoundation/openvdb) and VTK libraries. It currently comes with some known limitations: - VDB Grid files are opened with a hard-coded 0.1 sampling rate. - The `vdb` plugin is not shipped in the python wheels yet. # Troubleshooting ## General > I have built F3D with raytracing support but the denoiser is not working. Make sure that VTK has been built with *OpenImageDenoise* support (`VTKOSPRAY_ENABLE_DENOISER` option). > My model shows up all wrong, with inverted surfaces everywhere. Your data probably contains some translucent data for some reason, turn on translucency support by pressing `P` or using the `-p` command line option. ## Linux > I have a link error related to `stdc++fs` not found. With some C++ STD library version, explicit linking to `stdc++fs` is not supported. We provide a CMake option `F3D_LINUX_APPLICATION_LINK_FILESYSTEM` that you can set to `OFF` to workaround this issue. > I have a link error related to undefined reference to symbol of `libatomic`. The GCC flag `-latomic` is not being added automatically with specific architectures, like `armel` and `RISCV64`. We provide a CMake option `F3D_LINUX_LIBRARY_LINK_ATOMIC` that you can set to `ON` to workaround this issue. > Thumbnails are not working in my file manager. * Check that your file manager supports the thumbnailer mechanism. * Check that you have updated your mime type database. * If all fails, remove your `.cache` user dir and check that `pcmanfm` thumbnails are working. * If they are working, then it is an issue specific to your file manager (see below for a potential work around). * If only a few format have working thumbnails, then it is an issue with the mime types database. * If no formats have working thumbnails, then it is an issue with the `f3d-plugin-xxx.thumbnailer` files. * If only big file do not have thumbnails, this is intended, you can modify this behavior in the `thumbnail.d/10_global.json` configuration folder using the `max-size` option. Some file managers (eg: Nautilus) are using sandboxing for thumbnails, which the F3D standard binary release does not support as it needs access to the Xorg server to render anything. In that case, you want to use the headless version of F3D that rely on EGL instead of Xorg, available in the [releases page](https://github.com/f3d-app/f3d/releases). If you use the portable archive, make sure to extract it somewhere the sandboxing system has access to, eg: Nautilus uses `bwrap` and gives it access to `/usr` but not to `/opt`. ## Windows > Using the portable binary release, I'm unable to run F3D because Windows warns about a security risk F3D is not signed by Microsoft yet so Windows shows this warning. Just click on the \"more\" button to be able to run F3D. > After installing F3D or registering the shell extension, my explorer is broken. Unregister the shell extension by running: ``` cd C:\\path\\to\\f3d\\bin\\ regsvr32 /u F3DShellExtension.dll ``` > I use F3D in a VM, the application fails to launch. OpenGL applications like F3D can have issues when launched from Windows Server or from a guest Windows because the access to the GPU is restricted. You can try to use a software implementation of OpenGL, called [Mesa](https://github.com/pal1000/mesa-dist-win/releases). * Download the latest `release-msvc`. * copy `x64/opengl32.dll`, `libgallium_wgl.dll` and `x64/libglapi.dll` in the same folder as `f3d.exe`. * set the environment variable `MESA_GL_VERSION_OVERRIDE` to 4.5. * run `f3d.exe`. > I run f3d from the command prompt and my Unicode characters are not displayed properly. Set the codepage to UTF-8, run `chcp 65001`. > When I install F3D, I can't add F3D to the path and the installer complains that: `PATH too long installer unable to modify PATH!`. There are too many entry in your PATH environment variable, remove the ones you do not use. > When I try to update F3D, the installer fails with: `Error opening file for writing: F3DShellExtension.dll` Your previous F3D installation is current being used to generate thumbnails, wait for a bit or reboot your computer before updating again. ## macOS > I'm unable to use the binary release, macOS complains the file is invalid or corrupted Our macOS binary package are not signed, to work around this, you can simply run the following command: ``` xattr -cr /Applications/F3D.app ``` Then F3D should work as expected. > Using the silicon binary release, I cannot find the raytracing feature or open exodus files F3D raytracing and exodus plugin are not working on macOS silicon yet, see this [issue](https://github.com/f3d-app/f3d/issues/976). > I'm unable to get coloring right with step files F3D on macOS does not support coloring on cells because of a [VTK issue](https://gitlab.kitware.com/vtk/vtk/-/issues/18969). ## Python > I can't find `usd` and `vdb` plugins after installing f3d with pip The `usd` and `vdb` plugins are not shipped in the python wheels for now, you can compile F3D yourself with them though. > Raytracing does not work after installing f3d with pip F3D raytracing feature is not shipped in the python wheels for now, you can compile F3D yourself with it though. ", + "content": "# Limitations Here is a non exhaustive list of F3D limitations: * No support for specifying manual lighting in the default scene apart from using `--light-intensity` option. * Multiblock (.vtm, .gml) support is partial, non-surfacic data will be converted into surfaces. * Animation support with full scene data format require VTK >= 9.0.20201016. * Full drag and drop support require VTK >= 9.0.20210620 * Drag and drop interaction cannot be recorded nor played back. * Volume rendering and HDRI support requires a decent GPU. * The `--camera-zoom-factor` option require VTK >= 9.3.0 ## Assimp FBX, DAE, OFF, DXF, X and 3MF file formats rely on [Assimp](https://github.com/assimp/assimp) library. It comes with some known limitations: - PBR materials are not supported for FBX file format. - Complex animations are not working very well with Assimp 5.1, it's recommended to use Assimp 5.0 for this use case. - Only one animation can be shown at a time, showing all animations is not supported yet. - Some files can be empty, crash, or show artifacts. - DXF support is very limited: only files with polylines and 3D faces are displayed. - 3MF files may crash at exit (issue in Assimp: https://github.com/assimp/assimp/issues/5328) - Only support RBGA 8-bits embedded textures ## Alembic ABC file formats rely on [Alembic](https://github.com/alembic/alembic) library. It comes with some known limitations: - Supports only simple polygonal geometry. - Does not support ArbGeomParam feature in Alembic. - Does not support Subdivision Meshes. - Does not support Materials. - Does not support Animations. ## USD USD file formats rely on [OpenUSD](https://github.com/PixarAnimationStudios/OpenUSD) library. It comes with some known limitations: - Skinning is slow and baked on the CPU. - Does not support Face-varying attributes. - The `usd` plugin is not shipped in the python wheels yet. ## VDB VDB file formats rely on [OpenVDB](https://github.com/AcademySoftwareFoundation/openvdb) and VTK libraries. It currently comes with some known limitations: - VDB Grid files are opened with a hard-coded 0.1 sampling rate. - The `vdb` plugin is not shipped in the python wheels yet. # Troubleshooting ## General > I have built F3D with raytracing support but the denoiser is not working. Make sure that VTK has been built with *OpenImageDenoise* support (`VTKOSPRAY_ENABLE_DENOISER` option). > My model shows up all wrong, with inverted surfaces everywhere. Your data probably contains some translucent data for some reason, turn on translucency support by pressing `P` or using the `-p` command line option. ## Linux > I have a link error related to `stdc++fs` not found. With some C++ STD library version, explicit linking to `stdc++fs` is not supported. We provide a CMake option `F3D_LINUX_APPLICATION_LINK_FILESYSTEM` that you can set to `OFF` to workaround this issue. > I have a link error related to undefined reference to symbol of `libatomic`. The GCC flag `-latomic` is not being added automatically with specific architectures, like `armel` and `RISCV64`. We provide a CMake option `F3D_LINUX_LIBRARY_LINK_ATOMIC` that you can set to `ON` to workaround this issue. > Thumbnails are not working in my file manager. * Check that your file manager supports the thumbnailer mechanism. * Check that you have updated your mime type database. * If all fails, remove your `.cache` user dir and check that `pcmanfm` thumbnails are working. * If they are working, then it is an issue specific to your file manager (see below for a potential work around). * If only a few format have working thumbnails, then it is an issue with the mime types database. * If no formats have working thumbnails, then it is an issue with the `f3d-plugin-xxx.thumbnailer` files. * If only big file do not have thumbnails, this is intended, you can modify this behavior in the `thumbnail.d/10_global.json` configuration folder using the `max-size` option. Some file managers (eg: Nautilus) are using sandboxing for thumbnails, which the F3D standard binary release does not support as it needs access to the Xorg server to render anything. In that case, you want to use the headless version of F3D that rely on EGL instead of Xorg, available in the [releases page](https://github.com/f3d-app/f3d/releases). If you use the portable archive, make sure to extract it somewhere the sandboxing system has access to, eg: Nautilus uses `bwrap` and gives it access to `/usr` but not to `/opt`. ## Windows > Using the portable binary release, I'm unable to run F3D because Windows warns about a security risk F3D is not signed by Microsoft yet so Windows shows this warning. Just click on the \"more\" button to be able to run F3D. > After installing F3D or registering the shell extension, my explorer is broken. Unregister the shell extension by running: ``` cd C:\\path\\to\\f3d\\bin\\ regsvr32 /u F3DShellExtension.dll ``` > I use F3D in a VM, the application fails to launch. OpenGL applications like F3D can have issues when launched from Windows Server or from a guest Windows because the access to the GPU is restricted. You can try to use a software implementation of OpenGL, called [Mesa](https://github.com/pal1000/mesa-dist-win/releases). * Download the latest `release-msvc`. * copy `x64/opengl32.dll`, `libgallium_wgl.dll` and `x64/libglapi.dll` in the same folder as `f3d.exe`. * set the environment variable `MESA_GL_VERSION_OVERRIDE` to 4.5. * run `f3d.exe`. > I run f3d from the command prompt and my Unicode characters are not displayed properly. Set the codepage to UTF-8, run `chcp 65001`. > When I install F3D, I can't add F3D to the path and the installer complains that: `PATH too long installer unable to modify PATH!`. There are too many entry in your PATH environment variable, remove the ones you do not use. > When I try to update F3D, the installer fails with: `Error opening file for writing: F3DShellExtension.dll` Your previous F3D installation is current being used to generate thumbnails, wait for a bit or reboot your computer before updating again. ## macOS > I'm unable to use the binary release, macOS complains the file is invalid or corrupted Our macOS binary package are not signed, to work around this, you can simply run the following command: ``` xattr -cr /Applications/F3D.app ``` Then F3D should work as expected. > Using the silicon binary release, I cannot find the raytracing feature or open exodus files F3D raytracing and exodus plugin are not working on macOS silicon yet, see this [issue](https://github.com/f3d-app/f3d/issues/976). > I'm unable to get coloring right with step files F3D on macOS does not support coloring on cells because of a [VTK issue](https://gitlab.kitware.com/vtk/vtk/-/issues/18969). ## Python > I can't find `usd` and `vdb` plugins after installing f3d with pip The `usd` and `vdb` plugins are not shipped in the python wheels for now, you can compile F3D yourself with them though. > Raytracing does not work after installing f3d with pip F3D raytracing feature is not shipped in the python wheels for now, you can compile F3D yourself with it though. ", "url": "/doc/user/LIMITATIONS_AND_TROUBLESHOOTING.html", "relUrl": "/doc/user/LIMITATIONS_AND_TROUBLESHOOTING.html" @@ -183,7 +183,7 @@ },"26": { "doc": "Usage", "title": "Usage", - "content": "# Usage Once F3D has been [installed](/doc/user/INSTALLATION.html), you should be able to open any [supported file](#supported-file-formats), by either: * Using F3D automatically, from your file manager, by directly opening a file. * Running F3D and then dragging and dropping files into it to open them. * By running F3D from the terminal with a set of command-line [options](/doc/user/OPTIONS.html). * As a [thumbnailer](/doc/user/DESKTOP_INTEGRATION.html) for all supported file formats with certain file managers. ## Supported file formats Here is the list of supported file formats: * **.vtk** : the legacy VTK format * **.vt[p\\|u\\|r\\|i\\|s\\|m]** : XML based VTK formats * **.ply** : Polygon File format * **.stl** : Standard Triangle Language format * **.dcm** : DICOM file format * **.nrrd/.nhrd** : \"nearly raw raster data\" file format * **.mhd/.mha** : MetaHeader MetaIO file format * **.tif/.tiff** : TIFF 2D/3D file format * **.ex2/.e/.exo/.g** : Exodus 2 file format * **.gml** : CityGML file format * **.pts** : Point Cloud file format * **.step/.stp** : CAD STEP exchange ISO format * **.iges/.igs** : CAD Initial Graphics Exchange Specification format * **.brep** : Open CASCADE BRep format * **.abc** : Alembic format * **.vdb** : VDB format (experimental) * **.obj** : Wavefront OBJ file format (full scene and default scene) * **.gltf/.glb** : GL Transmission Format (full scene and default scene) * **.3ds** : Autodesk 3D Studio file format (full scene) * **.wrl** : VRML file format (full scene) * **.fbx** : Autodesk Filmbox (full scene) * **.dae** : COLLADA (full scene) * **.off** : Object File Format (full scene) * **.dxf** : Drawing Exchange Format (full scene) * **.x** : DirectX Format (full scene) ## Scene construction The **full scene** formats (.gltf/.glb, .3ds, .wrl, .obj, .fbx, .dae, .off) contain not only *geometry*, but also some scene information like *lights*, *cameras*, *actors* in the scene, as well as *texture* properties. By default, all this information will be loaded from the file and displayed. Use the `--geometry-only` [options](/doc/user/OPTIONS.html) to modify this behavior. For file formats that do not support it, **a default scene** is created. ## Animations F3D can play animations for a number of file formats (.ex2/.e/.exo/.g, .gltf/.glb, .fbx, .dae, .x) if the file contains an animation. It is possible to select the animation to play using `--animation-index`, or to play all animations at once using `--animation-index=-1` (.gltf/.glb only). When F3D play an animation, it assumes the time unit is in seconds to show accurate speed of animation. Use `--animation-speed-factor` if an adjustment is needed. By default, F3D will try update the scene 60 times per seconds, use `--animation-frame-rate` to change that if needed. ## Plugins If you installed F3D using a package manager, it's possible that the packager chose to bundle the plugins in different packages or to list plugin dependencies as optional dependencies to reduce the reduce the number of dependencies of the main package. In this case, in order to open a file that requires a plugin, you will have to make sure all needed dependencies are installed and specify which plugin you want to load in order to be able to open this file. You can either use the `--load-plugins` option or add a line in the [configuration file](/doc/user/CONFIGURATION_FILE.html), if not already. Several plugins can be specified by giving a comma-separated list. Here is the list of plugins provided officially by F3D: - **alembic**: ABC support - **assimp**: FBX, DAE, OFF, DXF and X support - **draco**: DRC support - **exodus**: EX2 support - **occt**: STEP and IGES support - **usd**: USD, USDA, UDSC and USDZ support - **vdb**: VDB support (experimental) > Note: If you downloaded the binaries from the Release page, it's not necessary to specify manually the plugins above, all of them are loaded automatically. Here is how the plugins are searched (by precedence order): 1. Search the static plugins 2. Consider the option given is a full path 3. Search in the paths specified in `F3D_PLUGINS_PATH` environment variable 4. Search in a directory relative to the F3D application: `../lib` 5. Rely on OS specific paths (e.g. `LD_LIBRARY_PATH` on Linux or `DYLD_LIBRARY_PATH` on macOS) You can also try plugins maintained by the community. If you have created a plugin and would like it to be listed here, please submit a pull request. - **Abaqus**: ODB support by @YangShen398 ([repository](https://github.com/YangShen398/F3D-ODB-Reader-Plugin)) ", + "content": "# Usage Once F3D has been [installed](/doc/user/INSTALLATION.html), you should be able to open any [supported file](#supported-file-formats), by either: * Using F3D automatically, from your file manager, by directly opening a file. * Running F3D and then dragging and dropping files into it to open them. * By running F3D from the terminal with a set of command-line [options](/doc/user/OPTIONS.html). * As a [thumbnailer](/doc/user/DESKTOP_INTEGRATION.html) for all supported file formats with certain file managers. ## Supported file formats Here is the list of supported file formats: * **.vtk** : the legacy VTK format * **.vt[p\\|u\\|r\\|i\\|s\\|m]** : XML based VTK formats * **.ply** : Polygon File format * **.stl** : Standard Triangle Language format * **.dcm** : DICOM file format * **.nrrd/.nhrd** : \"nearly raw raster data\" file format * **.mhd/.mha** : MetaHeader MetaIO file format * **.tif/.tiff** : TIFF 2D/3D file format * **.ex2/.e/.exo/.g** : Exodus 2 file format * **.gml** : CityGML file format * **.pts** : Point Cloud file format * **.step/.stp** : CAD STEP exchange ISO format * **.iges/.igs** : CAD Initial Graphics Exchange Specification format * **.brep** : Open CASCADE BRep format * **.abc** : Alembic format * **.vdb** : VDB format (experimental) * **.obj** : Wavefront OBJ file format (full scene and default scene) * **.gltf/.glb** : GL Transmission Format (full scene and default scene) * **.3ds** : Autodesk 3D Studio file format (full scene) * **.wrl** : VRML file format (full scene) * **.fbx** : Autodesk Filmbox (full scene) * **.dae** : COLLADA (full scene) * **.off** : Object File Format (full scene) * **.dxf** : Drawing Exchange Format (full scene) * **.x** : DirectX Format (full scene) * **.3mf** : 3D Manufacturing Format (full scene) ## Scene construction The **full scene** formats (.gltf/.glb, .3ds, .wrl, .obj, .fbx, .dae, .off, .x, .3mf) contain not only *geometry*, but also some scene information like *lights*, *cameras*, *actors* in the scene, as well as *texture* properties. By default, all this information will be loaded from the file and displayed. Use the `--geometry-only` [options](/doc/user/OPTIONS.html) to modify this behavior. For file formats that do not support it, **a default scene** is created. ## Animations F3D can play animations for a number of file formats (.ex2/.e/.exo/.g, .gltf/.glb, .fbx, .dae, .x) if the file contains an animation. It is possible to select the animation to play using `--animation-index`, or to play all animations at once using `--animation-index=-1` (.gltf/.glb only). When F3D play an animation, it assumes the time unit is in seconds to show accurate speed of animation. Use `--animation-speed-factor` if an adjustment is needed. By default, F3D will try update the scene 60 times per seconds, use `--animation-frame-rate` to change that if needed. ## Plugins If you installed F3D using a package manager, it's possible that the packager chose to bundle the plugins in different packages or to list plugin dependencies as optional dependencies to reduce the reduce the number of dependencies of the main package. In this case, in order to open a file that requires a plugin, you will have to make sure all needed dependencies are installed and specify which plugin you want to load in order to be able to open this file. You can either use the `--load-plugins` option or add a line in the [configuration file](/doc/user/CONFIGURATION_FILE.html), if not already. Several plugins can be specified by giving a comma-separated list. Here is the list of plugins provided officially by F3D: - **alembic**: ABC support - **assimp**: FBX, DAE, OFF, DXF, X and 3MF support - **draco**: DRC support - **exodus**: EX2 support - **occt**: STEP and IGES support - **usd**: USD, USDA, UDSC and USDZ support - **vdb**: VDB support (experimental) > Note: If you downloaded the binaries from the Release page, it's not necessary to specify manually the plugins above, all of them are loaded automatically. Here is how the plugins are searched (by precedence order): 1. Search the static plugins 2. Consider the option given is a full path 3. Search in the paths specified in `F3D_PLUGINS_PATH` environment variable 4. Search in a directory relative to the F3D application: `../lib` 5. Rely on OS specific paths (e.g. `LD_LIBRARY_PATH` on Linux or `DYLD_LIBRARY_PATH` on macOS) You can also try plugins maintained by the community. If you have created a plugin and would like it to be listed here, please submit a pull request. - **Abaqus**: ODB support by @YangShen398 ([repository](https://github.com/YangShen398/F3D-ODB-Reader-Plugin)) ", "url": "/doc/user/USAGE.html", "relUrl": "/doc/user/USAGE.html" diff --git a/doc/CHANGELOG.html b/doc/CHANGELOG.html index 3549e29565..82558ddc04 100644 --- a/doc/CHANGELOG.html +++ b/doc/CHANGELOG.html @@ -1 +1 @@ - Changelog | F3D Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Changelog

Ongoing development

For F3D users:

  • Added --animation-autoplay option (libf3d: scene.animation.autoplay) to automatically start animation on file load.
  • Added an experimental VDB reader for .vdb files using OpenVDB
  • Changed --verbose into a string based option, eg: --verbose=quiet or --verbose=debug. --verbose is still supported.
  • Changed --no-render behavior so that it doesn’t impact verbosity anymore
  • Deprecated --quiet, use --verbose=quiet instead.
  • Reading EXR files is now multi-threaded and much faster.
  • Translucency support is now enabled by default.
  • A small margin is added between the model and the grid to avoid potential z-fighting.
  • Add X files support (part of assimp plugin)
  • Fix potential crashes when reading assimp plugin file format

For libf3d users:

  • Added scene.animation.autoplay option.
  • Added a f3d::image::saveBuffer API to save an image as a file format in memory.

For F3D packagers:

  • Added a new optional dependency through VTK, OpenVDB

v2.2.1

For F3D users:

  • Added a native Apple Silicon release package
  • Added new options hdri-file, hdri-ambient, hdri-skybox to have more control on the HDRI behavior
  • Added a default HDRI used when providing no hdri-file
  • Added bindings to toggle HDRI ambient lighting (F) and HDRI skybox (J)
  • Added bindings to move the camera to standard locations: 1: Front, 3: Right, 7: Top, 9: Isometric
  • Added Open CASCADE BRep format to the OCCT plugin.
  • Fixed an infamous issue when the Windows thumbnailer always steal the focus
  • Fixed an issue with the binary release when opening draco files
  • Fixed an issue with matcap textures
  • Fixed an issue with HDRI lighting
  • Fixed an issue with HDRI lighting when dropping HDRI after a model
  • Fixed an issue where invalid option would not show on Windows
  • Fixed an issue where previously loaded file would stay visible
  • Fixed an issue when loading invalid EXR file as HDRI
  • Fixed cheatsheet menu rendering under ‘Drop File Instructor’
  • Fixed raytracing rendering issues
  • Improved cheatsheet menu contrast for any background color
  • Improved overall text contrast for any background color
  • Improved performance when changing model and using a HDRI
  • Improved HDRI cache performance
  • Deprecated hdri option

For libf3d users:

  • Reworked image API to support many file formats to read (EXR, HDR) and write (PNG, JPG, TIF, BMP)
  • Added render.hdri.file, render.hdri.ambient, render.background.skybox options.
  • Deprecated render.background.hdri in favor of new options above
  • Deprecated previous image API
  • Add loader::loadGeometry allowing loading geometry from memory buffers

For developers:

  • Added a deprecation framework
  • Removed F3D_TESTING_ENABLE_HDRI_TESTS cmake option and merged it with F3D_TESTING_ENABLE_LONG_TIMEOUT_TESTS
  • Added a Getting Started guide for beginners developers

For F3D packagers:

  • Fixed compatibility with FreeBSD

v2.1.0

For F3D users:

  • Reworked Animation support and added many animation related options
  • Added --camera-direction and --camera-zoom-factor and use it in default config file
  • Added --texture-matcap option to load a MatCap texture
  • Added support for opening HDRI background with Drop
  • Added .exr support for HDRI and textures
  • Improved HDRI caching performance
  • Added a EGL headless binary release
  • Added typo suggestion when failing to use the right option name
  • Added --invert-zoom option (libf3d: interactor.invert-zoom) to invert zoom direction with right-click on mouse
  • Added support for keeping camera position when reloading a file with UP key
  • Added a --grid-absolute option (libf3d: render.grid.absolute) to position the grid instead of being below the model
  • Added a “Drop Zone” when starting F3D without loading a file
  • Added coloring support for STEP files in binary release
  • Fixed an issue on Windows where the error window would popup even with --quiet
  • Fixed an issue with 16 bit and 32 bit textures with assimp plugin
  • Fixed an issue on Windows where errors where not visible
  • Fixed an HDRI issue on reload
  • Fixed a crash when with the progress bar on reloading a file
  • Fixed an issue where certain options from config file would be ignored
  • Fixed a crash with many GLTF files when an array does not have a name
  • Fixed an issue where dropping a duplicate file would change the loaded file instead of not doing anything
  • Fixed an issue when loading an unsupported file
  • Fixed an issue with VRML files
  • Improved config file for .ply files
  • Improved config file regex so that they are case-insensitive
  • Improved --up option to support no sign and better validation
  • Improved F3D version reporting about itself and VTK (--version)
  • Improved documentation, testing, help
  • Excluded TIFF format from Windows Thumbnailer
  • Changed the automatic camera position to a version more close to the data
  • Reduced size of binary release by a factor of two

For developers:

  • Added vcpkg support for dependency installation

For F3D packagers:

  • Added a F3D_PLUGIN_OCCT_COLORING_SUPPORT CMake variable to control if this feature is compiled, default is ON
  • Added SONAME support
  • Added a F3D_PLUGINS_INSTALL_DIR CMake variable to control where to install plugins
  • Added a new module: F3D_MODULE_EXR that depends on openexr
  • Added support to use external cxxopts and external nlohmann-json
  • Fixed a link issue with VTK modules
  • Fixed a @loader_path issue on MacOS
  • Added support for CMAKE_INSTALL_*DIR variables on installation
  • Added support for building against a EGL enabled VTK
  • Fixed a compilation issue with VTK master

Contributors: @DeveloperPaul123 @topazus @bkmgit @snoyer @Meakk @mwestphal

v2.0.0

For F3D users:

  • Removed --fullscreen options completely
  • Added a --position option to set the position of the F3D window
  • Added a --light-intensity option and associated bindings
  • Improved fish and zsh completion
  • Added a new interaction to center the camera on the point under the cursor using middle mouse button
  • Added HDRi caching for improved performance
  • Added scene bounding box to the dump interaction
  • Reworked lighting for fullscene format files
  • Improved grid rendering and customization greatly with new options
  • Improved HDRi blur performance and customization
  • Added support for reading config file directory instead of a single file
  • Changed config file location on Windows
  • PostFX option names have been changed
  • Added an interaction (down arrow) to load all files from the directory containing the current file
  • Added a --group-geometries option to load multiple default scene file into a single render window

For libf3d users:

  • Reworked loader API from scratch
  • Fixed an issue with engine creation in the Python bindings
  • Fixed an issue with image Python bindings
  • Improved libf3d examples
  • Added experimental javascript bindings based on webassembly/emscriptem
  • Added dynamic support for all model options
  • Added plugin SDK to create your own plugins for any file format

For F3D packagers:

  • Added plugins support for true optional dependencies
  • Added a F3D_APPLICATION_LINK_FILESYSTEM CMake option to control if F3D should link explicitly against libstdc++fs
  • Removed most of F3D_INSTALL_ options with the switch to a component-based approach
  • Removed installation of useless static libs from VTKExtensions (needs VTK master)
  • Fixed RPATH of F3D for system using lib64 instead of lib
  • Many CMake option name changed
  • Fixed data license to use only permissive license for F3D testing data
  • Removed packaging support from F3D

Contributors: @snoyer @mzf-guest @CharlesGueunet @myd7349 @allemangD @Meakk @mwestphal

v1.3.1

  • Fix raytracing support
  • Fix macOS window positioning

Contributors: @mwestphal @Meakk

v1.3.0

Main new features and fixes:

  • Introducing an alpha version of the libf3d, see below for more information
  • Added a –font-file option
  • Added support for Alembic file format (.abc). Geometry only. Thanks a lot @nyue.
  • Fixed many HDRI issues
  • Fixed an important drag and drop issue on linux

Other fixes:

  • Fixed many doc and UI typos
  • Fixed shell completion
  • Fixed multiple issue with image comparison
  • Fixed an issue with –line-width and –point-size with full scene formats
  • Fixed an issue with translucent object and RGBA texture
  • Fixed issues with a few specific .gltf files
  • Fixed a window title issue on MacOS
  • Fixed multiple issues with the output window on Windows
  • Fixed issues with file association and thumbnails on Windows
  • Fixed a small issue with the cheatsheet not appearing in some cases
  • Fixed an issue with certain .obj files
  • Fixed a clipping issue when setting camera position
  • Removed fullscreen hotkey

For F3D developers:

  • Updated cxxopts to 3.0.0
  • Now using json.hpp for parsing json config file
  • Better reproducible build support
  • Improved CI with coverage, sanitizer, dedicated actions for dependencies
  • Complete rework of the architecture to separate F3D, the application, the libf3d (see below) and a VTKExtensions layer.
  • Improved unit testing by adding test in the libf3d and VTKExtensions layer

For libf3d users:

  • Introducing an alpha version of the libf3d!
  • The libf3d is a C++ library to open and render 3D meshes, it is of course used by F3D and supports python bindings
  • More info available in README_libf3d.md

Binary Release Information:

  • The binary release is not built with raytracing support
  • This binary release is built with assimp 5.1.2, animation for assimp formats is not working well

Contributors: @schuhumi @herrriehm @rafcon-dev @mzf-guest @nyue @jpouderoux @Meakk @mwestphal

v1.2.1

Bug fixes and features:

  • Fixed a build issue on MacOS
  • Fixed a critical issue with the Windows Thumbnailer that could crash explorer.exe
  • Fixed the –quiet option so that it actually quiets VTK errors and warnings
  • Fixed an issue with output window popping up at each log on Windows
  • Added a .deb package for Linux Debian-based distros

For Packagers:

  • LFS file have been added in source code release, this seems to be retroactive, so hash of previous releases may have changed
  • Flatpack org name has been fixed

Contributors: @Meakk @mwestphal @jpouderoux

v1.2.0

Main New Features:

  • Added STEP and IGES file format support thanks to @Open-Cascade-SAS /OCCT (thanks @drtrigon)
  • Added FBX, DAE, OFF, and DXF file format support thanks to @assimp /assimp
  • Added thumbnail support with many linux file managers
  • Added thumbnail support on Windows
  • Added desktop environment integration in linux
  • Added scalar and scalar component looping

Other New Features:

  • Added support for KHR_materials_unlit with glTF files (thanks @spiraloid)
  • Added option for selecting camera --camera-index (thanks @spiraloid)
  • Added coloring the to Windows error output window
  • Added a man entry on Linux
  • Added a --config option to select a config file to load instead of using default location
  • Added a --quiet option
  • Added --camera-azimuth and --camera-elevation options (thanks @tatsuya-s)
  • Added a metainfo.xml file (thanks @kevinsmia1939)

Issue Fixes:

  • Fixed an issue with opening files with accented char in the name on Windows (thanks @shankarsivarajan)
  • Fixed HDRI orientation with –up option (thanks @truhlikfredy)
  • Fixed an issue with point cloud rendering
  • Fixed a crash on exit on Windows
  • Fixed an issue with fullscreen window size on Windows
  • Fixed offscreen rendering (--output and --ref ) to actually use offscreen rendering
  • Fixed a memory leak when no rendering is performed (thanks @CharlesGueunet)
  • Fixed a rendering issue with certain GPU drivers
  • Fixed tone mapping with background opacity
  • Fixed non-working drag and drop implementation in VTK (thanks @msbit)
  • Fixed a potential sorting issue when opening a folder
  • Fixed a crash with unsupported glTF files in VTK

For Developers:

  • Full rework of the CI framework, including coverage report support
  • Full rework of the testing framework
  • Separation of vtkF3DRenderer in two classes
  • Separation of f3d executable into a libf3d library and f3d executable to support windows thumbnails

For Packagers:

  • New CMake options to select file to install, all documented and starting with F3D_
  • mime types file can be installed, make sure to trigger update-mime-databse
  • desktop file can be installed, make sure to trigger update-desktop-database

Packagers: AndnoVember @jokersus @kevinsmia1939 @yurivict @bcdarwin @mzf-guest @Meakk @mwestphal

Binary Release Information:

  • The binary release is not built with raytracing support
  • This binary release is built with assimp 5.1.2, animation for assimp formats is not working well

Contributors: @CharlesGueunet @kevinsmia1939 @mzf-guest @jpouderoux @Meakk @mwestphal

v1.1.1

A patch release dedicated to package managers that makes F3D v1.1 compatible with vtk v9.1.0

  • Fix a render pass build issue with vtk 9.1.0
  • Fix a renderer build issue with vtk 9.1.0

Contributors: @Meakk @mwestphal

v1.1.0

New Important Features:

  • Added direct scalars color rendering mode, see doc.
  • Added a turntable interactor and made it default. The previous interactor can still be used using a dedicated option. Thanks @orangebowlerhat @filip.sund and @jjomier for your suggestions.
  • Added animation support for glTF and Exodus files. Press space for playing the animation.
  • Added animation related option, –animation-index, only for glTF when using the full scene.

New Readers and format compatibility features:

  • Added skinning and morphing support with glTF files.
  • Added TIFF format support. Thanks @proudot for your suggestion.
  • Added exodus format support. Thanks @gvernon for your suggestion.
  • Added support for OBJ with color directly inside of it instead of using a .mtl file. Thanks @Chenge321 for your suggestion.

Quality of life features:

  • Added a hotkey (UP) to reload current file, thanks @caioaao.
  • Improved Alpha blending performance, thanks @paul.lafoix.
  • Changed the progress bar to a more nice looking one and made it appears only if loading takes time. Thanks @finetjul for the suggestion.
  • Improved logging mechanism with color on all OS and a dedicated output window on windows.
  • Added a warning when using RayTracing but it is not available.

Fixes:

  • Fixed an issue with skybox and edges.
  • Fixed a crash when an array had no name.
  • Fixed a window naming issue on OSX.
  • Fixed a symlink issue.
  • Fixed a coloring issue with dataset containing only cell data.

Packaging:

  • Upgraded the AUR f3d package to 1.1.0 : https://aur.archlinux.org/packages/f3d.
  • Added a Brew f3d 1.1.0 package : https://formulae.brew.sh/formula/f3d.
  • FreeBSD now contains a f3d 1.1.0 package, thanks to yuri@freebsd.org.
  • NixOS now contains a f3d package, 1.1.0 should come soon, thanks to bcdarwin@gmail.com.

How to support F3D:

  • Use the software.
  • Share it with anyone interested.
  • Star us on github: https://github.com/kitware/F3D.

Note: Binaries have no raytracing support.

Contributors: @Meakk @mwestphal

v1.0.1

  • VisualStudio Runtime is now included into the windows release
  • Ensure VTK compatibility
  • Improve STL binary reader performances
  • Fix default configuration issues
  • Add support for Window icon on all OSes

Note: Binaries have no raytracing support.

Contributors: @Meakk @mwestphal

v1.0.0

  • Documentation
    • Online documentation based on Hexo (https://kitware.github.io/F3D/)
  • Rendering
    • Add volume rendering for 3D images
    • HDRI support (skyboxes, HDR files, Filmic tone mapping)
    • Point sprites for displaying point clouds
    • Color map customization (default one changed to “inferno”)
  • Interface
    • Drag&Drop files support
    • Supports opening of several files (or folder), use left/right arrow to navigate
    • Scalars field handling improvements
    • Cheat Sheet
    • Interactive hotkeys have been reworked
    • File association on Windows and OSX
    • Fullscreen mode
    • No background mode (useful when saving image to a PNG file with alpha channel)
  • Command line
    • Camera configuration
    • Metadata (field data) display
    • File name display
    • No render mode (useful to read information in the file)
    • Shell completion (supports bash, zsh, fish)
  • New readers
    • CityGML
    • PTS
  • Packages
    • Default config provide

Note: Binaries have no raytracing support.

Contributors: @Meakk @mwestphal @hlngrandmontagne Paul Lafoix

v0.1.1

  • Fixes --version and --help crash

Contributors: @Meakk @mwestphal @jpouderoux

v0.1.0

First release!

Contributors: @Meakk @mwestphal @jpouderoux

+ Changelog | F3D Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Changelog

Ongoing development

For F3D users:

  • Added --animation-autoplay option (libf3d: scene.animation.autoplay) to automatically start animation on file load.
  • Added an experimental VDB reader for .vdb files using OpenVDB
  • Changed --verbose into a string based option, eg: --verbose=quiet or --verbose=debug. --verbose is still supported.
  • Changed --no-render behavior so that it doesn’t impact verbosity anymore
  • Deprecated --quiet, use --verbose=quiet instead.
  • Reading EXR files is now multi-threaded and much faster.
  • Translucency support is now enabled by default.
  • A small margin is added between the model and the grid to avoid potential z-fighting.
  • Add 3MF and X files support (part of assimp plugin)
  • Fix potential crashes when reading assimp plugin file format

For libf3d users:

  • Added scene.animation.autoplay option.
  • Added a f3d::image::saveBuffer API to save an image as a file format in memory.

For F3D packagers:

  • Added a new optional dependency through VTK, OpenVDB

v2.2.1

For F3D users:

  • Added a native Apple Silicon release package
  • Added new options hdri-file, hdri-ambient, hdri-skybox to have more control on the HDRI behavior
  • Added a default HDRI used when providing no hdri-file
  • Added bindings to toggle HDRI ambient lighting (F) and HDRI skybox (J)
  • Added bindings to move the camera to standard locations: 1: Front, 3: Right, 7: Top, 9: Isometric
  • Added Open CASCADE BRep format to the OCCT plugin.
  • Fixed an infamous issue when the Windows thumbnailer always steal the focus
  • Fixed an issue with the binary release when opening draco files
  • Fixed an issue with matcap textures
  • Fixed an issue with HDRI lighting
  • Fixed an issue with HDRI lighting when dropping HDRI after a model
  • Fixed an issue where invalid option would not show on Windows
  • Fixed an issue where previously loaded file would stay visible
  • Fixed an issue when loading invalid EXR file as HDRI
  • Fixed cheatsheet menu rendering under ‘Drop File Instructor’
  • Fixed raytracing rendering issues
  • Improved cheatsheet menu contrast for any background color
  • Improved overall text contrast for any background color
  • Improved performance when changing model and using a HDRI
  • Improved HDRI cache performance
  • Deprecated hdri option

For libf3d users:

  • Reworked image API to support many file formats to read (EXR, HDR) and write (PNG, JPG, TIF, BMP)
  • Added render.hdri.file, render.hdri.ambient, render.background.skybox options.
  • Deprecated render.background.hdri in favor of new options above
  • Deprecated previous image API
  • Add loader::loadGeometry allowing loading geometry from memory buffers

For developers:

  • Added a deprecation framework
  • Removed F3D_TESTING_ENABLE_HDRI_TESTS cmake option and merged it with F3D_TESTING_ENABLE_LONG_TIMEOUT_TESTS
  • Added a Getting Started guide for beginners developers

For F3D packagers:

  • Fixed compatibility with FreeBSD

v2.1.0

For F3D users:

  • Reworked Animation support and added many animation related options
  • Added --camera-direction and --camera-zoom-factor and use it in default config file
  • Added --texture-matcap option to load a MatCap texture
  • Added support for opening HDRI background with Drop
  • Added .exr support for HDRI and textures
  • Improved HDRI caching performance
  • Added a EGL headless binary release
  • Added typo suggestion when failing to use the right option name
  • Added --invert-zoom option (libf3d: interactor.invert-zoom) to invert zoom direction with right-click on mouse
  • Added support for keeping camera position when reloading a file with UP key
  • Added a --grid-absolute option (libf3d: render.grid.absolute) to position the grid instead of being below the model
  • Added a “Drop Zone” when starting F3D without loading a file
  • Added coloring support for STEP files in binary release
  • Fixed an issue on Windows where the error window would popup even with --quiet
  • Fixed an issue with 16 bit and 32 bit textures with assimp plugin
  • Fixed an issue on Windows where errors where not visible
  • Fixed an HDRI issue on reload
  • Fixed a crash when with the progress bar on reloading a file
  • Fixed an issue where certain options from config file would be ignored
  • Fixed a crash with many GLTF files when an array does not have a name
  • Fixed an issue where dropping a duplicate file would change the loaded file instead of not doing anything
  • Fixed an issue when loading an unsupported file
  • Fixed an issue with VRML files
  • Improved config file for .ply files
  • Improved config file regex so that they are case-insensitive
  • Improved --up option to support no sign and better validation
  • Improved F3D version reporting about itself and VTK (--version)
  • Improved documentation, testing, help
  • Excluded TIFF format from Windows Thumbnailer
  • Changed the automatic camera position to a version more close to the data
  • Reduced size of binary release by a factor of two

For developers:

  • Added vcpkg support for dependency installation

For F3D packagers:

  • Added a F3D_PLUGIN_OCCT_COLORING_SUPPORT CMake variable to control if this feature is compiled, default is ON
  • Added SONAME support
  • Added a F3D_PLUGINS_INSTALL_DIR CMake variable to control where to install plugins
  • Added a new module: F3D_MODULE_EXR that depends on openexr
  • Added support to use external cxxopts and external nlohmann-json
  • Fixed a link issue with VTK modules
  • Fixed a @loader_path issue on MacOS
  • Added support for CMAKE_INSTALL_*DIR variables on installation
  • Added support for building against a EGL enabled VTK
  • Fixed a compilation issue with VTK master

Contributors: @DeveloperPaul123 @topazus @bkmgit @snoyer @Meakk @mwestphal

v2.0.0

For F3D users:

  • Removed --fullscreen options completely
  • Added a --position option to set the position of the F3D window
  • Added a --light-intensity option and associated bindings
  • Improved fish and zsh completion
  • Added a new interaction to center the camera on the point under the cursor using middle mouse button
  • Added HDRi caching for improved performance
  • Added scene bounding box to the dump interaction
  • Reworked lighting for fullscene format files
  • Improved grid rendering and customization greatly with new options
  • Improved HDRi blur performance and customization
  • Added support for reading config file directory instead of a single file
  • Changed config file location on Windows
  • PostFX option names have been changed
  • Added an interaction (down arrow) to load all files from the directory containing the current file
  • Added a --group-geometries option to load multiple default scene file into a single render window

For libf3d users:

  • Reworked loader API from scratch
  • Fixed an issue with engine creation in the Python bindings
  • Fixed an issue with image Python bindings
  • Improved libf3d examples
  • Added experimental javascript bindings based on webassembly/emscriptem
  • Added dynamic support for all model options
  • Added plugin SDK to create your own plugins for any file format

For F3D packagers:

  • Added plugins support for true optional dependencies
  • Added a F3D_APPLICATION_LINK_FILESYSTEM CMake option to control if F3D should link explicitly against libstdc++fs
  • Removed most of F3D_INSTALL_ options with the switch to a component-based approach
  • Removed installation of useless static libs from VTKExtensions (needs VTK master)
  • Fixed RPATH of F3D for system using lib64 instead of lib
  • Many CMake option name changed
  • Fixed data license to use only permissive license for F3D testing data
  • Removed packaging support from F3D

Contributors: @snoyer @mzf-guest @CharlesGueunet @myd7349 @allemangD @Meakk @mwestphal

v1.3.1

  • Fix raytracing support
  • Fix macOS window positioning

Contributors: @mwestphal @Meakk

v1.3.0

Main new features and fixes:

  • Introducing an alpha version of the libf3d, see below for more information
  • Added a –font-file option
  • Added support for Alembic file format (.abc). Geometry only. Thanks a lot @nyue.
  • Fixed many HDRI issues
  • Fixed an important drag and drop issue on linux

Other fixes:

  • Fixed many doc and UI typos
  • Fixed shell completion
  • Fixed multiple issue with image comparison
  • Fixed an issue with –line-width and –point-size with full scene formats
  • Fixed an issue with translucent object and RGBA texture
  • Fixed issues with a few specific .gltf files
  • Fixed a window title issue on MacOS
  • Fixed multiple issues with the output window on Windows
  • Fixed issues with file association and thumbnails on Windows
  • Fixed a small issue with the cheatsheet not appearing in some cases
  • Fixed an issue with certain .obj files
  • Fixed a clipping issue when setting camera position
  • Removed fullscreen hotkey

For F3D developers:

  • Updated cxxopts to 3.0.0
  • Now using json.hpp for parsing json config file
  • Better reproducible build support
  • Improved CI with coverage, sanitizer, dedicated actions for dependencies
  • Complete rework of the architecture to separate F3D, the application, the libf3d (see below) and a VTKExtensions layer.
  • Improved unit testing by adding test in the libf3d and VTKExtensions layer

For libf3d users:

  • Introducing an alpha version of the libf3d!
  • The libf3d is a C++ library to open and render 3D meshes, it is of course used by F3D and supports python bindings
  • More info available in README_libf3d.md

Binary Release Information:

  • The binary release is not built with raytracing support
  • This binary release is built with assimp 5.1.2, animation for assimp formats is not working well

Contributors: @schuhumi @herrriehm @rafcon-dev @mzf-guest @nyue @jpouderoux @Meakk @mwestphal

v1.2.1

Bug fixes and features:

  • Fixed a build issue on MacOS
  • Fixed a critical issue with the Windows Thumbnailer that could crash explorer.exe
  • Fixed the –quiet option so that it actually quiets VTK errors and warnings
  • Fixed an issue with output window popping up at each log on Windows
  • Added a .deb package for Linux Debian-based distros

For Packagers:

  • LFS file have been added in source code release, this seems to be retroactive, so hash of previous releases may have changed
  • Flatpack org name has been fixed

Contributors: @Meakk @mwestphal @jpouderoux

v1.2.0

Main New Features:

  • Added STEP and IGES file format support thanks to @Open-Cascade-SAS /OCCT (thanks @drtrigon)
  • Added FBX, DAE, OFF, and DXF file format support thanks to @assimp /assimp
  • Added thumbnail support with many linux file managers
  • Added thumbnail support on Windows
  • Added desktop environment integration in linux
  • Added scalar and scalar component looping

Other New Features:

  • Added support for KHR_materials_unlit with glTF files (thanks @spiraloid)
  • Added option for selecting camera --camera-index (thanks @spiraloid)
  • Added coloring the to Windows error output window
  • Added a man entry on Linux
  • Added a --config option to select a config file to load instead of using default location
  • Added a --quiet option
  • Added --camera-azimuth and --camera-elevation options (thanks @tatsuya-s)
  • Added a metainfo.xml file (thanks @kevinsmia1939)

Issue Fixes:

  • Fixed an issue with opening files with accented char in the name on Windows (thanks @shankarsivarajan)
  • Fixed HDRI orientation with –up option (thanks @truhlikfredy)
  • Fixed an issue with point cloud rendering
  • Fixed a crash on exit on Windows
  • Fixed an issue with fullscreen window size on Windows
  • Fixed offscreen rendering (--output and --ref ) to actually use offscreen rendering
  • Fixed a memory leak when no rendering is performed (thanks @CharlesGueunet)
  • Fixed a rendering issue with certain GPU drivers
  • Fixed tone mapping with background opacity
  • Fixed non-working drag and drop implementation in VTK (thanks @msbit)
  • Fixed a potential sorting issue when opening a folder
  • Fixed a crash with unsupported glTF files in VTK

For Developers:

  • Full rework of the CI framework, including coverage report support
  • Full rework of the testing framework
  • Separation of vtkF3DRenderer in two classes
  • Separation of f3d executable into a libf3d library and f3d executable to support windows thumbnails

For Packagers:

  • New CMake options to select file to install, all documented and starting with F3D_
  • mime types file can be installed, make sure to trigger update-mime-databse
  • desktop file can be installed, make sure to trigger update-desktop-database

Packagers: AndnoVember @jokersus @kevinsmia1939 @yurivict @bcdarwin @mzf-guest @Meakk @mwestphal

Binary Release Information:

  • The binary release is not built with raytracing support
  • This binary release is built with assimp 5.1.2, animation for assimp formats is not working well

Contributors: @CharlesGueunet @kevinsmia1939 @mzf-guest @jpouderoux @Meakk @mwestphal

v1.1.1

A patch release dedicated to package managers that makes F3D v1.1 compatible with vtk v9.1.0

  • Fix a render pass build issue with vtk 9.1.0
  • Fix a renderer build issue with vtk 9.1.0

Contributors: @Meakk @mwestphal

v1.1.0

New Important Features:

  • Added direct scalars color rendering mode, see doc.
  • Added a turntable interactor and made it default. The previous interactor can still be used using a dedicated option. Thanks @orangebowlerhat @filip.sund and @jjomier for your suggestions.
  • Added animation support for glTF and Exodus files. Press space for playing the animation.
  • Added animation related option, –animation-index, only for glTF when using the full scene.

New Readers and format compatibility features:

  • Added skinning and morphing support with glTF files.
  • Added TIFF format support. Thanks @proudot for your suggestion.
  • Added exodus format support. Thanks @gvernon for your suggestion.
  • Added support for OBJ with color directly inside of it instead of using a .mtl file. Thanks @Chenge321 for your suggestion.

Quality of life features:

  • Added a hotkey (UP) to reload current file, thanks @caioaao.
  • Improved Alpha blending performance, thanks @paul.lafoix.
  • Changed the progress bar to a more nice looking one and made it appears only if loading takes time. Thanks @finetjul for the suggestion.
  • Improved logging mechanism with color on all OS and a dedicated output window on windows.
  • Added a warning when using RayTracing but it is not available.

Fixes:

  • Fixed an issue with skybox and edges.
  • Fixed a crash when an array had no name.
  • Fixed a window naming issue on OSX.
  • Fixed a symlink issue.
  • Fixed a coloring issue with dataset containing only cell data.

Packaging:

  • Upgraded the AUR f3d package to 1.1.0 : https://aur.archlinux.org/packages/f3d.
  • Added a Brew f3d 1.1.0 package : https://formulae.brew.sh/formula/f3d.
  • FreeBSD now contains a f3d 1.1.0 package, thanks to yuri@freebsd.org.
  • NixOS now contains a f3d package, 1.1.0 should come soon, thanks to bcdarwin@gmail.com.

How to support F3D:

  • Use the software.
  • Share it with anyone interested.
  • Star us on github: https://github.com/kitware/F3D.

Note: Binaries have no raytracing support.

Contributors: @Meakk @mwestphal

v1.0.1

  • VisualStudio Runtime is now included into the windows release
  • Ensure VTK compatibility
  • Improve STL binary reader performances
  • Fix default configuration issues
  • Add support for Window icon on all OSes

Note: Binaries have no raytracing support.

Contributors: @Meakk @mwestphal

v1.0.0

  • Documentation
    • Online documentation based on Hexo (https://kitware.github.io/F3D/)
  • Rendering
    • Add volume rendering for 3D images
    • HDRI support (skyboxes, HDR files, Filmic tone mapping)
    • Point sprites for displaying point clouds
    • Color map customization (default one changed to “inferno”)
  • Interface
    • Drag&Drop files support
    • Supports opening of several files (or folder), use left/right arrow to navigate
    • Scalars field handling improvements
    • Cheat Sheet
    • Interactive hotkeys have been reworked
    • File association on Windows and OSX
    • Fullscreen mode
    • No background mode (useful when saving image to a PNG file with alpha channel)
  • Command line
    • Camera configuration
    • Metadata (field data) display
    • File name display
    • No render mode (useful to read information in the file)
    • Shell completion (supports bash, zsh, fish)
  • New readers
    • CityGML
    • PTS
  • Packages
    • Default config provide

Note: Binaries have no raytracing support.

Contributors: @Meakk @mwestphal @hlngrandmontagne Paul Lafoix

v0.1.1

  • Fixes --version and --help crash

Contributors: @Meakk @mwestphal @jpouderoux

v0.1.0

First release!

Contributors: @Meakk @mwestphal @jpouderoux

diff --git a/doc/CHANGELOG.md b/doc/CHANGELOG.md index 1403d8b9a9..451198f33d 100644 --- a/doc/CHANGELOG.md +++ b/doc/CHANGELOG.md @@ -11,7 +11,7 @@ For F3D users: - Reading EXR files is now multi-threaded and much faster. - Translucency support is now enabled by default. - A small margin is added between the model and the grid to avoid potential z-fighting. - - Add X files support (part of `assimp` plugin) + - Add 3MF and X files support (part of `assimp` plugin) - Fix potential crashes when reading `assimp` plugin file format For libf3d users: diff --git a/doc/dev/BUILD.html b/doc/dev/BUILD.html index 063a363828..bef8ffa492 100644 --- a/doc/dev/BUILD.html +++ b/doc/dev/BUILD.html @@ -1,3 +1,3 @@ - Build | F3D Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Build guide

F3D uses a CMake based build system, so building F3D just requires installing needed dependencies, configuring and building. If you are not used to such processes please take a look at our getting started guide.

Dependencies

  • CMake >= 3.1.
  • VTK >= 9.0.0 (9.2.6 recommended).
  • A C++17 compiler.
  • A CMake-compatible build system (Visual Studio, XCode, Ninja, Make, etc.).
  • Optionally, Assimp >= 5.0.
  • Optionally, Open CASCADE OCCT >= 7.5.2.
  • Optionally, Alembic >= 1.7.
  • Optionally, OpenUSD >= 23.05.
  • Optionally, OpenVDB >= 10.0.0, enable IOOpenVDB VTK module.
  • Optionally, Draco >= 1.5.
  • Optionally, Python >= 3.6 and pybind11 >= 2.2.
  • Optionally, Java >= 18.
  • Optionally, OpenEXR >= 3.0.

VTK compatibility

As stated in the dependencies, F3D is compatible with VTK >= 9.0.0, however, many features are only available in certain conditions. We suggest using VTK 9.2.6 with RenderingRayTracing, RenderingExternal, IOExodus and IOOpenVDB modules enabled in order to get as many features as possible in F3D.

Configuration and building

Configure and generate the project with CMake, then build the software using your build system.

Here is some CMake options of interest:

  • F3D_BUILD_APPLICATION: Build the F3D executable.
  • BUILD_TESTING: Enable the tests.
  • F3D_MACOS_BUNDLE: On macOS, build a .app bundle.
  • F3D_WINDOWS_GUI: On Windows, build a Win32 application (without console).
  • F3D_WINDOWS_BUILD_SHELL_THUMBNAILS_EXTENSION: On Windows, build the shell thumbnails extension.
  • F3D_PLUGINS_STATIC_BUILD: Build all plugins as static library (embedded into libf3d) and automatically loaded by the application. Incompatible with F3D_MACOS_BUNDLE.

Some modules, plugins and bindings depending on external libraries can be optionally enabled with the following CMake variables:

  • F3D_MODULE_RAYTRACING: Support for raytracing rendering. Requires that VTK has been built with OSPRay and VTK_MODULE_ENABLE_VTK_RenderingRayTracing turned on. Disabled by default.
  • F3D_MODULE_EXTERNAL_RENDERING: Support for external render window. Requires that VTK has been built with VTK_MODULE_ENABLE_VTK_RenderingExternal turned on. Disabled by default.
  • F3D_MODULE_EXR: Support for OpenEXR images. Requires OpenEXR. Disabled by default.
  • F3D_PLUGIN_BUILD_EXODUS: Support for ExodusII (.ex2) file format. Requires that VTK has been built with IOExodus module (and hdf5). Enabled by default.
  • F3D_PLUGIN_BUILD_OCCT: Support for STEP, IGES and BREP file formats. Requires OpenCASCADE. Disabled by default.
  • F3D_PLUGIN_BUILD_ASSIMP: Support for FBX, DAE, OFF, DXF and X file formats. Requires Assimp. Disabled by default.
  • F3D_PLUGIN_BUILD_ALEMBIC: Support for ABC file format. Requires Alembic. Disabled by default.
  • F3D_PLUGIN_BUILD_DRACO: Support for DRC file format. Requires Draco. Disabled by default.
  • F3D_PLUGIN_BUILD_USD: Support for USD file format. Requires OpenUSD. Disabled by default.
  • F3D_PLUGIN_BUILD_VDB: Support for VDB file format. Requires that VTK has been built with IOOpenVDB module (and OpenVDB). Disabled by default.
  • F3D_BINDINGS_PYTHON: Generate python bindings (requires Python and pybind11). Disabled by default.
  • F3D_BINDINGS_JAVA: Generate java bindings (requires Java and JNI). Disabled by default.

VCPKG

It’s possible to use VCPKG to automatically build dependencies. A manifest file vcpkg.json is available at your convenience. Please read VCPKG documentation.
Basically, just install VCPKG, and configure F3D using -DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake option.

Installing

Installation can be done through CMake, by running the following command:

cmake --install ${your_build_dir}
+              Build | F3D                     Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Build guide

F3D uses a CMake based build system, so building F3D just requires installing needed dependencies, configuring and building. If you are not used to such processes please take a look at our getting started guide.

Dependencies

  • CMake >= 3.1.
  • VTK >= 9.0.0 (9.2.6 recommended).
  • A C++17 compiler.
  • A CMake-compatible build system (Visual Studio, XCode, Ninja, Make, etc.).
  • Optionally, Assimp >= 5.0.
  • Optionally, Open CASCADE OCCT >= 7.5.2.
  • Optionally, Alembic >= 1.7.
  • Optionally, OpenUSD >= 23.05.
  • Optionally, OpenVDB >= 10.0.0, enable IOOpenVDB VTK module.
  • Optionally, Draco >= 1.5.
  • Optionally, Python >= 3.6 and pybind11 >= 2.2.
  • Optionally, Java >= 18.
  • Optionally, OpenEXR >= 3.0.

VTK compatibility

As stated in the dependencies, F3D is compatible with VTK >= 9.0.0, however, many features are only available in certain conditions. We suggest using VTK 9.2.6 with RenderingRayTracing, RenderingExternal, IOExodus and IOOpenVDB modules enabled in order to get as many features as possible in F3D.

Configuration and building

Configure and generate the project with CMake, then build the software using your build system.

Here is some CMake options of interest:

  • F3D_BUILD_APPLICATION: Build the F3D executable.
  • BUILD_TESTING: Enable the tests.
  • F3D_MACOS_BUNDLE: On macOS, build a .app bundle.
  • F3D_WINDOWS_GUI: On Windows, build a Win32 application (without console).
  • F3D_WINDOWS_BUILD_SHELL_THUMBNAILS_EXTENSION: On Windows, build the shell thumbnails extension.
  • F3D_PLUGINS_STATIC_BUILD: Build all plugins as static library (embedded into libf3d) and automatically loaded by the application. Incompatible with F3D_MACOS_BUNDLE.

Some modules, plugins and bindings depending on external libraries can be optionally enabled with the following CMake variables:

  • F3D_MODULE_RAYTRACING: Support for raytracing rendering. Requires that VTK has been built with OSPRay and VTK_MODULE_ENABLE_VTK_RenderingRayTracing turned on. Disabled by default.
  • F3D_MODULE_EXTERNAL_RENDERING: Support for external render window. Requires that VTK has been built with VTK_MODULE_ENABLE_VTK_RenderingExternal turned on. Disabled by default.
  • F3D_MODULE_EXR: Support for OpenEXR images. Requires OpenEXR. Disabled by default.
  • F3D_PLUGIN_BUILD_EXODUS: Support for ExodusII (.ex2) file format. Requires that VTK has been built with IOExodus module (and hdf5). Enabled by default.
  • F3D_PLUGIN_BUILD_OCCT: Support for STEP, IGES and BREP file formats. Requires OpenCASCADE. Disabled by default.
  • F3D_PLUGIN_BUILD_ASSIMP: Support for FBX, DAE, OFF, DXF, X and 3MF file formats. Requires Assimp. Disabled by default.
  • F3D_PLUGIN_BUILD_ALEMBIC: Support for ABC file format. Requires Alembic. Disabled by default.
  • F3D_PLUGIN_BUILD_DRACO: Support for DRC file format. Requires Draco. Disabled by default.
  • F3D_PLUGIN_BUILD_USD: Support for USD file format. Requires OpenUSD. Disabled by default.
  • F3D_PLUGIN_BUILD_VDB: Support for VDB file format. Requires that VTK has been built with IOOpenVDB module (and OpenVDB). Disabled by default.
  • F3D_BINDINGS_PYTHON: Generate python bindings (requires Python and pybind11). Disabled by default.
  • F3D_BINDINGS_JAVA: Generate java bindings (requires Java and JNI). Disabled by default.

VCPKG

It’s possible to use VCPKG to automatically build dependencies. A manifest file vcpkg.json is available at your convenience. Please read VCPKG documentation.
Basically, just install VCPKG, and configure F3D using -DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake option.

Installing

Installation can be done through CMake, by running the following command:

cmake --install ${your_build_dir}
 

Individual components can also be installed by specifying the component name:

cmake --install ${your_build_dir} --component ${component_name}
 

Here is the list of all the components:

Name Installed by default Operating system Description
application YES ALL F3D application
configuration NO ALL Default configuration files, config and thumbnail.
library YES ALL libf3d library binaries
plugin YES ALL libf3d plugins
dependencies NO ALL libf3d runtime dependencies. Can be used to create a self-contained and relocatable package. System libraries are excluded.
sdk NO ALL libf3d SDK (headers and CMake config files)
licenses YES ALL F3D and third party licenses
documentation YES Linux man documentation
shellext YES Windows/Linux Desktop integration
python YES ALL Python bindings
java YES ALL Java bindings
mimetypes NO Linux Plugins mimetype XML files for integration with Freedesktop
assets YES Linux Assets for integration with Freedesktop
diff --git a/doc/dev/BUILD.md b/doc/dev/BUILD.md index fe27673c0c..2f94abdb68 100644 --- a/doc/dev/BUILD.md +++ b/doc/dev/BUILD.md @@ -44,7 +44,7 @@ Some modules, plugins and bindings depending on external libraries can be option * `F3D_MODULE_EXR`: Support for OpenEXR images. Requires `OpenEXR`. Disabled by default. * `F3D_PLUGIN_BUILD_EXODUS`: Support for ExodusII (.ex2) file format. Requires that VTK has been built with `IOExodus` module (and `hdf5`). Enabled by default. * `F3D_PLUGIN_BUILD_OCCT`: Support for STEP, IGES and BREP file formats. Requires `OpenCASCADE`. Disabled by default. -* `F3D_PLUGIN_BUILD_ASSIMP`: Support for FBX, DAE, OFF, DXF and X file formats. Requires `Assimp`. Disabled by default. +* `F3D_PLUGIN_BUILD_ASSIMP`: Support for FBX, DAE, OFF, DXF, X and 3MF file formats. Requires `Assimp`. Disabled by default. * `F3D_PLUGIN_BUILD_ALEMBIC`: Support for ABC file format. Requires `Alembic`. Disabled by default. * `F3D_PLUGIN_BUILD_DRACO`: Support for DRC file format. Requires `Draco`. Disabled by default. * `F3D_PLUGIN_BUILD_USD`: Support for USD file format. Requires `OpenUSD`. Disabled by default. diff --git a/doc/user/LIMITATIONS_AND_TROUBLESHOOTING.html b/doc/user/LIMITATIONS_AND_TROUBLESHOOTING.html index 49cca63102..537dd60c49 100644 --- a/doc/user/LIMITATIONS_AND_TROUBLESHOOTING.html +++ b/doc/user/LIMITATIONS_AND_TROUBLESHOOTING.html @@ -1,4 +1,4 @@ - Limitations and Troubleshooting | F3D Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Limitations

Here is a non exhaustive list of F3D limitations:

  • No support for specifying manual lighting in the default scene apart from using --light-intensity option.
  • Multiblock (.vtm, .gml) support is partial, non-surfacic data will be converted into surfaces.
  • Animation support with full scene data format require VTK >= 9.0.20201016.
  • Full drag and drop support require VTK >= 9.0.20210620
  • Drag and drop interaction cannot be recorded nor played back.
  • Volume rendering and HDRI support requires a decent GPU.
  • The --camera-zoom-factor option require VTK >= 9.3.0

Assimp

FBX, DAE, OFF, DXF and X file formats rely on Assimp library. It comes with some known limitations:

  • PBR materials are not supported for FBX file format.
  • Complex animations are not working very well with Assimp 5.1, it’s recommended to use Assimp 5.0 for this use case.
  • Only one animation can be shown at a time, showing all animations is not supported yet.
  • Some files can be empty, crash, or show artifacts.
  • DXF support is very limited: only files with polylines and 3D faces are displayed.

Alembic

ABC file formats rely on Alembic library. It comes with some known limitations:

  • Supports only simple polygonal geometry.
  • Does not support ArbGeomParam feature in Alembic.
  • Does not support Subdivision Meshes.
  • Does not support Materials.
  • Does not support Animations.

USD

USD file formats rely on OpenUSD library. It comes with some known limitations:

  • Skinning is slow and baked on the CPU.
  • Does not support Face-varying attributes.
  • The usd plugin is not shipped in the python wheels yet.

VDB

VDB file formats rely on OpenVDB and VTK libraries. It currently comes with some known limitations:

  • VDB Grid files are opened with a hard-coded 0.1 sampling rate.
  • The vdb plugin is not shipped in the python wheels yet.

Troubleshooting

General

I have built F3D with raytracing support but the denoiser is not working.

Make sure that VTK has been built with OpenImageDenoise support (VTKOSPRAY_ENABLE_DENOISER option).

My model shows up all wrong, with inverted surfaces everywhere.

Your data probably contains some translucent data for some reason, turn on translucency support by pressing P or using the -p command line option.

Linux

I have a link error related to stdc++fs not found.

With some C++ STD library version, explicit linking to stdc++fs is not supported. We provide a CMake option F3D_LINUX_APPLICATION_LINK_FILESYSTEM that you can set to OFF to workaround this issue.

I have a link error related to undefined reference to symbol of libatomic.

The GCC flag -latomic is not being added automatically with specific architectures, like armel and RISCV64. We provide a CMake option F3D_LINUX_LIBRARY_LINK_ATOMIC that you can set to ON to workaround this issue.

Thumbnails are not working in my file manager.

  • Check that your file manager supports the thumbnailer mechanism.
  • Check that you have updated your mime type database.
  • If all fails, remove your .cache user dir and check that pcmanfm thumbnails are working.
  • If they are working, then it is an issue specific to your file manager (see below for a potential work around).
  • If only a few format have working thumbnails, then it is an issue with the mime types database.
  • If no formats have working thumbnails, then it is an issue with the f3d-plugin-xxx.thumbnailer files.
  • If only big file do not have thumbnails, this is intended, you can modify this behavior in the thumbnail.d/10_global.json configuration folder using the max-size option.

Some file managers (eg: Nautilus) are using sandboxing for thumbnails, which the F3D standard binary release does not support as it needs access to the Xorg server to render anything. In that case, you want to use the headless version of F3D that rely on EGL instead of Xorg, available in the releases page. If you use the portable archive, make sure to extract it somewhere the sandboxing system has access to, eg: Nautilus uses bwrap and gives it access to /usr but not to /opt.

Windows

Using the portable binary release, I’m unable to run F3D because Windows warns about a security risk

F3D is not signed by Microsoft yet so Windows shows this warning. Just click on the “more” button to be able to run F3D.

After installing F3D or registering the shell extension, my explorer is broken.

Unregister the shell extension by running:

cd C:\path\to\f3d\bin\
+              Limitations and Troubleshooting | F3D                     Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Limitations

Here is a non exhaustive list of F3D limitations:

  • No support for specifying manual lighting in the default scene apart from using --light-intensity option.
  • Multiblock (.vtm, .gml) support is partial, non-surfacic data will be converted into surfaces.
  • Animation support with full scene data format require VTK >= 9.0.20201016.
  • Full drag and drop support require VTK >= 9.0.20210620
  • Drag and drop interaction cannot be recorded nor played back.
  • Volume rendering and HDRI support requires a decent GPU.
  • The --camera-zoom-factor option require VTK >= 9.3.0

Assimp

FBX, DAE, OFF, DXF, X and 3MF file formats rely on Assimp library. It comes with some known limitations:

  • PBR materials are not supported for FBX file format.
  • Complex animations are not working very well with Assimp 5.1, it’s recommended to use Assimp 5.0 for this use case.
  • Only one animation can be shown at a time, showing all animations is not supported yet.
  • Some files can be empty, crash, or show artifacts.
  • DXF support is very limited: only files with polylines and 3D faces are displayed.
  • 3MF files may crash at exit (issue in Assimp: https://github.com/assimp/assimp/issues/5328)
  • Only support RBGA 8-bits embedded textures

Alembic

ABC file formats rely on Alembic library. It comes with some known limitations:

  • Supports only simple polygonal geometry.
  • Does not support ArbGeomParam feature in Alembic.
  • Does not support Subdivision Meshes.
  • Does not support Materials.
  • Does not support Animations.

USD

USD file formats rely on OpenUSD library. It comes with some known limitations:

  • Skinning is slow and baked on the CPU.
  • Does not support Face-varying attributes.
  • The usd plugin is not shipped in the python wheels yet.

VDB

VDB file formats rely on OpenVDB and VTK libraries. It currently comes with some known limitations:

  • VDB Grid files are opened with a hard-coded 0.1 sampling rate.
  • The vdb plugin is not shipped in the python wheels yet.

Troubleshooting

General

I have built F3D with raytracing support but the denoiser is not working.

Make sure that VTK has been built with OpenImageDenoise support (VTKOSPRAY_ENABLE_DENOISER option).

My model shows up all wrong, with inverted surfaces everywhere.

Your data probably contains some translucent data for some reason, turn on translucency support by pressing P or using the -p command line option.

Linux

I have a link error related to stdc++fs not found.

With some C++ STD library version, explicit linking to stdc++fs is not supported. We provide a CMake option F3D_LINUX_APPLICATION_LINK_FILESYSTEM that you can set to OFF to workaround this issue.

I have a link error related to undefined reference to symbol of libatomic.

The GCC flag -latomic is not being added automatically with specific architectures, like armel and RISCV64. We provide a CMake option F3D_LINUX_LIBRARY_LINK_ATOMIC that you can set to ON to workaround this issue.

Thumbnails are not working in my file manager.

  • Check that your file manager supports the thumbnailer mechanism.
  • Check that you have updated your mime type database.
  • If all fails, remove your .cache user dir and check that pcmanfm thumbnails are working.
  • If they are working, then it is an issue specific to your file manager (see below for a potential work around).
  • If only a few format have working thumbnails, then it is an issue with the mime types database.
  • If no formats have working thumbnails, then it is an issue with the f3d-plugin-xxx.thumbnailer files.
  • If only big file do not have thumbnails, this is intended, you can modify this behavior in the thumbnail.d/10_global.json configuration folder using the max-size option.

Some file managers (eg: Nautilus) are using sandboxing for thumbnails, which the F3D standard binary release does not support as it needs access to the Xorg server to render anything. In that case, you want to use the headless version of F3D that rely on EGL instead of Xorg, available in the releases page. If you use the portable archive, make sure to extract it somewhere the sandboxing system has access to, eg: Nautilus uses bwrap and gives it access to /usr but not to /opt.

Windows

Using the portable binary release, I’m unable to run F3D because Windows warns about a security risk

F3D is not signed by Microsoft yet so Windows shows this warning. Just click on the “more” button to be able to run F3D.

After installing F3D or registering the shell extension, my explorer is broken.

Unregister the shell extension by running:

cd C:\path\to\f3d\bin\
 regsvr32 /u F3DShellExtension.dll
 

I use F3D in a VM, the application fails to launch.

OpenGL applications like F3D can have issues when launched from Windows Server or from a guest Windows because the access to the GPU is restricted. You can try to use a software implementation of OpenGL, called Mesa.

  • Download the latest release-msvc.
  • copy x64/opengl32.dll, libgallium_wgl.dll and x64/libglapi.dll in the same folder as f3d.exe.
  • set the environment variable MESA_GL_VERSION_OVERRIDE to 4.5.
  • run f3d.exe.

I run f3d from the command prompt and my Unicode characters are not displayed properly.

Set the codepage to UTF-8, run chcp 65001.

When I install F3D, I can’t add F3D to the path and the installer complains that: PATH too long installer unable to modify PATH!.

There are too many entry in your PATH environment variable, remove the ones you do not use.

When I try to update F3D, the installer fails with: Error opening file for writing: F3DShellExtension.dll

Your previous F3D installation is current being used to generate thumbnails, wait for a bit or reboot your computer before updating again.

macOS

I’m unable to use the binary release, macOS complains the file is invalid or corrupted

Our macOS binary package are not signed, to work around this, you can simply run the following command:

xattr -cr /Applications/F3D.app
 

Then F3D should work as expected.

Using the silicon binary release, I cannot find the raytracing feature or open exodus files

F3D raytracing and exodus plugin are not working on macOS silicon yet, see this issue.

I’m unable to get coloring right with step files

F3D on macOS does not support coloring on cells because of a VTK issue.

Python

I can’t find usd and vdb plugins after installing f3d with pip

The usd and vdb plugins are not shipped in the python wheels for now, you can compile F3D yourself with them though.

Raytracing does not work after installing f3d with pip

F3D raytracing feature is not shipped in the python wheels for now, you can compile F3D yourself with it though.

diff --git a/doc/user/LIMITATIONS_AND_TROUBLESHOOTING.md b/doc/user/LIMITATIONS_AND_TROUBLESHOOTING.md index ca5dacdf70..afd71c108c 100644 --- a/doc/user/LIMITATIONS_AND_TROUBLESHOOTING.md +++ b/doc/user/LIMITATIONS_AND_TROUBLESHOOTING.md @@ -11,12 +11,14 @@ Here is a non exhaustive list of F3D limitations: * The `--camera-zoom-factor` option require VTK >= 9.3.0 ## Assimp -FBX, DAE, OFF, DXF and X file formats rely on [Assimp](https://github.com/assimp/assimp) library. It comes with some known limitations: +FBX, DAE, OFF, DXF, X and 3MF file formats rely on [Assimp](https://github.com/assimp/assimp) library. It comes with some known limitations: - PBR materials are not supported for FBX file format. - Complex animations are not working very well with Assimp 5.1, it's recommended to use Assimp 5.0 for this use case. - Only one animation can be shown at a time, showing all animations is not supported yet. - Some files can be empty, crash, or show artifacts. - DXF support is very limited: only files with polylines and 3D faces are displayed. +- 3MF files may crash at exit (issue in Assimp: https://github.com/assimp/assimp/issues/5328) +- Only support RBGA 8-bits embedded textures ## Alembic ABC file formats rely on [Alembic](https://github.com/alembic/alembic) library. It comes with some known limitations: diff --git a/doc/user/USAGE.html b/doc/user/USAGE.html index 4dfadf22e6..32f869370a 100644 --- a/doc/user/USAGE.html +++ b/doc/user/USAGE.html @@ -1 +1 @@ - Usage | F3D Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Usage

Once F3D has been installed, you should be able to open any supported file, by either:

  • Using F3D automatically, from your file manager, by directly opening a file.
  • Running F3D and then dragging and dropping files into it to open them.
  • By running F3D from the terminal with a set of command-line options.
  • As a thumbnailer for all supported file formats with certain file managers.

Supported file formats

Here is the list of supported file formats:

  • .vtk : the legacy VTK format
  • .vt[p|u|r|i|s|m] : XML based VTK formats
  • .ply : Polygon File format
  • .stl : Standard Triangle Language format
  • .dcm : DICOM file format
  • .nrrd/.nhrd : “nearly raw raster data” file format
  • .mhd/.mha : MetaHeader MetaIO file format
  • .tif/.tiff : TIFF 2D/3D file format
  • .ex2/.e/.exo/.g : Exodus 2 file format
  • .gml : CityGML file format
  • .pts : Point Cloud file format
  • .step/.stp : CAD STEP exchange ISO format
  • .iges/.igs : CAD Initial Graphics Exchange Specification format
  • .brep : Open CASCADE BRep format
  • .abc : Alembic format
  • .vdb : VDB format (experimental)
  • .obj : Wavefront OBJ file format (full scene and default scene)
  • .gltf/.glb : GL Transmission Format (full scene and default scene)
  • .3ds : Autodesk 3D Studio file format (full scene)
  • .wrl : VRML file format (full scene)
  • .fbx : Autodesk Filmbox (full scene)
  • .dae : COLLADA (full scene)
  • .off : Object File Format (full scene)
  • .dxf : Drawing Exchange Format (full scene)
  • .x : DirectX Format (full scene)

Scene construction

The full scene formats (.gltf/.glb, .3ds, .wrl, .obj, .fbx, .dae, .off) contain not only geometry, but also some scene information like lights, cameras, actors in the scene, as well as texture properties. By default, all this information will be loaded from the file and displayed. Use the --geometry-only options to modify this behavior. For file formats that do not support it, a default scene is created.

Animations

F3D can play animations for a number of file formats (.ex2/.e/.exo/.g, .gltf/.glb, .fbx, .dae, .x) if the file contains an animation. It is possible to select the animation to play using --animation-index, or to play all animations at once using --animation-index=-1 (.gltf/.glb only). When F3D play an animation, it assumes the time unit is in seconds to show accurate speed of animation. Use --animation-speed-factor if an adjustment is needed. By default, F3D will try update the scene 60 times per seconds, use --animation-frame-rate to change that if needed.

Plugins

If you installed F3D using a package manager, it’s possible that the packager chose to bundle the plugins in different packages or to list plugin dependencies as optional dependencies to reduce the reduce the number of dependencies of the main package. In this case, in order to open a file that requires a plugin, you will have to make sure all needed dependencies are installed and specify which plugin you want to load in order to be able to open this file. You can either use the --load-plugins option or add a line in the configuration file, if not already. Several plugins can be specified by giving a comma-separated list.
Here is the list of plugins provided officially by F3D:

  • alembic: ABC support
  • assimp: FBX, DAE, OFF, DXF and X support
  • draco: DRC support
  • exodus: EX2 support
  • occt: STEP and IGES support
  • usd: USD, USDA, UDSC and USDZ support
  • vdb: VDB support (experimental)

Note: If you downloaded the binaries from the Release page, it’s not necessary to specify manually the plugins above, all of them are loaded automatically.

Here is how the plugins are searched (by precedence order):

  1. Search the static plugins
  2. Consider the option given is a full path
  3. Search in the paths specified in F3D_PLUGINS_PATH environment variable
  4. Search in a directory relative to the F3D application: ../lib
  5. Rely on OS specific paths (e.g. LD_LIBRARY_PATH on Linux or DYLD_LIBRARY_PATH on macOS)

You can also try plugins maintained by the community. If you have created a plugin and would like it to be listed here, please submit a pull request.

  • Abaqus: ODB support by @YangShen398 (repository)
+ Usage | F3D Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Usage

Once F3D has been installed, you should be able to open any supported file, by either:

  • Using F3D automatically, from your file manager, by directly opening a file.
  • Running F3D and then dragging and dropping files into it to open them.
  • By running F3D from the terminal with a set of command-line options.
  • As a thumbnailer for all supported file formats with certain file managers.

Supported file formats

Here is the list of supported file formats:

  • .vtk : the legacy VTK format
  • .vt[p|u|r|i|s|m] : XML based VTK formats
  • .ply : Polygon File format
  • .stl : Standard Triangle Language format
  • .dcm : DICOM file format
  • .nrrd/.nhrd : “nearly raw raster data” file format
  • .mhd/.mha : MetaHeader MetaIO file format
  • .tif/.tiff : TIFF 2D/3D file format
  • .ex2/.e/.exo/.g : Exodus 2 file format
  • .gml : CityGML file format
  • .pts : Point Cloud file format
  • .step/.stp : CAD STEP exchange ISO format
  • .iges/.igs : CAD Initial Graphics Exchange Specification format
  • .brep : Open CASCADE BRep format
  • .abc : Alembic format
  • .vdb : VDB format (experimental)
  • .obj : Wavefront OBJ file format (full scene and default scene)
  • .gltf/.glb : GL Transmission Format (full scene and default scene)
  • .3ds : Autodesk 3D Studio file format (full scene)
  • .wrl : VRML file format (full scene)
  • .fbx : Autodesk Filmbox (full scene)
  • .dae : COLLADA (full scene)
  • .off : Object File Format (full scene)
  • .dxf : Drawing Exchange Format (full scene)
  • .x : DirectX Format (full scene)
  • .3mf : 3D Manufacturing Format (full scene)

Scene construction

The full scene formats (.gltf/.glb, .3ds, .wrl, .obj, .fbx, .dae, .off, .x, .3mf) contain not only geometry, but also some scene information like lights, cameras, actors in the scene, as well as texture properties. By default, all this information will be loaded from the file and displayed. Use the --geometry-only options to modify this behavior. For file formats that do not support it, a default scene is created.

Animations

F3D can play animations for a number of file formats (.ex2/.e/.exo/.g, .gltf/.glb, .fbx, .dae, .x) if the file contains an animation. It is possible to select the animation to play using --animation-index, or to play all animations at once using --animation-index=-1 (.gltf/.glb only). When F3D play an animation, it assumes the time unit is in seconds to show accurate speed of animation. Use --animation-speed-factor if an adjustment is needed. By default, F3D will try update the scene 60 times per seconds, use --animation-frame-rate to change that if needed.

Plugins

If you installed F3D using a package manager, it’s possible that the packager chose to bundle the plugins in different packages or to list plugin dependencies as optional dependencies to reduce the reduce the number of dependencies of the main package. In this case, in order to open a file that requires a plugin, you will have to make sure all needed dependencies are installed and specify which plugin you want to load in order to be able to open this file. You can either use the --load-plugins option or add a line in the configuration file, if not already. Several plugins can be specified by giving a comma-separated list.
Here is the list of plugins provided officially by F3D:

  • alembic: ABC support
  • assimp: FBX, DAE, OFF, DXF, X and 3MF support
  • draco: DRC support
  • exodus: EX2 support
  • occt: STEP and IGES support
  • usd: USD, USDA, UDSC and USDZ support
  • vdb: VDB support (experimental)

Note: If you downloaded the binaries from the Release page, it’s not necessary to specify manually the plugins above, all of them are loaded automatically.

Here is how the plugins are searched (by precedence order):

  1. Search the static plugins
  2. Consider the option given is a full path
  3. Search in the paths specified in F3D_PLUGINS_PATH environment variable
  4. Search in a directory relative to the F3D application: ../lib
  5. Rely on OS specific paths (e.g. LD_LIBRARY_PATH on Linux or DYLD_LIBRARY_PATH on macOS)

You can also try plugins maintained by the community. If you have created a plugin and would like it to be listed here, please submit a pull request.

  • Abaqus: ODB support by @YangShen398 (repository)
diff --git a/doc/user/USAGE.md b/doc/user/USAGE.md index 5f5e03a043..1b2affe5ae 100644 --- a/doc/user/USAGE.md +++ b/doc/user/USAGE.md @@ -36,10 +36,11 @@ Here is the list of supported file formats: * **.off** : Object File Format (full scene) * **.dxf** : Drawing Exchange Format (full scene) * **.x** : DirectX Format (full scene) +* **.3mf** : 3D Manufacturing Format (full scene) ## Scene construction -The **full scene** formats (.gltf/.glb, .3ds, .wrl, .obj, .fbx, .dae, .off) contain not only *geometry*, +The **full scene** formats (.gltf/.glb, .3ds, .wrl, .obj, .fbx, .dae, .off, .x, .3mf) contain not only *geometry*, but also some scene information like *lights*, *cameras*, *actors* in the scene, as well as *texture* properties. By default, all this information will be loaded from the file and displayed. Use the `--geometry-only` [options](OPTIONS.md) to modify this behavior. For file formats that do not support it, **a default scene** is created. @@ -58,7 +59,7 @@ In this case, in order to open a file that requires a plugin, you will have to m Here is the list of plugins provided officially by F3D: - **alembic**: ABC support -- **assimp**: FBX, DAE, OFF, DXF and X support +- **assimp**: FBX, DAE, OFF, DXF, X and 3MF support - **draco**: DRC support - **exodus**: EX2 support - **occt**: STEP and IGES support diff --git a/resources/BundleInfo.plist.in b/resources/BundleInfo.plist.in index 4806c84502..c996a8f168 100644 --- a/resources/BundleInfo.plist.in +++ b/resources/BundleInfo.plist.in @@ -339,6 +339,19 @@ x + + + CFBundleTypeName + 3D Manufacturing Format + CFBundleTypeRole + Viewer + LSIsAppleDefaultForType + + CFBundleTypeExtensions + + 3mf + + CFBundleTypeName