You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Published from my internal TODO list in case someone would want to play with these.
Image and texture formats
Sdl2ImageImporter using SDL2_image. It handles TGA, BMP, PNM, XPM, XCF, PCX, GIF, JPEG, TIFF, LBM and PNG in one package, so it might be a faster alternative to StbImageImporter, although it does have dependencies on libjpeg and such, so not that portable. Don't know about platform support.
Jpeg2000Importer and Jpeg2000ImageConverter using JPEG 2000 -- compared to plain JPEG offers losless compression etc.
OpenExrImporter and OpenExrImageConverter using the OpenEXR library for first-class HDR support. Currently the only supported input HDR format is (ahem) HDR (which is actually just RGB8 + a 8-bit exponent, so rather lossy) and there is MiniExrImageConverter, but without any compression. -- mosra/magnum-plugins@22d1ec9
WebGLImageImporter that "just" uses the builtin WebGL/browser functionality to directly load JPEGs etc. into textures (on Emscripten that apparently needs to go through files)
PNG import using lodepng? It seems significantly slower than both stb_image and libpng and doesn't really offer anything that vanilla libPNG doesn't have, the only advertised advantage is "simple to build" (but come on, is libPNG hard to build to begin with?!) and the issue tracker looks nightmarish .. or maybe a "turbo version"?
Google's WUFFS language ("operating system"??) has PNG, GIF, ... importers that claim to be the safest and fastest of all but the thing releases as a giant (1.5 MB) C file with everything inside, meaning it's rather annoying to integrate and no chance of this being packaged anywhere.
(Once image data passthrough is in), maybe integrate something like https://github.com/xiaozhuai/imageinfo for just querying image properties and passing the data through without having to rely on a ton of dependencies?
A plugin that integrates the pngcrush / optipng command-line utilities for compressing PNGs (or calls into Rust? https://github.com/shssoichiro/oxipng), finally something where the "file-only" converter APIs can get used
AssimpImporter (notAssImporter) for importing various things using the Assimp library. Besides others a proper COLLADA support, FBX and Blender import.
https://github.com/mapbox/earcut.hpp or the non-single-header variant, takes a MeshPrimitive::Polygon input, produces Triangles, nothing else to be done there
Published from my internal TODO list in case someone would want to play with these.
Image and texture formats
Sdl2ImageImporterusing SDL2_image. It handles TGA, BMP, PNM, XPM, XCF, PCX, GIF, JPEG, TIFF, LBM and PNG in one package, so it might be a faster alternative toStbImageImporter, although it does have dependencies onlibjpegand such, so not that portable. Don't know about platform support.Jpeg2000ImporterandJpeg2000ImageConverterusing JPEG 2000 -- compared to plain JPEG offers losless compression etc.OpenExrImporterandOpenExrImageConverterusing the OpenEXR library for first-class HDR support. Currently the only supported input HDR format is (ahem) HDR (which is actually just RGB8 + a 8-bit exponent, so rather lossy) and there isMiniExrImageConverter, but without any compression. -- mosra/magnum-plugins@22d1ec9TinyExrImporterin case the above would be too painful to use on some platforms (https://github.com/syoyo/tinyexr)KtxImporterfor importing files in the Khronos Texture Format (there's a draft version 2 now, tooversion 2 only, don't care about v1) -- Trade: KTX importer magnum-plugins#103WebGLImageImporterthat "just" uses the builtin WebGL/browser functionality to directly load JPEGs etc. into textures (on Emscripten that apparently needs to go through files)OpenFilebut notOpenData), also out-of-heap decodingDevIlImageImporterusing DevIL, supports a lot of formatsWould be a good replacement for both libpng and stb_image once CgBI support lands (Apple CgBI read support randy408/libspng#16)was closed as not planned*.icoimporter that delegates to PngImporter or BmpImporter for the actual data: https://en.wikipedia.org/wiki/ICO_(file_format)#Icon_resource_structure, storing different sizes as different mip levels (Trade: support mip levels in image import #369) -- New plugin: IcoImporter magnum-plugins#79std::regexstd::string(heh, times changed since the above line got written, the bar is now EVEN HIGHER)Image converters, compressors, editors
DevIlImageConverterusing DevILEtc2ImageConverterusing https://github.com/google/etc2comppngcrush/optipngcommand-line utilities for compressing PNGs (or calls into Rust? https://github.com/shssoichiro/oxipng), finally something where the "file-only" converter APIs can get usedrgbcxfrom https://github.com/richgel999/bc7enc, BC7 is better handled bybc7ebelow (and what's the difference from https://github.com/richgel999/bc7enc16 ?)jpegtranas a lossless JPEG image optimizer plugin (there's also https://github.com/cloudflare/jpegtran and https://github.com/tjko/jpegoptim (another frontend?))https://github.com/BinomialLLC/crunch (or the Unity fork of it)https://github.com/BinomialLLC/basis_universal for compressing GPU-compressed textures -- BasisImporter magnum-plugins#62DdsImageConverterdynamically using the above BC compressorsIcoImageConverterthat uses aPngImporterto pack data and then put them into an ico container (https://en.wikipedia.org/wiki/ICO_(file_format)#Icon_resource_structure), needs mip-level support (Trade: support mip levels in image import #369)Scene data
ObjImporterin a way that's actually performant (for example zero-copy like in the OpenDDL parser), material support ([WIP] Rework ObjImporter to support more features #205)OpenGexImporter-- currently each image file reference is taken as a new unique imageStlImporterfor the STL mesh format used by 3D printers, so we can have a viewer similar to what GitHub has -- mosra/magnum-plugins@da47affAssimpImporter(notAssImporter) for importing various things using the Assimp library. Besides others a proper COLLADA support, FBX and Blender import.pbrtformat used by the PBR book / pbrt -- especially the Moana Disney data set.voximport: https://github.com/ephtracy/voxel-modelScene / mesh converters
Trade::AbstractSceneConverteris in (Mesh Data rework #371).vox(https://github.com/ephtracy/voxel-model)std::vector<Vec3>sigh, no support for arbitrary attributesMeshPrimitive::Polygoninput, producesTriangles, nothing else to be done thereAudio
minimp3dr_mp3 / PDMP3 loader (or just general MP3 support, we're no longer bound by patents) -- New DrMp3AudioImporter plugin using dr_mp3. magnum-plugins#60Video
Once appropriate IO APIs exist.
Shader converters
Shader validators / profilers / assemblers
Mainly for being able to look at a shader assembly without having access to the HW itself.
System::execute(), output redirection, temporary file creation etcSystem::execute(), output redirection etcText rendering