mirror of
https://git.mirrors.martin98.com/https://github.com/syoyo/tinygltf.git
synced 2025-08-14 19:15:59 +08:00
Add HandmadeMath.
Add simple morphing code.
This commit is contained in:
parent
f02c504481
commit
04d8d637fc
2507
examples/skinning/HandmadeMath.h
Normal file
2507
examples/skinning/HandmadeMath.h
Normal file
File diff suppressed because it is too large
Load Diff
22
examples/skinning/morph-targets.cc
Normal file
22
examples/skinning/morph-targets.cc
Normal file
@ -0,0 +1,22 @@
|
||||
#include <vector>
|
||||
#include <cstdlib>
|
||||
#include <cassert>
|
||||
|
||||
void MorthTargets(std::vector<float> &weights,
|
||||
std::vector<std::vector<float>> &targets,
|
||||
std::vector<float> *output)
|
||||
{
|
||||
assert(weights.size() > 0);
|
||||
assert(targets.size() > 0);
|
||||
assert(weights.size() == targets.size());
|
||||
|
||||
// Assume all position has same number of vertices;
|
||||
|
||||
// TODO(parallelize)
|
||||
for (size_t v = 0; v < targets[0].size(); v++) { // for each vertex
|
||||
(*output)[v] = 0.0f;
|
||||
for (size_t i = 0; i < weights.size(); i++) {
|
||||
(*output)[v] += weights[i] * targets[i][v];
|
||||
}
|
||||
}
|
||||
}
|
@ -18,7 +18,7 @@ solution "skinning"
|
||||
kind "ConsoleApp"
|
||||
language "C++"
|
||||
cppdialect "C++11"
|
||||
files { "main.cc", "skinning.cc", "../common/trackball.cc", "../common/matrix.cc" }
|
||||
files { "main.cc", "skinning.cc", "morph-targets.cc", "../common/trackball.cc", "../common/matrix.cc" }
|
||||
includedirs { "./" }
|
||||
includedirs { "../../" }
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user