From 3b17371648c8ccf1d128f83840f5b309bfe824a1 Mon Sep 17 00:00:00 2001 From: Syoyo Fujita Date: Tue, 25 Oct 2016 01:30:40 +0900 Subject: [PATCH 1/4] Add cyhair2gltf converter. --- examples/cyhair_to_gltf/Makefile | 6 + examples/cyhair_to_gltf/README.md | 13 + examples/cyhair_to_gltf/cyhair2gltf.cc | 352 +++++++++++++++++++++++ examples/cyhair_to_gltf/cyhair_loader.cc | 305 ++++++++++++++++++++ examples/cyhair_to_gltf/cyhair_loader.h | 109 +++++++ 5 files changed, 785 insertions(+) create mode 100644 examples/cyhair_to_gltf/Makefile create mode 100644 examples/cyhair_to_gltf/README.md create mode 100644 examples/cyhair_to_gltf/cyhair2gltf.cc create mode 100644 examples/cyhair_to_gltf/cyhair_loader.cc create mode 100644 examples/cyhair_to_gltf/cyhair_loader.h diff --git a/examples/cyhair_to_gltf/Makefile b/examples/cyhair_to_gltf/Makefile new file mode 100644 index 0000000..1ee69b2 --- /dev/null +++ b/examples/cyhair_to_gltf/Makefile @@ -0,0 +1,6 @@ +# Suppress some C++ warnings(in clang). +EXTRA_CXXFLAGS := -Weverything -Werror + +all: + clang++ -g -o cyhair2gltf $(EXTRA_CXXFLAGS) cyhair2gltf.cc cyhair_loader.cc + diff --git a/examples/cyhair_to_gltf/README.md b/examples/cyhair_to_gltf/README.md new file mode 100644 index 0000000..4bea0bd --- /dev/null +++ b/examples/cyhair_to_gltf/README.md @@ -0,0 +1,13 @@ +# Simple CyHair to glTF converter + +For CyHair format, please refer: http://www.cemyuksel.com/cyCodeBase/code.html +For hair model with CyHair format, please refer for example: http://www.cemyuksel.com/research/hairmodels/ + +## Convert + + $ ./cyhair2gltf input.hair output.gltf + +## View + +You can view converted .gltf with glviwew exmaple(`example/glview`). + diff --git a/examples/cyhair_to_gltf/cyhair2gltf.cc b/examples/cyhair_to_gltf/cyhair2gltf.cc new file mode 100644 index 0000000..668b1b0 --- /dev/null +++ b/examples/cyhair_to_gltf/cyhair2gltf.cc @@ -0,0 +1,352 @@ +#include +#include +#include + +#include + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic ignored "-Wold-style-cast" +#pragma clang diagnostic ignored "-Wpadded" +#pragma clang diagnostic ignored "-Wsign-conversion" +#pragma clang diagnostic ignored "-Wc++11-extensions" +#pragma clang diagnostic ignored "-Wconversion" +#pragma clang diagnostic ignored "-Wreserved-id-macro" +#pragma clang diagnostic ignored "-Wfloat-equal" +#pragma clang diagnostic ignored "-Wdeprecated" +#pragma clang diagnostic ignored "-Wweak-vtables" +#pragma clang diagnostic ignored "-Wextra-semi" +#pragma clang diagnostic ignored "-Wswitch-enum" +#pragma clang diagnostic ignored "-Wglobal-constructors" +#pragma clang diagnostic ignored "-Wunused-parameter" +#pragma clang diagnostic ignored "-Wexit-time-destructors" +#pragma clang diagnostic ignored "-Wc++98-compat-pedantic" +#pragma clang diagnostic ignored "-Wdocumentation-unknown-command" +#pragma clang diagnostic ignored "-Wdouble-promotion" +#pragma clang diagnostic ignored "-Wcovered-switch-default" +#endif + +#define PICOJSON_USE_INT64 +#include "../../picojson.h" + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +#include "../../tiny_gltf_loader.h" // To import some TINYGLTF_*** macros. + +#include "cyhair_loader.h" + +// Curves are represented as an array of curve. +// i'th curve has nverts[i] points. +// TODO(syoyo) knots, order to support NURBS curve. +typedef struct +{ + std::vector points; + std::vector nverts; // # of vertices per strand(curve). +} Curves; + +// ---------------------------------------------------------------- +// writer module +// @todo { move writer code to tiny_gltf_writer.h } + +// http://www.adp-gmbh.ch/cpp/common/base64.html +static const char *base64_chars = + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789+/"; + +static std::string base64_encode(unsigned char const* bytes_to_encode, + size_t in_len) { + std::string ret; + int i = 0; + int j = 0; + unsigned char char_array_3[3]; + unsigned char char_array_4[4]; + + while (in_len--) { + char_array_3[i++] = *(bytes_to_encode++); + if (i == 3) { + char_array_4[0] = (char_array_3[0] & 0xfc) >> 2; + char_array_4[1] = static_cast( + ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4)); + char_array_4[2] = static_cast( + ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6)); + char_array_4[3] = char_array_3[2] & 0x3f; + + for (i = 0; (i < 4); i++) ret += base64_chars[char_array_4[i]]; + i = 0; + } + } + + if (i) { + for (j = i; j < 3; j++) char_array_3[j] = '\0'; + + char_array_4[0] = (char_array_3[0] & 0xfc) >> 2; + char_array_4[1] = static_cast( + ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4)); + char_array_4[2] = static_cast( + ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6)); + char_array_4[3] = char_array_3[2] & 0x3f; + + for (j = 0; (j < i + 1); j++) ret += base64_chars[char_array_4[j]]; + + while ((i++ < 3)) ret += '='; + } + + return ret; +} + +static bool SaveCurvesToGLTF(const std::string& output_filename, + const Curves& curves) { + picojson::object root; + + { + picojson::object asset; + asset["generator"] = picojson::value("abc2gltf"); + asset["premultipliedAlpha"] = picojson::value(true); + asset["version"] = picojson::value(static_cast(1)); + picojson::object profile; + profile["api"] = picojson::value("WebGL"); + profile["version"] = picojson::value("1.0.2"); + asset["profile"] = picojson::value(profile); + root["assets"] = picojson::value(asset); + } + + { + picojson::object buffers; + { + { + std::string b64data = base64_encode(reinterpret_cast(curves.points.data()), curves.points.size() * sizeof(float)); + picojson::object buf; + + buf["type"] = picojson::value("arraybuffer"); + buf["uri"] = picojson::value( + std::string("data:application/octet-stream;base64,") + b64data); + buf["byteLength"] = + picojson::value(static_cast(curves.points.size() * sizeof(float))); + + buffers["points"] = picojson::value(buf); + } + + // Out extension + { + std::string b64data = base64_encode(reinterpret_cast(curves.nverts.data()), curves.nverts.size() * sizeof(int)); + picojson::object buf; + + buf["type"] = picojson::value("arraybuffer"); + buf["uri"] = picojson::value( + std::string("data:application/octet-stream;base64,") + b64data); + buf["byteLength"] = + picojson::value(static_cast(curves.nverts.size() * sizeof(int))); + + buffers["nverts"] = picojson::value(buf); + } + + } + root["buffers"] = picojson::value(buffers); + } + + { + picojson::object buffer_views; + { + { + picojson::object buffer_view_points; + buffer_view_points["buffer"] = picojson::value(std::string("points")); + buffer_view_points["byteLength"] = picojson::value(static_cast(curves.points.size() * sizeof(float))); + buffer_view_points["byteOffset"] = picojson::value(static_cast(0)); + buffer_view_points["target"] = picojson::value(static_cast(TINYGLTF_TARGET_ARRAY_BUFFER)); + buffer_views["bufferView_points"] = picojson::value(buffer_view_points); + } + + { + picojson::object buffer_view_nverts; + buffer_view_nverts["buffer"] = picojson::value(std::string("nverts")); + buffer_view_nverts["byteLength"] = picojson::value(static_cast(curves.nverts.size() * sizeof(int))); + buffer_view_nverts["byteOffset"] = picojson::value(static_cast(0)); + buffer_view_nverts["target"] = picojson::value(static_cast(TINYGLTF_TARGET_ARRAY_BUFFER)); + buffer_views["bufferView_nverts"] = picojson::value(buffer_view_nverts); + } + + } + + root["bufferViews"] = picojson::value(buffer_views); + } + + { + picojson::object attributes; + + attributes["POSITION"] = picojson::value(std::string("accessor_points")); + attributes["NVERTS"] = picojson::value(std::string("accessor_nverts")); + + // Extra information for curves primtive. + picojson::object extra; + extra["ext_mode"] = picojson::value("curves"); + + picojson::object primitive; + primitive["attributes"] = picojson::value(attributes); + //primitive["indices"] = picojson::value("accessor_indices"); + primitive["material"] = picojson::value("material_1"); + primitive["mode"] = picojson::value(static_cast(TINYGLTF_MODE_POINTS)); // Use GL_POINTS for backward compatibility + primitive["extras"] = picojson::value(extra); + + + picojson::array primitive_array; + primitive_array.push_back(picojson::value(primitive)); + + picojson::object m; + m["primitives"] = picojson::value(primitive_array); + + picojson::object meshes; + meshes["mesh_1"] = picojson::value(m); + + + root["meshes"] = picojson::value(meshes); + } + + { + picojson::object accessors; + + { + picojson::object accessor_points; + accessor_points["bufferView"] = picojson::value(std::string("bufferView_points")); + accessor_points["byteOffset"] = picojson::value(static_cast(0)); + accessor_points["byteStride"] = picojson::value(static_cast(3 * sizeof(float))); + accessor_points["componentType"] = picojson::value(static_cast(TINYGLTF_COMPONENT_TYPE_FLOAT)); + accessor_points["count"] = picojson::value(static_cast(curves.points.size())); + accessor_points["type"] = picojson::value(std::string("VEC3")); + accessors["accessor_points"] = picojson::value(accessor_points); + } + + { + picojson::object accessor_nverts; + accessor_nverts["bufferView"] = picojson::value(std::string("bufferView_nverts")); + accessor_nverts["byteOffset"] = picojson::value(static_cast(0)); + accessor_nverts["byteStride"] = picojson::value(static_cast(sizeof(int))); + accessor_nverts["componentType"] = picojson::value(static_cast(TINYGLTF_COMPONENT_TYPE_INT)); + accessor_nverts["count"] = picojson::value(static_cast(curves.nverts.size())); + accessor_nverts["type"] = picojson::value(std::string("SCALAR")); + accessors["accessor_nverts"] = picojson::value(accessor_nverts); + } + + picojson::object accessor_indices; + + root["accessors"] = picojson::value(accessors); + } + + { + // Use Default Material(Do not supply `material.technique`) + picojson::object default_material; + picojson::object materials; + + materials["material_1"] = picojson::value(default_material); + + root["materials"] = picojson::value(materials); + + } + + { + picojson::object nodes; + picojson::object node; + picojson::array meshes; + + meshes.push_back(picojson::value(std::string("mesh_1"))); + + node["meshes"] = picojson::value(meshes); + + nodes["node_1"] = picojson::value(node); + root["nodes"] = picojson::value(nodes); + } + + { + picojson::object defaultScene; + picojson::array nodes; + + nodes.push_back(picojson::value(std::string("node_1"))); + + defaultScene["nodes"] = picojson::value(nodes); + + root["scene"] = picojson::value("defaultScene"); + picojson::object scenes; + scenes["defaultScene"] = picojson::value(defaultScene); + root["scenes"] = picojson::value(scenes); + } + + + // @todo {} + picojson::object shaders; + picojson::object programs; + picojson::object techniques; + picojson::object materials; + picojson::object skins; + root["shaders"] = picojson::value(shaders); + root["programs"] = picojson::value(programs); + root["techniques"] = picojson::value(techniques); + root["materials"] = picojson::value(materials); + root["skins"] = picojson::value(skins); + + std::ofstream ifs(output_filename.c_str()); + if (ifs.bad()) { + std::cerr << "Failed to open " << output_filename << std::endl; + return false; + } + + picojson::value v = picojson::value(root); + + std::string s = v.serialize(/* pretty */true); + ifs.write(s.data(), static_cast(s.size())); + ifs.close(); + + return true; +} + + +int main(int argc, char** argv) { + std::string cyhair_filename; + std::string gltf_filename; + + if (argc < 3) { + std::cerr << "Usage: cyhair2abc input.hair output.gltf" << std::endl; + return EXIT_FAILURE; + } + + cyhair_filename = std::string(argv[1]); + gltf_filename = std::string(argv[2]); + + example::CyHair cyhair; + { + bool ret = cyhair.Load(cyhair_filename.c_str()); + if (!ret) { + std::cerr << "Failed to load " << cyhair_filename << std::endl; + return EXIT_FAILURE; + } + } + + // Convert to curves. + Curves curves; + { + // TODO(syoyo): thickness, colors, etc. + curves.points = cyhair.points_; + + // NVETS = numSegments + 1 + if (cyhair.segments_.empty()) { + for (size_t i = 0; i < cyhair.num_strands_; i++) { + curves.nverts.push_back(cyhair.default_segments_ + 1); + } + } else { + for (size_t i = 0; i < cyhair.segments_.size(); i++) { + curves.nverts.push_back(cyhair.segments_[i] + 1); + } + } + } + + bool ret = SaveCurvesToGLTF(gltf_filename, curves); + if (ret) { + std::cout << "Wrote " << gltf_filename << std::endl; + } else { + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} diff --git a/examples/cyhair_to_gltf/cyhair_loader.cc b/examples/cyhair_to_gltf/cyhair_loader.cc new file mode 100644 index 0000000..4f930aa --- /dev/null +++ b/examples/cyhair_to_gltf/cyhair_loader.cc @@ -0,0 +1,305 @@ +/* +The MIT License (MIT) + +Copyright (c) 2016 Light Transport Entertainment, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +// Simple Cyhair loader. + +#include +#include +#include +#include +#include + +#include + +#include "cyhair_loader.h" + +namespace example { + +class real3 { + public: + real3() : x(0.0f), y(0.0f), z(0.0f) {} + real3(float v) : x(v), y(v), z(v) {} + real3(float xx, float yy, float zz) : x(xx), y(yy), z(zz) {} + //~real3() {} + + real3 operator+(const real3 &f2) const { + return real3(x + f2.x, y + f2.y, z + f2.z); + } + real3 operator*(const real3 &f2) const { + return real3(x * f2.x, y * f2.y, z * f2.z); + } + real3 operator/(const real3 &f2) const { + return real3(x / f2.x, y / f2.y, z / f2.z); + } + real3 operator/(const float f) const { return real3(x / f, y / f, z / f); } + + float x, y, z; +}; + +inline real3 operator*(float f, const real3 &v) { + return real3(v.x * f, v.y * f, v.z * f); +} + +static const float toC2B[4][4] = { + {0.0f, 6.0f / 6.0f, 0.0f, 0.0f}, + {-1.0f / 6.0f, 6.0f / 6.0f, 1.0f / 6.0f, 0.0f}, + {0.0f, 1.0f / 6.0f, 6.0f / 6.0f, -1.0f / 6.0f}, + {0.0f, 0.0, 6.0f / 6.0f, 0.0f}}; + +static const float toC2B0[4][4] = { + {0.0f, 6.0f / 6.0f, 0.0f, 0.0f}, + {0.0f, 3.0f / 6.0f, 4.0f / 6.0f, -1.0f / 6.0f}, + {0.0f, 1.0f / 6.0f, 6.0f / 6.0f, -1.0f / 6.0f}, + {0.0f, 0.0f, 6.0f / 6.0f, 0.0f}}; + +static const float toC2B1[4][4] = { + {0.0f, 6.0f / 6.0f, 0.0f, 0.0f}, + {-1.0f / 6.0f, 6.0f / 6.0f, 1.0f / 6.0f, 0.0f}, + {-1.0f / 6.0f, 4.0f / 6.0f, 3.0f / 6.0f, 0.0f}, + {0.0f, 0.0f, 6.0f / 6.0f, 0.0f}}; + +static void mul_matrix(real3 out[4], const float mat[4][4], const real3 pt[4]) { + for (int i = 0; i < 4; i++) { + out[i] = mat[i][0] * pt[0] + mat[i][1] * pt[1] + mat[i][2] * pt[2] + + mat[i][3] * pt[3]; + } +} + +static void CamullRomToCubicBezier(real3 Q[4], const real3 *cps, int cps_size, + int seg_idx) { + size_t sz = static_cast(cps_size); + if (sz == 2) { + Q[0] = cps[seg_idx]; + Q[1] = cps[seg_idx] * 2.0f / 3.0f + cps[seg_idx + 1] * 1.0f / 3.0f; + Q[2] = cps[seg_idx] * 1.0f / 3.0f + cps[seg_idx + 1] * 2.0f / 3.0f; + Q[3] = cps[seg_idx + 1]; + } else { + real3 P[4]; + if (seg_idx == 0) { + P[0] = real3(0.0f); + P[1] = cps[seg_idx + 0]; + P[2] = cps[seg_idx + 1]; + P[3] = cps[seg_idx + 2]; + mul_matrix(Q, toC2B0, P); + } else if (seg_idx == static_cast(sz - 2)) { + P[0] = cps[seg_idx - 1]; + P[1] = cps[seg_idx + 0]; + P[2] = cps[seg_idx + 1]; + P[3] = real3(0.0f); + mul_matrix(Q, toC2B1, P); + } else { + P[0] = cps[seg_idx - 1]; + P[1] = cps[seg_idx + 0]; + P[2] = cps[seg_idx + 1]; + P[3] = cps[seg_idx + 2]; + mul_matrix(Q, toC2B, P); + } + } +} + +bool CyHair::Load(const char *filename) { + FILE *fp = fopen(filename, "rb"); + if (!fp) { + return false; + } + + assert(sizeof(CyHairHeader) == 128); + CyHairHeader header; + + if (1 != fread(&header, 128, 1, fp)) { + fclose(fp); + return false; + } + if (memcmp(header.magic, "HAIR", 4) != 0) { + fclose(fp); + return false; + } + + flags_ = header.flags; + default_thickness_ = header.default_thickness; + default_transparency_ = header.default_transparency; + default_segments_ = static_cast(header.default_segments); + default_color_[0] = header.default_color[0]; + default_color_[1] = header.default_color[1]; + default_color_[2] = header.default_color[2]; + + const bool has_segments = flags_ & 0x1; + const bool has_points = flags_ & 0x2; + const bool has_thickness = flags_ & 0x4; + const bool has_transparency = flags_ & 0x8; + const bool has_color = flags_ & 0x10; + + num_strands_ = header.num_strands; + total_points_ = header.total_points; + + if (!has_points) { + std::cout << "No point data in CyHair." << std::endl; + return false; + } + + if ((default_segments_ < 1) && (!has_segments)) { + std::cout << "No valid segment information in CyHair." << std::endl; + return false; + } + + // First read all strand data from a file. + if (has_segments) { + segments_.resize(num_strands_); + if (1 != + fread(&segments_[0], sizeof(unsigned short) * num_strands_, 1, fp)) { + std::cout << "Failed to read CyHair segments data." << std::endl; + fclose(fp); + return false; + } + } + + if (has_points) { + points_.resize(3 * total_points_); + size_t n = fread(&points_[0], total_points_ * sizeof(float) * 3, 1, fp); + if (1 != n) { + std::cout << "Failed to read CyHair points data." << std::endl; + fclose(fp); + return false; + } + } + if (has_thickness) { + thicknesses_.resize(total_points_); + if (1 != fread(&thicknesses_[0], total_points_ * sizeof(float), 1, fp)) { + std::cout << "Failed to read CyHair thickness data." << std::endl; + fclose(fp); + return false; + } + } + + if (has_transparency) { + transparencies_.resize(total_points_); + if (1 != fread(&transparencies_[0], total_points_ * sizeof(float), 1, fp)) { + std::cout << "Failed to read CyHair transparencies data." << std::endl; + fclose(fp); + return false; + } + } + + if (has_color) { + colors_.resize(3 * total_points_); + if (1 != fread(&colors_[0], total_points_ * sizeof(float) * 3, 1, fp)) { + std::cout << "Failed to read CyHair colors data." << std::endl; + fclose(fp); + return false; + } + } + + // Build strand offset table. + strand_offsets_.resize(num_strands_); + strand_offsets_[0] = 0; + for (size_t i = 1; i < num_strands_; i++) { + int num_segments = segments_.empty() ? default_segments_ : segments_[i - 1]; + strand_offsets_[i] = + strand_offsets_[i - 1] + static_cast(num_segments + 1); + } + + return true; +} + +bool CyHair::ToCubicBezierCurves(std::vector *vertices, + std::vector *radiuss, + const float vertex_scale[3], + const float vertex_translate[3], + const int max_strands, const float user_thickness) { + if (points_.empty() || strand_offsets_.empty()) { + return false; + } + + vertices->clear(); + radiuss->clear(); + + int num_strands = static_cast(num_strands_); + + if ((max_strands > 0) && (max_strands < num_strands)) { + num_strands = max_strands; + } + + std::cout << "[Hair] Convert first " << num_strands << " strands from " + << max_strands << " strands in the original hair data." + << std::endl; + + // Assume input points are CatmullRom spline. + for (size_t i = 0; i < static_cast(num_strands); i++) { + if ((i % 1000) == 0) { + std::cout << i << " / " << num_strands_ << std::endl; + } + + int num_segments = segments_.empty() ? default_segments_ : segments_[i]; + if (num_segments < 2) { + continue; + } + + std::vector segment_points; + for (size_t k = 0; k < static_cast(num_segments); k++) { + // Zup -> Yup + real3 p(points_[3 * (strand_offsets_[i] + k) + 0], + points_[3 * (strand_offsets_[i] + k) + 2], + points_[3 * (strand_offsets_[i] + k) + 1]); + segment_points.push_back(p); + } + + // Skip both endpoints + for (int s = 1; s < num_segments - 1; s++) { + int seg_idx = s - 1; + real3 q[4]; + CamullRomToCubicBezier(q, segment_points.data(), num_segments, seg_idx); + + vertices->push_back(vertex_scale[0] * q[0].x + vertex_translate[0]); + vertices->push_back(vertex_scale[1] * q[0].y + vertex_translate[1]); + vertices->push_back(vertex_scale[2] * q[0].z + vertex_translate[2]); + vertices->push_back(vertex_scale[0] * q[1].x + vertex_translate[0]); + vertices->push_back(vertex_scale[1] * q[1].y + vertex_translate[1]); + vertices->push_back(vertex_scale[2] * q[1].z + vertex_translate[2]); + vertices->push_back(vertex_scale[0] * q[2].x + vertex_translate[0]); + vertices->push_back(vertex_scale[1] * q[2].y + vertex_translate[1]); + vertices->push_back(vertex_scale[2] * q[2].z + vertex_translate[2]); + vertices->push_back(vertex_scale[0] * q[3].x + vertex_translate[0]); + vertices->push_back(vertex_scale[1] * q[3].y + vertex_translate[1]); + vertices->push_back(vertex_scale[2] * q[3].z + vertex_translate[2]); + + if (user_thickness > 0) { + // Use user supplied thickness. + radiuss->push_back(user_thickness); + radiuss->push_back(user_thickness); + radiuss->push_back(user_thickness); + radiuss->push_back(user_thickness); + } else { + // TODO(syoyo) Support per point/segment thickness + radiuss->push_back(default_thickness_); + radiuss->push_back(default_thickness_); + radiuss->push_back(default_thickness_); + radiuss->push_back(default_thickness_); + } + } + } + + return true; +} + +} // namespace example diff --git a/examples/cyhair_to_gltf/cyhair_loader.h b/examples/cyhair_to_gltf/cyhair_loader.h new file mode 100644 index 0000000..3852912 --- /dev/null +++ b/examples/cyhair_to_gltf/cyhair_loader.h @@ -0,0 +1,109 @@ +/* +The MIT License (MIT) + +Copyright (c) 2016 Light Transport Entertainment, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +// Simple Cyhair loader. + +#ifndef EXAMPLE_CYHAIR_LOADER_H_ +#define EXAMPLE_CYHAIR_LOADER_H_ + +#include +#include +#include +#include +#include + +#include + +namespace example { + +struct CyHairHeader { + char magic[4]; + unsigned int num_strands; + unsigned int total_points; + unsigned int flags; + unsigned int default_segments; + float default_thickness; + float default_transparency; + float default_color[3]; + char infomation[88]; +}; + +class CyHair { + public: + CyHair() + : flags_(0), + num_strands_(0), + total_points_(0), + default_segments_(-1), + default_thickness_(0.01f), + default_transparency_(1.0f) { + default_color_[0] = 0.5f; + default_color_[1] = 0.5f; + default_color_[2] = 0.5f; + } + + ~CyHair() {} + + /// Load CyHair data from a file. + bool Load(const char *filename); + + /// Convert to cubic bezier curves. + /// 4(cubic) * 3(xyz) * num_curves = vertices.size() + /// 4(cubic) * num_curves = radiuss.size() + /// `max_strands` limits the number of strands to convert. -1 = convert all + /// strands. + /// `thickness` overwrites strand thickness if it have positive value. + /// Apply `vertex_translate` after `vertex_scale`. + /// TODO(syoyo) return strand/segment information + bool ToCubicBezierCurves(std::vector *vertices, + std::vector *radiuss, + const float vertex_scale[3], + const float vertex_translate[3], + const int max_strands = -1, + const float thickness = -1.0f); + + CyHairHeader header_; + + // Raw CyHair values + std::vector segments_; + std::vector points_; // xyz + std::vector thicknesses_; + std::vector transparencies_; + std::vector colors_; // rgb + unsigned int flags_; + unsigned int num_strands_; + unsigned int total_points_; + int default_segments_; + float default_thickness_; + float default_transparency_; + float default_color_[3]; + int pad0; + + // Processed CyHair values + std::vector strand_offsets_; +}; + +} // namespace example + +#endif // EXAMPLE_CYHAIR_LOADER_H_ From f847e74d4dd25befbf923192fc1301bfe35bd2ba Mon Sep 17 00:00:00 2001 From: Syoyo Fujita Date: Tue, 25 Oct 2016 01:44:19 +0900 Subject: [PATCH 2/4] Add screenshot of cyhair. --- examples/cyhair_to_gltf/README.md | 2 ++ images/cyhair.png | Bin 0 -> 163956 bytes 2 files changed, 2 insertions(+) create mode 100644 images/cyhair.png diff --git a/examples/cyhair_to_gltf/README.md b/examples/cyhair_to_gltf/README.md index 4bea0bd..d0d648a 100644 --- a/examples/cyhair_to_gltf/README.md +++ b/examples/cyhair_to_gltf/README.md @@ -1,5 +1,7 @@ # Simple CyHair to glTF converter +![](../../images/cyhair.png) + For CyHair format, please refer: http://www.cemyuksel.com/cyCodeBase/code.html For hair model with CyHair format, please refer for example: http://www.cemyuksel.com/research/hairmodels/ diff --git a/images/cyhair.png b/images/cyhair.png new file mode 100644 index 0000000000000000000000000000000000000000..ad130ca6d96bfb6bf927ee71a9390269c2478cc0 GIT binary patch literal 163956 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

W`8S-fmgcIn7H6rOKgQ}@v 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 literal 0 HcmV?d00001 From de004dfe0d9bd0367d139f5e22fc7e787c94c32c Mon Sep 17 00:00:00 2001 From: Syoyo Fujita Date: Tue, 25 Oct 2016 01:45:10 +0900 Subject: [PATCH 3/4] Newline --- examples/cyhair_to_gltf/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/cyhair_to_gltf/README.md b/examples/cyhair_to_gltf/README.md index d0d648a..4336460 100644 --- a/examples/cyhair_to_gltf/README.md +++ b/examples/cyhair_to_gltf/README.md @@ -2,7 +2,8 @@ ![](../../images/cyhair.png) -For CyHair format, please refer: http://www.cemyuksel.com/cyCodeBase/code.html +For CyHair format, please refer: http://www.cemyuksel.com/cyCodeBase/code.html . + For hair model with CyHair format, please refer for example: http://www.cemyuksel.com/research/hairmodels/ ## Convert From 5442071f992bb501589e988c664e1b8f174ffba7 Mon Sep 17 00:00:00 2001 From: Syoyo Fujita Date: Tue, 25 Oct 2016 01:48:44 +0900 Subject: [PATCH 4/4] Update README. --- examples/cyhair_to_gltf/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/cyhair_to_gltf/README.md b/examples/cyhair_to_gltf/README.md index 4336460..947e3ae 100644 --- a/examples/cyhair_to_gltf/README.md +++ b/examples/cyhair_to_gltf/README.md @@ -2,6 +2,8 @@ ![](../../images/cyhair.png) +Convert CyHair to curve points using glTF + extension(curve data format is described in `../alembic_to_gltf/README.md`). + For CyHair format, please refer: http://www.cemyuksel.com/cyCodeBase/code.html . For hair model with CyHair format, please refer for example: http://www.cemyuksel.com/research/hairmodels/