awesome-repositories.com
博客
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
syoyo avatar

syoyo/tinyobjloader

0
View on GitHub↗
3,826 星标·646 分支·C++·2 次浏览

Tinyobjloader

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 geometry processing capabilities, including the extraction of complex primitives such as lines and points. It provides configurable 32-bit or 64-bit floating-point precision for high-fidelity rendering and allows for custom loading logic to override memory allocation and input-output backends.

Integration is handled through a single-header distribution model, eliminating the need for a complex build or installation process.

Features

  • Wavefront OBJ Parsers - Reads 3D geometry from Wavefront OBJ files and converts it into structures for graphics and physics engines.
  • 3D Polygon Triangulation - Converts faces with four or more vertices into triangles using internal algorithms or external triangulation libraries.
  • 3D Model Importers - Imports vertex, normal, and material data from model files into memory-efficient structures for rendering pipelines.
  • Polygon Triangulators - Converts faces with more than three vertices into triangles to ensure compatibility with standard graphics hardware.
  • Multi-Threaded Geometry Parsing - Distributes the processing of large 3D model files across multiple CPU cores to reduce scene loading times.
  • Stream-Based Text Processing - Reads raw text input sequentially to minimize memory overhead when converting files into structured vertex arrays.
  • Large-Scale Geometry Ingestion - Uses multithreading and stream-based parsing to load massive 3D environment files while minimizing memory overhead.
  • Header-Only Libraries - Implements a header-only distribution model that allows for quick integration of 3D model loading logic.
  • Single-Header Libraries - Distributed as a single-header library to eliminate complex build or installation processes.
  • High Precision Geometry Calculations - Processes vertex and material data using 32-bit or 64-bit floating point precision for high-performance computing tasks.
  • Precision-Switched Float Builds - Supports build-time selection between 32-bit and 64-bit floating-point precision to balance performance and model fidelity.
  • Large Dataset Optimizations - Accelerates the parsing of massive datasets using single-pass buffer processing, multithreading, and memory-mapped I/O.
  • Mesh and Model Loading - Wavefront OBJ loader.

Star 历史

syoyo/tinyobjloader 的 Star 历史图表syoyo/tinyobjloader 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

Tinyobjloader 的开源替代方案

相似的开源项目,按与 Tinyobjloader 的功能重合度排序。
  • tinyobjloader/tinyobjloadertinyobjloader 的头像

    tinyobjloader/tinyobjloader

    3,826在 GitHub 上查看↗

    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 dataset

    C++
    在 GitHub 上查看↗3,826
  • holman/sparkholman 的头像

    holman/spark

    6,059在 GitHub 上查看↗

    Spark is a suite of command line utilities designed to render numeric data sets as compact visual graphs using Unicode characters. It functions as a terminal data visualizer and charting tool that converts sequences of numbers into visual trend lines within a shell environment. The tool generates sparkline graphs by mapping numeric value ranges to specific Unicode block characters. It utilizes linear value scaling to normalize input numbers to fit within available character heights and processes data sequentially from the standard input stream to produce real-time visual output. These capabi

    Shell
    在 GitHub 上查看↗6,059
  • fb55/htmlparser2fb55 的头像

    fb55/htmlparser2

    4,774在 GitHub 上查看↗

    htmlparser2 is a collection of tools for high-performance markup parsing, DOM manipulation, and incremental stream processing. It functions as an HTML and XML parser that converts markup strings into structured object trees, alongside a streaming markup parser designed for memory-efficient processing of large documents. The project includes a DOM manipulation library for querying, modifying, and serializing document object model trees. It also provides a web feed parser to extract structured metadata and entries from RSS, RDF, and Atom feeds. The library covers broad capabilities in data par

    TypeScript
    在 GitHub 上查看↗4,774
  • tdewolff/minifytdewolff 的头像

    tdewolff/minify

    4,119在 GitHub 上查看↗

    This project is a collection of Go libraries designed to reduce the size of multiple web formats while preserving functional integrity. It serves as a high-performance text processor and multi-format asset compressor for shrinking HTML, CSS, JavaScript, JSON, SVG, and XML files by removing redundant characters. The tool is designed for both static batch processing and real-time use. It includes middleware capabilities to intercept and minify web responses on the fly based on MIME types or file extensions, allowing for content compression during active data streams. The processing suite cover

    Gocssgohtml
    在 GitHub 上查看↗4,119
查看 Tinyobjloader 的所有 30 个替代方案→

常见问题解答

syoyo/tinyobjloader 是做什么的?

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.

syoyo/tinyobjloader 的主要功能有哪些?

syoyo/tinyobjloader 的主要功能包括:Wavefront OBJ Parsers, 3D Polygon Triangulation, 3D Model Importers, Polygon Triangulators, Multi-Threaded Geometry Parsing, Stream-Based Text Processing, Large-Scale Geometry Ingestion, Header-Only Libraries。

syoyo/tinyobjloader 有哪些开源替代品?

syoyo/tinyobjloader 的开源替代品包括: tinyobjloader/tinyobjloader — tinyobjloader is a header-only C++ library for parsing Wavefront OBJ and MTL files. It extracts 3D mesh geometry,… fb55/htmlparser2 — htmlparser2 is a collection of tools for high-performance markup parsing, DOM manipulation, and incremental stream… holman/spark — Spark is a suite of command line utilities designed to render numeric data sets as compact visual graphs using Unicode… tdewolff/minify — This project is a collection of Go libraries designed to reduce the size of multiple web formats while preserving… catchorg/catch2 — Catch2 is a comprehensive framework for C++ software validation, providing an environment for unit testing,… dathere/qsv — qsv is a high-performance command line toolkit for querying, transforming, and analyzing comma-separated value files.…