Giter VIP home page Giter VIP logo

Comments (6)

syoyo avatar syoyo commented on June 27, 2024 1

Hashmap implementation that handles the material IDs is broken, as it firstly work well with like 1500 triangles,

Could you post reproducible .obj(and .mtl) file?

from tinyobjloader-c.

iyenal avatar iyenal commented on June 27, 2024

Hi,
For sure, you'll find both of them in this archive:
https://mega.nz/file/HQslFYrb#SnVobW74RlGAlqWzHeyw4sM6KGGi57KZPkxgiUWcqds
The models are exported from Blender, and it happens with the model without materials too. Thanks so much for looking in that :)

from tinyobjloader-c.

syoyo avatar syoyo commented on June 27, 2024

I have tested with your .obj, but material_ids works well.

printf("Texture mat ID = %d\n", attrib.material_ids[face_offset + 1])

You should not use face_offset to access material_ids since material id is provided per-face manner. With address sanitizer, you'll get an out-of-bounds access error.

I have added an comment how to access material_ids

/* You can access per-face material through attrib.material_ids[i] */

from tinyobjloader-c.

iyenal avatar iyenal commented on June 27, 2024

I have checked that solution, but I get weird results.
I splitted the vertex buffer on multiple ones for each shape, and each shape have its own material. However inside 1 shape, I could get multiple Material IDs, which shouldn't be possible.

from tinyobjloader-c.

syoyo avatar syoyo commented on June 27, 2024

I could get multiple Material IDs

.obj can have multiple material ids(per-face material). If you use tinyobjloader-c for OpenGL/DirectX application, you first need to re-arrange vertex data by iterating material ids.

from tinyobjloader-c.

iyenal avatar iyenal commented on June 27, 2024

Got it, thanks. For now so using a workaround to instead to get per-face material IDs, use per-object materials by merging them before-hand.
Thanks again.

from tinyobjloader-c.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.