Compare commits
24 Commits
v1.4.1
...
609139f370
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
609139f370 | ||
|
|
cc73127bf0 | ||
|
|
160d6be10f | ||
|
|
583590767e | ||
|
|
dc542d6638 | ||
|
|
c5976f931b | ||
|
|
0511658e86 | ||
|
|
54851f8ac7 | ||
|
|
a6c1d07560 | ||
|
|
4fe479453b | ||
|
|
af1bcf1e11 | ||
|
|
05f06d09d8 | ||
|
|
3c0196bfb7 | ||
|
|
dc4c970262 | ||
|
|
aeb0f05c0e | ||
|
|
c016910317 | ||
|
|
5d7f6bf539 | ||
|
|
b818a34f1a | ||
|
|
baa62f4d89 | ||
|
|
b2f07d10aa | ||
|
|
ee2c734c15 | ||
|
|
6e579f027f | ||
|
|
7b6e33da52 | ||
|
|
5896933508 |
33
README.md
33
README.md
@@ -26,11 +26,20 @@ Old version is available `v0.9.x` branch https://github.com/syoyo/tinyobjloader/
|
|||||||
|
|
||||||
## What's new
|
## What's new
|
||||||
|
|
||||||
|
### Version 2.x
|
||||||
|
|
||||||
|
* Refactor API
|
||||||
|
* Support triangulation for concave polygons(#151)
|
||||||
|
|
||||||
|
### Version 1.x
|
||||||
|
|
||||||
|
Avaiable in `v1.x.y` branch.
|
||||||
|
|
||||||
* 20 Aug, 2016 : Bump version v1.0.0. New data structure and API!
|
* 20 Aug, 2016 : Bump version v1.0.0. New data structure and API!
|
||||||
|
|
||||||
### Old version
|
### Older version
|
||||||
|
|
||||||
Previous old version is avaiable in `v0.9.x` branch.
|
Older version is avaiable in `v0.9.x` branch.
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
@@ -49,7 +58,11 @@ http://casual-effects.com/data/index.html
|
|||||||
|
|
||||||
TinyObjLoader is successfully used in ...
|
TinyObjLoader is successfully used in ...
|
||||||
|
|
||||||
### New version(v1.0.x)
|
### New version(v2.x)
|
||||||
|
|
||||||
|
* Your project here! (Letting us know via github issue is welcome!)
|
||||||
|
|
||||||
|
### Old version(v1.x)
|
||||||
|
|
||||||
* Double precision support through `TINYOBJLOADER_USE_DOUBLE` thanks to noma
|
* 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
|
||||||
@@ -60,7 +73,7 @@ TinyObjLoader is successfully used in ...
|
|||||||
* VFPR - a Vulkan Forward Plus Renderer : https://github.com/WindyDarian/Vulkan-Forward-Plus-Renderer
|
* VFPR - a Vulkan Forward Plus Renderer : https://github.com/WindyDarian/Vulkan-Forward-Plus-Renderer
|
||||||
* Your project here! (Letting us know via github issue is welcome!)
|
* Your project here! (Letting us know via github issue is welcome!)
|
||||||
|
|
||||||
### Old version(v0.9.x)
|
### Older version(v0.9.x)
|
||||||
|
|
||||||
* bullet3 https://github.com/erwincoumans/bullet3
|
* bullet3 https://github.com/erwincoumans/bullet3
|
||||||
* pbrt-v2 https://github.com/mmp/pbrt-v2
|
* pbrt-v2 https://github.com/mmp/pbrt-v2
|
||||||
@@ -228,12 +241,12 @@ 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];
|
||||||
tinyobj::real_t vx = attrib.vertices[3*idx.vertex_index+0];
|
tinyobj::real_t vx = attrib.vertices[idx.vertex_index].x;
|
||||||
tinyobj::real_t vy = attrib.vertices[3*idx.vertex_index+1];
|
tinyobj::real_t vy = attrib.vertices[idx.vertex_index].y;
|
||||||
tinyobj::real_t vz = attrib.vertices[3*idx.vertex_index+2];
|
tinyobj::real_t vz = attrib.vertices[idx.vertex_index].z;
|
||||||
tinyobj::real_t nx = attrib.normals[3*idx.normal_index+0];
|
tinyobj::real_t nx = attrib.normals[idx.normal_index].x;
|
||||||
tinyobj::real_t ny = attrib.normals[3*idx.normal_index+1];
|
tinyobj::real_t ny = attrib.normals[idx.normal_index].y;
|
||||||
tinyobj::real_t nz = attrib.normals[3*idx.normal_index+2];
|
tinyobj::real_t nz = attrib.normals[idx.normal_index].z;
|
||||||
tinyobj::real_t tx = attrib.texcoords[2*idx.texcoord_index+0];
|
tinyobj::real_t tx = attrib.texcoords[2*idx.texcoord_index+0];
|
||||||
tinyobj::real_t ty = attrib.texcoords[2*idx.texcoord_index+1];
|
tinyobj::real_t ty = attrib.texcoords[2*idx.texcoord_index+1];
|
||||||
// Optional: vertex colors
|
// Optional: vertex colors
|
||||||
|
|||||||
@@ -29,6 +29,12 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __clang__
|
||||||
|
#if __has_warning("-Wzero-as-null-pointer-constant")
|
||||||
|
#pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
class timerutil {
|
class timerutil {
|
||||||
public:
|
public:
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
@@ -106,24 +112,24 @@ static void PrintInfo(const tinyobj::attrib_t& attrib,
|
|||||||
std::cout << "# of shapes : " << shapes.size() << std::endl;
|
std::cout << "# of shapes : " << shapes.size() << std::endl;
|
||||||
std::cout << "# of materials : " << materials.size() << std::endl;
|
std::cout << "# of materials : " << materials.size() << std::endl;
|
||||||
|
|
||||||
for (size_t v = 0; v < attrib.vertices.size() / 3; v++) {
|
for (size_t v = 0; v < attrib.vertices.size(); v++) {
|
||||||
printf(" v[%ld] = (%f, %f, %f)\n", static_cast<long>(v),
|
printf(" v[%ld] = (%f, %f, %f)\n", static_cast<long>(v),
|
||||||
static_cast<const double>(attrib.vertices[3 * v + 0]),
|
static_cast<const double>(attrib.vertices[v].x),
|
||||||
static_cast<const double>(attrib.vertices[3 * v + 1]),
|
static_cast<const double>(attrib.vertices[v].y),
|
||||||
static_cast<const double>(attrib.vertices[3 * v + 2]));
|
static_cast<const double>(attrib.vertices[v].z));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t v = 0; v < attrib.normals.size() / 3; v++) {
|
for (size_t v = 0; v < attrib.normals.size(); v++) {
|
||||||
printf(" n[%ld] = (%f, %f, %f)\n", static_cast<long>(v),
|
printf(" n[%ld] = (%f, %f, %f)\n", static_cast<long>(v),
|
||||||
static_cast<const double>(attrib.normals[3 * v + 0]),
|
static_cast<const double>(attrib.normals[v].x),
|
||||||
static_cast<const double>(attrib.normals[3 * v + 1]),
|
static_cast<const double>(attrib.normals[v].y),
|
||||||
static_cast<const double>(attrib.normals[3 * v + 2]));
|
static_cast<const double>(attrib.normals[v].z));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t v = 0; v < attrib.texcoords.size() / 2; v++) {
|
for (size_t v = 0; v < attrib.texcoords.size(); v++) {
|
||||||
printf(" uv[%ld] = (%f, %f)\n", static_cast<long>(v),
|
printf(" uv[%ld] = (%f, %f)\n", static_cast<long>(v),
|
||||||
static_cast<const double>(attrib.texcoords[2 * v + 0]),
|
static_cast<const double>(attrib.texcoords[v].x),
|
||||||
static_cast<const double>(attrib.texcoords[2 * v + 1]));
|
static_cast<const double>(attrib.texcoords[v].y));
|
||||||
}
|
}
|
||||||
|
|
||||||
// For each shape
|
// For each shape
|
||||||
@@ -361,7 +367,7 @@ static bool TestStreamLoadObj() {
|
|||||||
virtual ~MaterialStringStreamReader() {}
|
virtual ~MaterialStringStreamReader() {}
|
||||||
virtual bool operator()(const std::string& matId,
|
virtual bool operator()(const std::string& matId,
|
||||||
std::vector<material_t>* materials,
|
std::vector<material_t>* materials,
|
||||||
std::map<std::string, int>* matMap,
|
std::map<unsigned int, int>* matMap,
|
||||||
std::string* err) {
|
std::string* err) {
|
||||||
(void)matId;
|
(void)matId;
|
||||||
std::string warning;
|
std::string warning;
|
||||||
|
|||||||
@@ -22,22 +22,22 @@ static void PrintInfo(const tinyobj::attrib_t &attrib, const std::vector<tinyobj
|
|||||||
|
|
||||||
for (size_t v = 0; v < attrib.vertices.size() / 3; v++) {
|
for (size_t v = 0; v < attrib.vertices.size() / 3; v++) {
|
||||||
printf(" v[%ld] = (%f, %f, %f)\n", v,
|
printf(" v[%ld] = (%f, %f, %f)\n", v,
|
||||||
static_cast<const double>(attrib.vertices[3*v+0]),
|
static_cast<const double>(attrib.vertices[v].x),
|
||||||
static_cast<const double>(attrib.vertices[3*v+1]),
|
static_cast<const double>(attrib.vertices[v].y),
|
||||||
static_cast<const double>(attrib.vertices[3*v+2]));
|
static_cast<const double>(attrib.vertices[v].z));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t v = 0; v < attrib.normals.size() / 3; v++) {
|
for (size_t v = 0; v < attrib.normals.size() / 3; v++) {
|
||||||
printf(" n[%ld] = (%f, %f, %f)\n", v,
|
printf(" n[%ld] = (%f, %f, %f)\n", v,
|
||||||
static_cast<const double>(attrib.normals[3*v+0]),
|
static_cast<const double>(attrib.normals[v].x),
|
||||||
static_cast<const double>(attrib.normals[3*v+1]),
|
static_cast<const double>(attrib.normals[v].y),
|
||||||
static_cast<const double>(attrib.normals[3*v+2]));
|
static_cast<const double>(attrib.normals[v].z));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t v = 0; v < attrib.texcoords.size() / 2; v++) {
|
for (size_t v = 0; v < attrib.texcoords.size() / 2; v++) {
|
||||||
printf(" uv[%ld] = (%f, %f)\n", v,
|
printf(" uv[%ld] = (%f, %f)\n", v,
|
||||||
static_cast<const double>(attrib.texcoords[2*v+0]),
|
static_cast<const double>(attrib.texcoords[v].x),
|
||||||
static_cast<const double>(attrib.texcoords[2*v+1]));
|
static_cast<const double>(attrib.texcoords[v].y));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t i = 0; i < shapes.size(); i++) {
|
for (size_t i = 0; i < shapes.size(); i++) {
|
||||||
@@ -303,7 +303,8 @@ std::string matStream(
|
|||||||
virtual bool operator() (
|
virtual bool operator() (
|
||||||
const std::string& matId,
|
const std::string& matId,
|
||||||
std::vector<material_t>* materials,
|
std::vector<material_t>* materials,
|
||||||
std::map<std::string, int>* matMap,
|
//std::map<std::string, int>* matMap,
|
||||||
|
std::map<uint32_t, int>* matMap,
|
||||||
std::string* err)
|
std::string* err)
|
||||||
{
|
{
|
||||||
(void)matId;
|
(void)matId;
|
||||||
|
|||||||
1923
tiny_obj_loader.h
1923
tiny_obj_loader.h
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user