mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-11 22:11:51 +00:00
feat: individual bone tints
This commit is contained in:
parent
dbeeef90a8
commit
f5f17b7746
2 changed files with 5 additions and 2 deletions
|
|
@ -46,7 +46,8 @@ Skeleton::Skeleton(std::shared_ptr<const SkeletonConfig> config)
|
||||||
flags(config ? config->getBones().size() : 0),
|
flags(config ? config->getBones().size() : 0),
|
||||||
textures(),
|
textures(),
|
||||||
modelOverrides(config ? config->getBones().size() : 0),
|
modelOverrides(config ? config->getBones().size() : 0),
|
||||||
visible(true) {
|
visible(true),
|
||||||
|
boneTints(config ? config->getBones().size() : 0, glm::vec4(1.0f)) {
|
||||||
if (config == nullptr) {
|
if (config == nullptr) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -99,6 +100,7 @@ void Skeleton::setConfig(std::shared_ptr<const SkeletonConfig> rigConfig) {
|
||||||
|
|
||||||
modelOverrides.resize(bonesCount);
|
modelOverrides.resize(bonesCount);
|
||||||
flags.resize(bonesCount);
|
flags.resize(bonesCount);
|
||||||
|
boneTints.resize(bonesCount, glm::vec4(1.0f));
|
||||||
|
|
||||||
for (size_t i = 0; i < bonesCount; i++) {
|
for (size_t i = 0; i < bonesCount; i++) {
|
||||||
flags[i].visible = true;
|
flags[i].visible = true;
|
||||||
|
|
@ -204,7 +206,7 @@ void SkeletonConfig::render(
|
||||||
if (model) {
|
if (model) {
|
||||||
batch.draw(
|
batch.draw(
|
||||||
skeleton.calculated.matrices[i],
|
skeleton.calculated.matrices[i],
|
||||||
skeleton.tint,
|
skeleton.tint * skeleton.boneTints[i],
|
||||||
model,
|
model,
|
||||||
&skeleton.textures
|
&skeleton.textures
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -86,6 +86,7 @@ namespace rigging {
|
||||||
std::vector<ModelReference> modelOverrides;
|
std::vector<ModelReference> modelOverrides;
|
||||||
bool visible;
|
bool visible;
|
||||||
glm::vec4 tint {1.0f, 1.0f, 1.0f, 1.0f};
|
glm::vec4 tint {1.0f, 1.0f, 1.0f, 1.0f};
|
||||||
|
std::vector<glm::vec4> boneTints;
|
||||||
|
|
||||||
util::VecInterpolation<3, float> interpolation {false};
|
util::VecInterpolation<3, float> interpolation {false};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue