tinyobjloader
3DWorld
Our great sponsors
tinyobjloader | 3DWorld | |
---|---|---|
8 | 54 | |
3,153 | 1,062 | |
1.4% | - | |
0.0 | 9.9 | |
3 months ago | 6 days ago | |
C++ | C++ | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tinyobjloader
-
Open GL tutor request
Obj file parsing isn't really OpenGL... But you can take a look at this GitHub project: https://github.com/tinyobjloader/tinyobjloader
-
From Blender to OpenGL
For the Blender export part, the simplest 3D model format is OBJ. It's a text format that can be read in only ~100 lines of code. You can use Assimp for this. Or you can use something like tinyobjloader: https://github.com/tinyobjloader/tinyobjloader
-
[Part 5] Update of my Vulkan toy renderer: Meshlet cone culling, fast_obj, Vulkan dynamic rendering and many more
I've replaced tinyobjloader with fast_obj which speeds up model loading process significantly. Here is a good article comparing different obj loaders.
-
Texture UV issue
I don't think this is an issue with tinyobjloader but I'm unsure of how to troubleshoot from here. I've been following this tutorial to learn opengl.
-
oof: real-time, full-color console output for C++
Exampes I've seen are the stb single header libraries, as well as tinyobjloader. The necessity to do this is usually written in the comments at the top of the header file:
-
How can I get Triangles from OBJ files?
If you´re using tinyobjloader, the documentation here https://github.com/tinyobjloader/tinyobjloader explains how it works. There´s even a triangulate flag.
-
Is there a simple and reliable static object loader out there?
Try Tiny obj loader: https://github.com/tinyobjloader/tinyobjloader
-
Baking Lighting Data and Color Variations to Vertex Colors
Also, it's possible to store a color per vertex, tinyobjloader supports this extended format for OBJ. But, like you say, how many (if any) OBJ loading programs actually support these vertex colors I suspect you can count on one hand (and more likely, zero hands). Blender, for example, does a terrible job even interpreting cutout objects in OBJ files, a common case (see step 9). I doubt they'd ever add per vertex color import support for any file format they read in. But, I'm interested to hear if they do - Blender is (by far, I believe) the main DCC app used with Mineways exports.
3DWorld
-
Generating Master of Orion 2 like starmap
You mean you want to draw the individual stars themselves? It's likely just a texture, probably white so that it can be colored differently for each star. This is how I've done it. Try a Google image search for "flare texture". You can find some of the ones I used here (flare*.jpg): https://github.com/fegennari/3DWorld/tree/master/textures
-
Map Generation by Diamond Square with Shading and Raycasted Shadows.
I remember it being called "wave surfing", where you start at the current pixel and draw a line to the light source, checking the elevation vs. the altitude value of the line (Y or Z) at every step. I have the code in my mesh_shadow_gen class here: https://github.com/fegennari/3DWorld/blob/master/src/visibility.cpp
-
How to manage a buffer containing objects of varying size? For sparse chunk loading/unloading
This all sounds complex, but the system can be made to work well. I've written something similar myself, except with VBOs rather than SSBOs. My code can be found in these two files: https://github.com/fegennari/3DWorld/blob/master/src/buildings.h
-
Procedurally Generated Spider Model and Animation
C++ code for drawing spiders can be found in my GitHub project, in the spider_draw_t class: https://github.com/fegennari/3DWorld/blob/master/src/building_animal_draw.cpp
-
Procedurally generated 8km Octree Terrain using Compute Shaders and WGPU (Rust)
Filling the cracks properly generally gives better performance and fewer drawing artifacts compared to skirts. If you use indexed triangles and set them up in neat rows and columns, it's pretty easy to get right. No lookup tables or big switch cases, and it works with any number of LODs. See the crack_ibuf_t code starting around like 1800 here: https://github.com/fegennari/3DWorld/blob/master/src/tiled_mesh.cpp
-
Pixel planets with Pygame and OpenSimplex
I wrote a planet name generator that combines multi-character combinations. It may not do as good as a proper Markov Chain, but may produce names that sound better than your simple approach. If you're interested, the code can be found here: https://github.com/fegennari/3DWorld/blob/master/src/Universe_name.cpp
-
Reusing vertices while using marching cubes/tetrahedra
The code for this is in my voxel_manager::add_triangles_for_voxel() on line 497 here: https://github.com/fegennari/3DWorld/blob/master/src/voxels.cpp
- Memory Management for infinite procedural generation algorithm (please help me I beg)
-
Best approach to render a lot of text.
Thanks. Yes, I was looking at this. The problem is that the texture atlases are in a different format than the ones I currently use. The MSDF versions don't have all of the ASCII characters and some characters have a different number of pixels. So it's not a drop in replacement for my system, which is using texture atlases like this: https://github.com/fegennari/3DWorld/blob/master/textures/atlas/text_atlas.png
-
Rigid Body Physics with rotation question
I have some code for this here, but it's part of a large project and not easy to read/understand: https://github.com/fegennari/3DWorld/blob/master/src/free_obj.cpp
What are some alternatives?
assimp - The official Open-Asset-Importer-Library Repository. Loads 40+ 3D-file-formats into one unified and clean data structure.
tinygltf - Header only C++11 tiny glTF 2.0 library
rapidobj - A fast, header-only, C++17 library for parsing Wavefront .obj files.
FastNoise - Fast Portable Noise Library - C# C++ C Java HLSL GLSL JavaScript Rust Go
stb - stb single-file public domain libraries for C/C++
single_file_libs - List of single-file C/C++ libraries.
oof - Convenient, high-performance RGB color and position control for console output
MarkovNameGenerator - :black_nib: Markov process-based procedural name and word generator demo
mp-units - The quantities and units library for C++
PolyWorld - A world generator that is based on Voronoi diagrams
termtosvg - Record terminal sessions as SVG animations
Cities - Procedural city & road placement