Update README.
This commit is contained in:
24
README.md
24
README.md
@@ -51,6 +51,7 @@ TinyObjLoader is successfully used in ...
|
|||||||
|
|
||||||
### New version(v1.0.x)
|
### New version(v1.0.x)
|
||||||
|
|
||||||
|
* Double precision support through `TINYOBJLOADER_USE_DOUBLE` thanks to noma
|
||||||
* Loading models in Vulkan Tutorial https://vulkan-tutorial.com/Loading_models
|
* Loading models in Vulkan Tutorial https://vulkan-tutorial.com/Loading_models
|
||||||
* .obj viewer with Metal https://github.com/middlefeng/NuoModelViewer/tree/master
|
* .obj viewer with Metal https://github.com/middlefeng/NuoModelViewer/tree/master
|
||||||
* Your project here!
|
* Your project here!
|
||||||
@@ -91,6 +92,7 @@ TinyObjLoader is successfully used in ...
|
|||||||
* Crease tag('t'). This is OpenSubdiv specific(not in wavefront .obj specification)
|
* Crease tag('t'). This is OpenSubdiv specific(not in wavefront .obj specification)
|
||||||
* PBR material extension for .MTL. Its proposed here: http://exocortex.com/blog/extending_wavefront_mtl_to_support_pbr
|
* PBR material extension for .MTL. Its proposed here: http://exocortex.com/blog/extending_wavefront_mtl_to_support_pbr
|
||||||
* Callback API for custom loading.
|
* Callback API for custom loading.
|
||||||
|
* Double precision support(for HPC application).
|
||||||
|
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
@@ -175,6 +177,12 @@ mesh_t::num_face_vertices => array of the number of vertices per face(e.g. 3 = t
|
|||||||
|
|
||||||
Note that when `triangulate` flas is true in `tinyobj::LoadObj()` argument, `num_face_vertices` are all filled with 3(triangle).
|
Note that when `triangulate` flas is true in `tinyobj::LoadObj()` argument, `num_face_vertices` are all filled with 3(triangle).
|
||||||
|
|
||||||
|
### float data type
|
||||||
|
|
||||||
|
TinyObjLoader now use `real_t` for floating point data type.
|
||||||
|
Default is `float(32bit)`.
|
||||||
|
You can enable `double(64bit)` precision by using `TINYOBJLOADER_USE_DOUBLE` define.
|
||||||
|
|
||||||
#### Example code
|
#### Example code
|
||||||
|
|
||||||
```c++
|
```c++
|
||||||
@@ -208,14 +216,14 @@ for (size_t s = 0; s < shapes.size(); s++) {
|
|||||||
for (size_t v = 0; v < fv; v++) {
|
for (size_t v = 0; v < fv; v++) {
|
||||||
// access to vertex
|
// access to vertex
|
||||||
tinyobj::index_t idx = shapes[s].mesh.indices[index_offset + v];
|
tinyobj::index_t idx = shapes[s].mesh.indices[index_offset + v];
|
||||||
float vx = attrib.vertices[3*idx.vertex_index+0];
|
tinyobj::real_t vx = attrib.vertices[3*idx.vertex_index+0];
|
||||||
float vy = attrib.vertices[3*idx.vertex_index+1];
|
tinyobj::real_t vy = attrib.vertices[3*idx.vertex_index+1];
|
||||||
float vz = attrib.vertices[3*idx.vertex_index+2];
|
tinyobj::real_t vz = attrib.vertices[3*idx.vertex_index+2];
|
||||||
float nx = attrib.normals[3*idx.normal_index+0];
|
tinyobj::real_t nx = attrib.normals[3*idx.normal_index+0];
|
||||||
float ny = attrib.normals[3*idx.normal_index+1];
|
tinyobj::real_t ny = attrib.normals[3*idx.normal_index+1];
|
||||||
float nz = attrib.normals[3*idx.normal_index+2];
|
tinyobj::real_t nz = attrib.normals[3*idx.normal_index+2];
|
||||||
float tx = attrib.texcoords[2*idx.texcoord_index+0];
|
tinyobj::real_t tx = attrib.texcoords[2*idx.texcoord_index+0];
|
||||||
float ty = attrib.texcoords[2*idx.texcoord_index+1];
|
tinyobj::real_t ty = attrib.texcoords[2*idx.texcoord_index+1];
|
||||||
}
|
}
|
||||||
index_offset += fv;
|
index_offset += fv;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user