Add more support for parsing texture options.
Add more unit testing for texture options.
This commit is contained in:
@@ -488,6 +488,48 @@ TEST_CASE("usemtl_at_last_line", "[Issue104]") {
|
||||
REQUIRE(1 == shapes.size());
|
||||
}
|
||||
|
||||
TEST_CASE("texture_opts", "[Issue85]") {
|
||||
tinyobj::attrib_t attrib;
|
||||
std::vector<tinyobj::shape_t> shapes;
|
||||
std::vector<tinyobj::material_t> materials;
|
||||
|
||||
std::string err;
|
||||
bool ret = tinyobj::LoadObj(&attrib, &shapes, &materials, &err, "../models/texture-options-issue-85.obj", gMtlBasePath);
|
||||
|
||||
if (!err.empty()) {
|
||||
std::cerr << err << std::endl;
|
||||
}
|
||||
REQUIRE(true == ret);
|
||||
REQUIRE(1 == shapes.size());
|
||||
REQUIRE(3 == materials.size());
|
||||
REQUIRE(0 == materials[0].name.compare("default"));
|
||||
REQUIRE(0 == materials[1].name.compare("bm2"));
|
||||
REQUIRE(0 == materials[2].name.compare("bm3"));
|
||||
REQUIRE(true == materials[0].ambient_texopt.clamp);
|
||||
REQUIRE(0.1 == Approx(materials[0].diffuse_texopt.origin_offset[0]));
|
||||
REQUIRE(0.0 == Approx(materials[0].diffuse_texopt.origin_offset[1]));
|
||||
REQUIRE(0.0 == Approx(materials[0].diffuse_texopt.origin_offset[2]));
|
||||
REQUIRE(0.1 == Approx(materials[0].specular_texopt.scale[0]));
|
||||
REQUIRE(0.2 == Approx(materials[0].specular_texopt.scale[1]));
|
||||
REQUIRE(1.0 == Approx(materials[0].specular_texopt.scale[2]));
|
||||
REQUIRE(0.1 == Approx(materials[0].specular_highlight_texopt.turbulence[0]));
|
||||
REQUIRE(0.2 == Approx(materials[0].specular_highlight_texopt.turbulence[1]));
|
||||
REQUIRE(0.3 == Approx(materials[0].specular_highlight_texopt.turbulence[2]));
|
||||
REQUIRE(3.0 == Approx(materials[0].bump_texopt.bump_multiplier));
|
||||
|
||||
REQUIRE(0.1 == Approx(materials[1].specular_highlight_texopt.brightness));
|
||||
REQUIRE(0.3 == Approx(materials[1].specular_highlight_texopt.contrast));
|
||||
REQUIRE('r' == materials[1].bump_texopt.imfchan);
|
||||
|
||||
REQUIRE(tinyobj::TEXTURE_TYPE_SPHERE == materials[2].diffuse_texopt.type);
|
||||
REQUIRE(tinyobj::TEXTURE_TYPE_CUBE_TOP == materials[2].specular_texopt.type);
|
||||
REQUIRE(tinyobj::TEXTURE_TYPE_CUBE_BOTTOM == materials[2].specular_highlight_texopt.type);
|
||||
REQUIRE(tinyobj::TEXTURE_TYPE_CUBE_LEFT == materials[2].ambient_texopt.type);
|
||||
REQUIRE(tinyobj::TEXTURE_TYPE_CUBE_RIGHT == materials[2].alpha_texopt.type);
|
||||
REQUIRE(tinyobj::TEXTURE_TYPE_CUBE_FRONT == materials[2].bump_texopt.type);
|
||||
REQUIRE(tinyobj::TEXTURE_TYPE_CUBE_BACK == materials[2].displacement_texopt.type);
|
||||
}
|
||||
|
||||
#if 0
|
||||
int
|
||||
main(
|
||||
|
||||
Reference in New Issue
Block a user