Open mosra opened 8 years ago
Another thing to consider: Pixar's USD: http://graphics.pixar.com/usd/ it might be able to properly describe PBR and all other stuff that's required for (ahem) Pixar-quality scenes
@mosra How about DevILImageImporter
, using DevIL?
Similar to SDL2ImageImporter
, would provide optimized loading of various commonly used formats.
@Alicemargatroid added that to the list, thanks!
Added https://github.com/google/etc2comp to the list.
DevIlImageImporter
added via mosra/magnum-plugins#23.
Unique images in OpenGEX addressed quite some time ago in mosra/magnum-plugins@b677f90ee1f57dc28c0746ca3b28b3a7c4e9d242.
Added http://www.alembic.io/ to the list.
Added PNG/JPEG loading using WINAPI to the list.
Added pbrt format importer, image converters/compressors and audio importers to the list.
For the MP3 loader, I see that there's dr_mp3
, which is based on minimp3.
Since I'll have a need for a MP3 loader plugin in the near future, I'll look into making a DrMp3AudioImporter
plugin and opening a PR.
Nice. I assume the API could be very similar to other Dr*
plugins, so doing that could be mostly a copypaste.
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 toStbImageImporter
, although it does have dependencies onlibjpeg
and such, so not that portable. Don't know about platform support.Jpeg2000Importer
andJpeg2000ImageConverter
using JPEG 2000 -- compared to plain JPEG offers losless compression etc.OpenExrImporter
andOpenExrImageConverter
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 isMiniExrImageConverter
, but without any compression. -- mosra/magnum-plugins@22d1ec9a6f056320022723f980b76b402e6437b2TinyExrImporter
in case the above would be too painful to use on some platforms (https://github.com/syoyo/tinyexr)KtxImporter
for importing files in the Khronos Texture Format (there's a draft version 2 now, tooversion 2 only, don't care about v1) -- mosra/magnum-plugins#103WebGLImageImporter
that "just" uses the builtin WebGL/browser functionality to directly load JPEGs etc. into textures (on Emscripten that apparently needs to go through files)OpenFile
but notOpenData
), also out-of-heap decodingDevIlImageImporter
using DevIL, supports a lot of formatsWould be a good replacement for both libpng and stb_image once CgBI support lands (https://github.com/randy408/libspng/issues/16)was closed as not planned*.ico
importer 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 (#369) -- mosra/magnum-plugins#79std::regex
std::string
(heh, times changed since the above line got written, the bar is now EVEN HIGHER)Image converters, compressors, editors
DevIlImageConverter
using DevILEtc2ImageConverter
using https://github.com/google/etc2comppngcrush
/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 usedrgbcx
from https://github.com/richgel999/bc7enc, BC7 is better handled bybc7e
below (and what's the difference from https://github.com/richgel999/bc7enc16 ?)jpegtran
as 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 -- mosra/magnum-plugins#62DdsImageConverter
dynamically using the above BC compressorsIcoImageConverter
that uses aPngImporter
to 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 (#369)Scene data
ObjImporter
in a way that's actually performant (for example zero-copy like in the OpenDDL parser), material support (#205)OpenGexImporter
-- currently each image file reference is taken as a new unique imageStlImporter
for the STL mesh format used by 3D printers, so we can have a viewer similar to what GitHub has -- mosra/magnum-plugins@da47aff425a2c4d52c09bb3ea2e2903384550472AssimpImporter
(notAssImporter
) for importing various things using the Assimp library. Besides others a proper COLLADA support, FBX and Blender import.pbrt
format used by the PBR book / pbrt -- especially the Moana Disney data set.vox
import: https://github.com/ephtracy/voxel-modelScene / mesh converters
Trade::AbstractSceneConverter
is in (#371).vox
(https://github.com/ephtracy/voxel-model)std::vector<Vec3>
sigh, no support for arbitrary attributesMeshPrimitive::Polygon
input, producesTriangles
, nothing else to be done thereAudio
minimp3dr_mp3 / PDMP3 loader (or just general MP3 support, we're no longer bound by patents) -- mosra/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