working on web
This commit is contained in:
1 parent
fa3a4c66c9
commit
db4254e205
4 files changed
+55
-12
No files matched your search
+23
-4
@@ -816,11 +816,16 @@ namespace ZL
|
||||
|
||||
// defaultColor shader likely uses vColor (vec3), но нам нужен alpha.
|
||||
// У тебя в Renderer есть RenderUniform4fv, но шейдер может брать vColor.
|
||||
// Поэтому: сделаем ColorData vec3, а alpha дадим через uniform uColor, если есть.
|
||||
// Если в defaultColor нет uniform uColor — тогда alpha будет 1.0.
|
||||
// Для совместимости: кладём RGB, alpha будем задавать uniform'ом отдельно.
|
||||
// Поэтому: сделаем ColorData vec3, а alpha будем задавать uniform'ом отдельно.
|
||||
Vector3f rgb{ rgba.x(), rgba.y(), rgba.z() };
|
||||
v.ColorData = { rgb, rgb, rgb, rgb, rgb, rgb };
|
||||
|
||||
// defaultColor vertex shader expects vNormal and vTexCoord; provide valid values
|
||||
// so WebGL/GLSL doesn't get NaN from normalize(vec3(0,0,0)).
|
||||
const Vector3f n{ 0.f, 0.f, 1.f };
|
||||
v.NormalData = { n, n, n, n, n, n };
|
||||
const Vector2f uv{ 0.f, 0.f };
|
||||
v.TexCoordData = { uv, uv, uv, uv, uv, uv };
|
||||
return v;
|
||||
}
|
||||
|
||||
@@ -915,7 +920,7 @@ namespace ZL
|
||||
|
||||
// 4) Настройки стиля
|
||||
Eigen::Vector4f enemyColor(1.f, 0.f, 0.f, 1.f); // красный
|
||||
float thickness = 2.0f; // толщина линий (px)
|
||||
float thickness = 10.0f; // толщина линий (px)
|
||||
float z = 0.0f; // 2D слой
|
||||
|
||||
// 5) Если цель в кадре: рисуем скобки
|
||||
@@ -959,12 +964,14 @@ namespace ZL
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
glClear(GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
renderer.shaderManager.PushShader("defaultColor");
|
||||
renderer.PushProjectionMatrix((float)Environment::width, (float)Environment::height, 0.f, 1.f);
|
||||
renderer.PushMatrix();
|
||||
renderer.LoadIdentity();
|
||||
|
||||
<<<<<<< Updated upstream
|
||||
// рисуем кружок упреждения (только если есть решение)
|
||||
if (haveLead) {
|
||||
float leadNdcX, leadNdcY, leadNdcZ, leadClipW;
|
||||
@@ -987,6 +994,10 @@ namespace ZL
|
||||
}
|
||||
}
|
||||
}
|
||||
=======
|
||||
renderer.EnableVertexAttribArray("vPosition");
|
||||
|
||||
>>>>>>> Stashed changes
|
||||
|
||||
// верх-лево: горизонт + вертикаль
|
||||
drawBar(left + cornerLen * 0.5f, top, cornerLen, thickness);
|
||||
@@ -1004,6 +1015,9 @@ namespace ZL
|
||||
drawBar(right - cornerLen * 0.5f, bottom, cornerLen, thickness);
|
||||
drawBar(right, bottom + cornerLen * 0.5f, thickness, cornerLen);
|
||||
|
||||
renderer.DisableVertexAttribArray("vPosition");
|
||||
|
||||
|
||||
renderer.PopMatrix();
|
||||
renderer.PopProjectionMatrix();
|
||||
renderer.shaderManager.PopShader();
|
||||
@@ -1069,6 +1083,11 @@ namespace ZL
|
||||
v.PositionData = { a, b, c };
|
||||
Vector3f rgb{ enemyColor.x(), enemyColor.y(), enemyColor.z() };
|
||||
v.ColorData = { rgb, rgb, rgb };
|
||||
// defaultColor vertex shader expects vNormal and vTexCoord (avoids NaN on WebGL).
|
||||
const Vector3f n{ 0.f, 0.f, 1.f };
|
||||
v.NormalData = { n, n, n };
|
||||
const Vector2f uv{ 0.f, 0.f };
|
||||
v.TexCoordData = { uv, uv, uv };
|
||||
hudTempMesh.AssignFrom(v);
|
||||
renderer.DrawVertexRenderStruct(hudTempMesh);
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user