Added viola

This commit is contained in:
Vladislav Khorev committed 2026-04-01 13:02:39 +03:00
1 parent 56ce826205
commit 7840bfdb4e
5 files changed
+85888 -2

No files matched your search

File diff suppressed because it is too large. Load diff
BIN
View File
Binary file not shown.
File diff suppressed because it is too large. Load diff
+63 -1
View File
@@ -171,7 +171,11 @@ namespace ZL
benchMesh.data.Move({ -2.1, 0.5, -7.9 });
benchMesh.RefreshVBO();
violaIdleModel.LoadFromFile("resources/idleviola_uv010.txt", CONST_ZIP_FILE);
violaWalkModel.LoadFromFile("resources/walkviola_uv010.txt", CONST_ZIP_FILE);
violaTexture = std::make_unique<Texture>(CreateTextureDataFromPng("resources/viola.png", CONST_ZIP_FILE));
loadingCompleted = true;
}
@@ -205,7 +209,7 @@ namespace ZL
renderer.LoadIdentity();
renderer.TranslateMatrix({ 0,0, -1.0f * Environment::zoom });
renderer.TranslateMatrix({ 0, -6.f, 0 }); //Ship camera offset
//renderer.TranslateMatrix({ 0, -6.f, 0 });
renderer.RotateMatrix(Eigen::Quaternionf(Eigen::AngleAxisf(M_PI * 30 / 180.f, Eigen::Vector3f::UnitX())).toRotationMatrix());
@@ -219,6 +223,34 @@ namespace ZL
glBindTexture(GL_TEXTURE_2D, benchTexture->getTexID());
renderer.DrawVertexRenderStruct(benchMesh);
renderer.PushMatrix();
renderer.ScaleMatrix(0.2);
renderer.RotateMatrix(Eigen::Quaternionf(Eigen::AngleAxisf(-M_PI * 0.5f, Eigen::Vector3f::UnitX())).toRotationMatrix());
renderer.RotateMatrix(Eigen::Quaternionf(Eigen::AngleAxisf(M_PI, Eigen::Vector3f::UnitZ())).toRotationMatrix());
//renderer.RotateMatrix(QuatFromRotateAroundX(-M_PI / 2.0));
//renderer.RotateMatrix(QuatFromRotateAroundZ(M_PI));
if (violaCurrentAnimation == 0) {
violaIdleModelMutable.AssignFrom(violaIdleModel.mesh);
violaIdleModelMutable.RefreshVBO();
glBindTexture(GL_TEXTURE_2D, violaTexture->getTexID());
renderer.DrawVertexRenderStruct(violaIdleModelMutable);
}
else if (violaCurrentAnimation == 1) {
violaWalkModelMutable.AssignFrom(violaWalkModel.mesh);
violaWalkModelMutable.RefreshVBO();
glBindTexture(GL_TEXTURE_2D, violaTexture->getTexID());
renderer.DrawVertexRenderStruct(violaWalkModelMutable);
}
renderer.PopMatrix();
renderer.PopMatrix();
renderer.PopProjectionMatrix();
@@ -294,7 +326,37 @@ namespace ZL
int64_t delta = newTickCount - lastTickCount;
lastTickCount = newTickCount;
if (violaCurrentAnimation == 0) {
violaCurrentIdleFrame += delta / 24.f;
while (violaCurrentIdleFrame >= 40) {
violaCurrentIdleFrame -= 40;
}
if (int(violaCurrentIdleFrame) != violaLastIdleFrame) {
violaIdleModel.Interpolate(int(violaCurrentIdleFrame));
violaLastIdleFrame = int(violaCurrentIdleFrame);
}
}
else if (violaCurrentAnimation == 1) {
violaCurrentWalkFrame += delta / 24.f;
while (violaCurrentWalkFrame >= 30) {
violaCurrentWalkFrame -= 30;
}
if (int(violaCurrentWalkFrame) != violaLastWalkFrame) {
violaWalkModel.Interpolate(int(violaCurrentWalkFrame));
violaLastWalkFrame = int(violaCurrentWalkFrame);
}
}
}
}
void Game::render() {
+17 -1
View File
@@ -1,5 +1,5 @@
#pragma once
#include "BoneAnimatedModel.h"
#include "render/Renderer.h"
#include "Environment.h"
#include "render/TextureManager.h"
@@ -56,6 +56,22 @@ namespace ZL {
std::shared_ptr<Texture> benchTexture;
VertexRenderStruct benchMesh;
BoneSystem violaIdleModel;
VertexRenderStruct violaIdleModelMutable;
BoneSystem violaWalkModel;
VertexRenderStruct violaWalkModelMutable;
std::shared_ptr<Texture> violaTexture;
float violaCurrentIdleFrame = 0;
float violaCurrentWalkFrame = 0;
int violaLastIdleFrame = 0;
int violaLastWalkFrame = 0;
int violaCurrentAnimation = 0;
private:
int64_t getSyncTimeMs();
void processTickCount();