tinyobjloader | Tiny but powerful single file wavefront obj loader | Graphics library

 by   tinyobjloader C++ Version: v2.0-rc1 License: Non-SPDX

kandi X-RAY | tinyobjloader Summary

kandi X-RAY | tinyobjloader Summary

tinyobjloader is a C++ library typically used in User Interface, Graphics applications. tinyobjloader has no bugs, it has no vulnerabilities and it has medium support. However tinyobjloader has a Non-SPDX License. You can download it from GitHub.

Tiny but powerful single file wavefront obj loader written in C++03. No dependency except for C++ STL. It can parse over 10M polygons with moderate memory and time. tinyobjloader is good for embedding .obj loader to your (global illumination) renderer ;-). If you are looking for C89 version, please see .
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              tinyobjloader has a medium active ecosystem.
              It has 2900 star(s) with 578 fork(s). There are 99 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 19 open issues and 170 have been closed. On average issues are closed in 226 days. There are 1 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of tinyobjloader is v2.0-rc1

            kandi-Quality Quality

              tinyobjloader has 0 bugs and 0 code smells.

            kandi-Security Security

              tinyobjloader has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              tinyobjloader code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              tinyobjloader has a Non-SPDX License.
              Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.

            kandi-Reuse Reuse

              tinyobjloader releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.
              It has 9464 lines of code, 647 functions and 54 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of tinyobjloader
            Get all kandi verified functions for this library.

            tinyobjloader Key Features

            No Key Features are available at this moment for tinyobjloader.

            tinyobjloader Examples and Code Snippets

            No Code Snippets are available at this moment for tinyobjloader.

            Community Discussions

            QUESTION

            How do I draw an OBJ file in OpenGL using tinyobjloader?
            Asked 2021-May-25 at 17:48

            I am trying to draw this free airwing model from Starfox 64 in OpenGL. I converted the .fbx file to .obj in Blender and am using tinyobjloader to load it (all requirements for my university subject).

            I pretty much slapped the example code (with the modern API) into my program, replaced the file name, and grabbed the attrib.vertices and attrib.normals vectors to draw the airwing.

            I can view the vertices with GL_POINTS:

            ...

            ANSWER

            Answered 2021-May-25 at 17:48

            E: When I wrote this answer originally I had only worked with vertices and normals. I've figured out how to get materials and textures working, but don't have time to write that out at the moment. I will add that in when I have some time, but it's largely the same logic if you wanna poke around the tinyobj header yourselves in the meantime. :-)

            I've learned a lot about TinyOBJLoader in the last day so I hope this helps someone in the future. Credit goes to this GitHub repository which uses TinyOBJLoader very clearly and cleanly in fileloader.cpp.

            To summarise what I learned studying that code:

            Shapes are of type shape_t. For a single model OBJ, the size of shapes is 1. I'm assuming OBJ files can contain multiple objects but I haven't used the file format much to know.

            shape_t's have a member mesh of type mesh_t. This member stores the information parsed from the face rows of the OBJ. You can figure out the number of faces your object has by checking the size of the material_ids member.

            The vertex, texture coordinate and normal indices of each face are stored in the indices member of the mesh. This is of type std::vector. This is a flattened vector of indices. So for a model with triangulated faces f1, f2 ... fi, it stores v1, t1, n1, v2, t2, n2 ... vi, ti, ni. Remember that these indices correspond to the whole vertex, texture coordinate or normal. Personally I triangulated my model by importing into Blender and exporting it with triangulation turned on. TinyOBJ has its own triangulation algorithm you can turn on by setting the reader_config.triangulate flag.

            I've only worked with the vertices and normals so far. Here's how I access and store them to be used in OpenGL:

            1. Convert the flat vertices and normal arrays into groups of 3, i.e. 3D vectors

            Source https://stackoverflow.com/questions/67638439

            QUESTION

            Vulkan Validation Layer: loader_create_instance_chain: Failed to find 'vkGetInstanceProcAddr'
            Asked 2020-Sep-06 at 07:16

            I followed this guide to create a very basic Vulkan program, and for some reason, even when completely copying the code from the guide (and not using my own version which is slightly different and modified to my needs) I still receive the following two validation layer errors upon starting the program:

            ...

            ANSWER

            Answered 2020-Sep-06 at 07:16

            Those errors aren't triggered by your application, but rather by implicit layers installed by OBS Studio. Applications can register their own implicit layers globally, and these are then loaded as soon as you run a Vulkan application. If one of those layers is flawed, you'll get validation layer errors in your own application, even if your application is perfectly fine.

            The easiest way to disable these is the recently released Vulkan Configurator from the LunarG SDK. Without the SDK you can disable implicit layers by setting their value to 1 in the registry under HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Khronos\Vulkan\ImplicitLayers.

            Source https://stackoverflow.com/questions/63739366

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install tinyobjloader

            One option is to simply copy the header file into your project and to make sure that TINYOBJLOADER_IMPLEMENTATION is defined exactly once. Tinyobjlaoder is also available as a conan package. Conan integrates with many build systems and lets you avoid manual dependency installation. Their documentation is a great starting point.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/tinyobjloader/tinyobjloader.git

          • CLI

            gh repo clone tinyobjloader/tinyobjloader

          • sshUrl

            git@github.com:tinyobjloader/tinyobjloader.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link