Working on adding Eigen

This commit is contained in:
Vladislav Khorev committed 2026-01-03 19:52:44 +03:00
1 parent c553780b6e
commit 9bfe2bef89
16 files changed
+402 -503

No files matched your search

+15 -21
View File
@@ -31,19 +31,13 @@ namespace ZL {
Matrix3f rot;
// Столбец 0: Ось X
rot.m[0] = x_axis.v[0];
rot.m[3] = x_axis.v[1];
rot.m[6] = x_axis.v[2];
rot.col(0) = x_axis;
// Столбец 1: Ось Y
rot.m[1] = y_axis.v[0];
rot.m[4] = y_axis.v[1];
rot.m[7] = y_axis.v[2];
rot.col(1) = y_axis;
// Столбец 2: Ось Z
rot.m[2] = z_axis.v[0];
rot.m[5] = z_axis.v[1];
rot.m[8] = z_axis.v[2];
rot.col(2) = z_axis;
return rot;
}
@@ -135,10 +129,10 @@ namespace ZL {
Vector3f rC = MultMatrixVector(mr, tr.data[2]);
// 3. Вычисляем реальные границы треугольника после поворота
float minX = min(rA.v[0], min(rB.v[0], rC.v[0]));
float maxX = max(rA.v[0], max(rB.v[0], rC.v[0]));
float minY = min(rA.v[1], min(rB.v[1], rC.v[1]));
float maxY = max(rA.v[1], max(rB.v[1], rC.v[1]));
float minX = min(rA(0), min(rB(0), rC(0)));
float maxX = max(rA(0), max(rB(0), rC(0)));
float minY = min(rA(1), min(rB(1), rC(1)));
float maxY = max(rA(1), max(rB(1), rC(1)));
// Находим центр и размеры
@@ -165,10 +159,10 @@ namespace ZL {
// Извлекаем нормаль треугольника (это 3-й столбец нашей матрицы вращения)
Vector3f planeNormal = { mr.m[2], mr.m[5], mr.m[8] };
Vector3f planeNormal = mr.col(2);
renderer.RenderUniform3fv("uPlanePoint", &tr.data[0].v[0]);
renderer.RenderUniform3fv("uPlaneNormal", &planeNormal.v[0]);
renderer.RenderUniform3fv("uPlanePoint", tr.data[0].data());
renderer.RenderUniform3fv("uPlaneNormal", planeNormal.data());
renderer.RenderUniform1f("uMaxHeight", StoneParams::BASE_SCALE * 1.1f); // Соответствует BASE_SCALE + perturbation
@@ -267,7 +261,7 @@ namespace ZL {
Matrix3f mr = GetRotationForTriangle(tr); // Та же матрица, что и при запекании
// Позиция камеры (корабля) в мире
renderer.RenderUniform3fv("uViewPos", &Environment::shipPosition.v[0]);
renderer.RenderUniform3fv("uViewPos", Environment::shipPosition.data());
//renderer.RenderUniform1f("uHeightScale", 0.08f);
renderer.RenderUniform1f("uHeightScale", 0.0f);
@@ -335,7 +329,7 @@ namespace ZL {
renderer.RenderUniform1f("uDistanceToPlanetSurface", dist);
renderer.RenderUniform1f("uCurrentZFar", currentZFar);
renderer.RenderUniform3fv("uViewPos", &Environment::shipPosition.v[0]);
renderer.RenderUniform3fv("uViewPos", Environment::shipPosition.data());
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
@@ -399,9 +393,9 @@ namespace ZL {
Vector3f color = { 0.0, 0.5, 1.0 };
renderer.RenderUniform3fv("uColor", &color.v[0]);
renderer.RenderUniform3fv("uColor", color.data());
renderer.RenderUniformMatrix4fv("ModelViewMatrix", false, &viewMatrix.m[0]);
renderer.RenderUniformMatrix4fv("ModelViewMatrix", false, viewMatrix.data());
renderer.RenderUniform1f("uDistanceToPlanetSurface", dist);