awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
tinyobjloader avatar

tinyobjloader/tinyobjloader

0
View on GitHub↗
3,826 estrellas·646 forks·C++·0 vistas

Tinyobjloader

tinyobjloader is a header-only C++ library for parsing Wavefront OBJ and MTL files. It extracts 3D mesh geometry, shape topology, and material definitions into memory, supporting the conversion of formatted text strings or files into vertex, normal, and texture coordinate data structures.

The library provides a triangulation pipeline that converts complex, multi-vertex polygons into triangles using 2D projection and ear-clipping algorithms. It supports physically based rendering setups by extracting PBR material parameters and texture maps from material library files.

To handle large datasets and resource-constrained environments, the project implements multi-threaded parallel parsing, one-pass linear parsing, and incremental data streaming. It further allows for custom memory allocation and the use of callbacks to intercept data streams and parse diagnostics, enabling its use in freestanding environments.

Features

  • 3D Geometry Import - Extracts 3D coordinate arrays for vertices, normals, and colors from Wavefront OBJ files.
  • 3D Polygon Triangulation - Decomposes complex n-sided polygons into triangles to ensure compatibility with GPU rendering pipelines.
  • Triangulation Pipelines - Provides a pipeline that decomposes complex multi-vertex polygons into triangles using ear-clipping algorithms.
  • Material File Parsers - Parses MTL material library files to apply textures, tints, and opacity to 3D meshes.
  • Polygon Triangulators - Transforms 3D polygon rings into 2D coordinates via plane projection to enable flat triangulation of complex faces.
  • Mesh Topology Retrieval - Accesses mesh indices and material IDs to determine how vertices connect to form surfaces.
  • Multi-Threaded Geometry Parsing - Accelerates the conversion of large geometry files into vertex arrays using multi-threaded parallel parsing.
  • Wavefront OBJ Parsers - Provides specialized parsing for Wavefront OBJ and MTL files to extract 3D geometry and material data.
  • Parsing Accelerators - Reduces load times for large 3D models using SIMD line scanning and fast-float conversion.
  • Geometry - Parses massive 3D datasets using a one-pass loader with multithreading and arena allocation to minimize memory overhead.
  • Incremental Data Streaming - Reads model files incrementally from a stream to prevent loading the entire dataset into memory.
  • Embedded Graphics Utilities - Optimizes 3D model loading for resource-constrained embedded environments using custom memory allocators.
  • Physically Based Rendering Materials - Extracts PBR material parameters and texture maps to simulate real-world light interaction and surface properties.
  • Surface Material Properties - Extracts visual surface attributes such as diffuse colors and texture filenames associated with 3D models.
  • Material Imports - Reads material properties, including Phong and PBR extensions, from external definition files.
  • Custom Memory Allocators - Allows the injection of custom memory allocation logic to support resource-constrained or freestanding environments.
  • Freestanding Environment Support - Enables geometry loading in restricted environments by removing standard library dependencies via custom allocators.
  • Single-Pass Parsing - Reads input streams in a single linear pass to minimize memory overhead and reduce topology reconstruction time.
  • Header-Only Libraries - Distributed as a single-header C++ library to eliminate external dependencies and simplify the build process.
  • Serialization and Formats - Single-file Wavefront OBJ loader.

Historial de estrellas

Gráfico del historial de estrellas de tinyobjloader/tinyobjloaderGráfico del historial de estrellas de tinyobjloader/tinyobjloader

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Alternativas open-source a Tinyobjloader

Proyectos open-source similares, clasificados según cuántas características comparten con Tinyobjloader.
  • syoyo/tinyobjloaderAvatar de syoyo

    syoyo/tinyobjloader

    3,826Ver en GitHub↗

    TinyOBJLoader is a single-header C++ library designed for parsing Wavefront OBJ files. It functions as a stream-based text parser that extracts vertex, normal, and texture data into structured arrays for use in graphics and physics engines. The project distinguishes itself as a high-performance geometry loader that utilizes multi-threading to distribute the processing of large-scale 3D environments across multiple CPU cores. It includes a mesh triangulator that converts complex polygons into triangles to ensure compatibility with standard graphics hardware. The library supports a variety of

    C++
    Ver en GitHub↗3,826
  • google-deepmind/mujoco_menagerieAvatar de google-deepmind

    google-deepmind/mujoco_menagerie

    3,055Ver en GitHub↗

    mujoco_menagerie is a curated library of physical robot specifications and XML model definitions designed for standardized dynamics and contact simulation. It provides a collection of high-quality robot model files for humanoids, quadrupeds, and manipulators, alongside detailed kinematic and inertial parameters used to reproduce real-world robot behavior in virtual environments. The project serves as a repository of robotics simulation assets and MJCF model definitions optimized for accuracy. It includes standardized model libraries specifically for bipedal, quadrupedal, and humanoid hardware

    Pythonmujocorobotics
    Ver en GitHub↗3,055
  • fasterxml/jacksonAvatar de FasterXML

    FasterXML/jackson

    9,740Ver en GitHub↗

    Jackson is a Java data binding framework and multi-format data serializer used to translate data structures into native language objects. It functions as a JSON data binding library and a streaming parser that reads and writes data as discrete tokens to process large datasets with minimal memory. The project distinguishes itself through a bytecode serialization accelerator that replaces standard reflection with generated bytecode to increase data binding speed. It employs a module-based extensibility model to support a wide range of formats beyond JSON, including XML, YAML, CSV, TOML, and bin

    hacktoberfestjacksonjava-json
    Ver en GitHub↗9,740
  • syoyo/tinygltfAvatar de syoyo

    syoyo/tinygltf

    2,471Ver en GitHub↗

    tinygltf is a C++ library designed as a parser, serializer, and validation tool for 3D models in the glTF 2.0 binary and JSON formats. It functions as a streaming processor that can handle large 3D asset files incrementally through a callback-driven approach to reduce memory overhead. The library uses a header-only implementation to simplify integration. It employs memory mapping to map binary buffers directly into memory and utilizes a symmetric parse-write pipeline to maintain data consistency between reading and writing files. The system provides capabilities for 3D asset processing, incl

    C++cppgltf
    Ver en GitHub↗2,471
Ver las 30 alternativas a Tinyobjloader→

Preguntas frecuentes

¿Qué hace tinyobjloader/tinyobjloader?

tinyobjloader is a header-only C++ library for parsing Wavefront OBJ and MTL files. It extracts 3D mesh geometry, shape topology, and material definitions into memory, supporting the conversion of formatted text strings or files into vertex, normal, and texture coordinate data structures.

¿Cuáles son las características principales de tinyobjloader/tinyobjloader?

Las características principales de tinyobjloader/tinyobjloader son: 3D Geometry Import, 3D Polygon Triangulation, Triangulation Pipelines, Material File Parsers, Polygon Triangulators, Mesh Topology Retrieval, Multi-Threaded Geometry Parsing, Wavefront OBJ Parsers.

¿Qué alternativas de código abierto existen para tinyobjloader/tinyobjloader?

Las alternativas de código abierto para tinyobjloader/tinyobjloader incluyen: syoyo/tinyobjloader — TinyOBJLoader is a single-header C++ library designed for parsing Wavefront OBJ files. It functions as a stream-based… google-deepmind/mujoco_menagerie — mujoco_menagerie is a curated library of physical robot specifications and XML model definitions designed for… fasterxml/jackson — Jackson is a Java data binding framework and multi-format data serializer used to translate data structures into… syoyo/tinygltf — tinygltf is a C++ library designed as a parser, serializer, and validation tool for 3D models in the glTF 2.0 binary… uscilab/cereal — Cereal is a C++ serialization library and object persistence tool used to convert data types and containers into… madler/zlib — zlib is a lossless data compression library that implements the deflate compression algorithm, combining LZ77 sliding…