Clean unused stuff

This commit is contained in:
luisangelsm
2026-01-19 22:26:35 +01:00
parent 720d58533c
commit ea80a550dd
6 changed files with 18 additions and 51 deletions

View File

@ -5,7 +5,6 @@ layout(location = 0) in vec2 vTexCoord;
layout(location = 1) in flat vec4 vInstanceShading; layout(location = 1) in flat vec4 vInstanceShading;
layout(location = 2) in flat float vInstanceOpacity; layout(location = 2) in flat float vInstanceOpacity;
layout(location = 3) in flat float vIsReflection; layout(location = 3) in flat float vIsReflection;
layout(location = 4) in flat float vInstanceRotation;
layout(location = 5) in vec2 vLocalPos; layout(location = 5) in vec2 vLocalPos;
// Output // Output
@ -17,12 +16,10 @@ layout(std140, binding = 0) uniform UniformBuffer
mat4 viewProjectionMatrix; mat4 viewProjectionMatrix;
vec3 backgroundColor; vec3 backgroundColor;
float _pad0; float _pad0;
vec3 shadingColor;
float _pad1;
float reflectionUp; float reflectionUp;
float reflectionDown; float reflectionDown;
int isReflection; int isReflection;
float _pad2; float _pad1;
}; };
// Texture and sampler // Texture and sampler

Binary file not shown.

View File

@ -12,14 +12,12 @@ layout(location = 5) in vec4 instanceModel_row3;
layout(location = 6) in vec4 instanceShading1; layout(location = 6) in vec4 instanceShading1;
layout(location = 7) in float instanceOpacity; layout(location = 7) in float instanceOpacity;
layout(location = 8) in float instanceFlip; layout(location = 8) in float instanceFlip;
layout(location = 9) in float instanceRotation;
// Outputs to fragment shader // Outputs to fragment shader
layout(location = 0) out vec2 vTexCoord; layout(location = 0) out vec2 vTexCoord;
layout(location = 1) out flat vec4 vInstanceShading; layout(location = 2) out flat vec4 vInstanceShading;
layout(location = 2) out flat float vInstanceOpacity; layout(location = 3) out flat float vInstanceOpacity;
layout(location = 3) out flat float vIsReflection; layout(location = 4) out flat float vIsReflection;
layout(location = 4) out flat float vInstanceRotation;
layout(location = 5) out vec2 vLocalPos; layout(location = 5) out vec2 vLocalPos;
// Uniform buffer // Uniform buffer
@ -28,12 +26,10 @@ layout(std140, binding = 0) uniform UniformBuffer
mat4 viewProjectionMatrix; mat4 viewProjectionMatrix;
vec3 backgroundColor; vec3 backgroundColor;
float _pad0; float _pad0;
vec3 shadingColor;
float _pad1;
float reflectionUp; float reflectionUp;
float reflectionDown; float reflectionDown;
int isReflection; int isReflection;
float _pad2; float _pad1;
}; };
void main() void main()
@ -54,5 +50,4 @@ void main()
vInstanceShading = instanceShading1; vInstanceShading = instanceShading1;
vInstanceOpacity = instanceOpacity; vInstanceOpacity = instanceOpacity;
vIsReflection = instanceFlip; vIsReflection = instanceFlip;
vInstanceRotation = instanceRotation;
} }

Binary file not shown.

View File

@ -194,9 +194,9 @@ void YACReaderFlow3D::initialize(QRhiCommandBuffer *cb)
// Create instance buffer for per-draw instance data // Create instance buffer for per-draw instance data
if (!scene.instanceBuffer) { if (!scene.instanceBuffer) {
// Allocate buffer for per-instance data (model matrix + shading + opacity + flipFlag + rotation) // Allocate buffer for per-instance data (model matrix + shading + opacity + flipFlag)
// mat4 (16 floats) + vec4 (4 floats) + float (opacity) + float (flipFlag) + float (rotation) = 23 floats // mat4 (16 floats) + vec4 (4 floats) + float (opacity) + float (flipFlag) = 22 floats
scene.instanceBuffer.reset(m_rhi->newBuffer(QRhiBuffer::Dynamic, QRhiBuffer::VertexBuffer, 23 * sizeof(float))); scene.instanceBuffer.reset(m_rhi->newBuffer(QRhiBuffer::Dynamic, QRhiBuffer::VertexBuffer, 22 * sizeof(float)));
scene.instanceBuffer->create(); scene.instanceBuffer->create();
} }
@ -333,7 +333,7 @@ void YACReaderFlow3D::ensurePipeline()
QRhiVertexInputLayout inputLayout; QRhiVertexInputLayout inputLayout;
inputLayout.setBindings({ inputLayout.setBindings({
{ 5 * sizeof(float) }, // Per-vertex data (position + texCoord) { 5 * sizeof(float) }, // Per-vertex data (position + texCoord)
{ 23 * sizeof(float), QRhiVertexInputBinding::PerInstance } // Per-instance data { 22 * sizeof(float), QRhiVertexInputBinding::PerInstance } // Per-instance data
}); });
inputLayout.setAttributes({ inputLayout.setAttributes({
// Per-vertex attributes // Per-vertex attributes
@ -348,7 +348,7 @@ void YACReaderFlow3D::ensurePipeline()
{ 1, 6, QRhiVertexInputAttribute::Float4, 16 * sizeof(float) }, // shading vec4 { 1, 6, QRhiVertexInputAttribute::Float4, 16 * sizeof(float) }, // shading vec4
{ 1, 7, QRhiVertexInputAttribute::Float, 20 * sizeof(float) }, // opacity { 1, 7, QRhiVertexInputAttribute::Float, 20 * sizeof(float) }, // opacity
{ 1, 8, QRhiVertexInputAttribute::Float, 21 * sizeof(float) }, // flipFlag (1.0 = reflection) { 1, 8, QRhiVertexInputAttribute::Float, 21 * sizeof(float) }, // flipFlag (1.0 = reflection)
{ 1, 9, QRhiVertexInputAttribute::Float, 22 * sizeof(float) } // rotation // rotation removed
}); });
scene.pipeline->setVertexInputLayout(inputLayout); scene.pipeline->setVertexInputLayout(inputLayout);
@ -409,7 +409,7 @@ void YACReaderFlow3D::render(QRhiCommandBuffer *cb)
bool isReflection; bool isReflection;
bool isMark; bool isMark;
QRhiTexture *texture; QRhiTexture *texture;
float instanceData[23]; float instanceData[22];
UniformData uniformData; UniformData uniformData;
}; };
@ -483,7 +483,7 @@ void YACReaderFlow3D::render(QRhiCommandBuffer *cb)
} }
// Ensure instance buffer is large enough for all draws // Ensure instance buffer is large enough for all draws
auto requiredInstanceSize = static_cast<quint32>(draws.size() * 23 * sizeof(float)); auto requiredInstanceSize = static_cast<quint32>(draws.size() * 22 * sizeof(float));
if (!scene.instanceBuffer || scene.instanceBuffer->size() < requiredInstanceSize) { if (!scene.instanceBuffer || scene.instanceBuffer->size() < requiredInstanceSize) {
scene.instanceBuffer.reset(m_rhi->newBuffer(QRhiBuffer::Dynamic, QRhiBuffer::VertexBuffer, requiredInstanceSize)); scene.instanceBuffer.reset(m_rhi->newBuffer(QRhiBuffer::Dynamic, QRhiBuffer::VertexBuffer, requiredInstanceSize));
if (!scene.instanceBuffer->create()) { if (!scene.instanceBuffer->create()) {
@ -515,8 +515,8 @@ void YACReaderFlow3D::render(QRhiCommandBuffer *cb)
// Update instance buffer with all instance data // Update instance buffer with all instance data
for (int i = 0; i < draws.size(); ++i) { for (int i = 0; i < draws.size(); ++i) {
int offset = i * 23 * sizeof(float); int offset = i * 22 * sizeof(float);
batch->updateDynamicBuffer(scene.instanceBuffer.get(), offset, 23 * sizeof(float), draws[i].instanceData); batch->updateDynamicBuffer(scene.instanceBuffer.get(), offset, 22 * sizeof(float), draws[i].instanceData);
} }
// === PHASE 2: RENDER (DURING PASS) === // === PHASE 2: RENDER (DURING PASS) ===
@ -602,9 +602,6 @@ void YACReaderFlow3D::prepareDrawData(const YACReader3DImageRHI &image, bool isR
outInstanceData[i] = matData[i]; outInstanceData[i] = matData[i];
} }
// Store per-instance rotation in the instance data (new slot at index 22)
outInstanceData[22] = image.current.rot;
// Prepare uniform data (copy float data into POD arrays) // Prepare uniform data (copy float data into POD arrays)
const float *vp = viewProjectionMatrix.constData(); const float *vp = viewProjectionMatrix.constData();
for (int m = 0; m < 16; ++m) for (int m = 0; m < 16; ++m)
@ -615,15 +612,12 @@ void YACReaderFlow3D::prepareDrawData(const YACReader3DImageRHI &image, bool isR
outUniformData.backgroundColor[2] = backgroundColor.blueF(); outUniformData.backgroundColor[2] = backgroundColor.blueF();
outUniformData._pad0 = 0.0f; outUniformData._pad0 = 0.0f;
outUniformData.shadingColor[0] = shadingColor.redF(); // shadingColor removed from uniform buffer; keep CPU-side shadingColor member intact
outUniformData.shadingColor[1] = shadingColor.greenF();
outUniformData.shadingColor[2] = shadingColor.blueF();
outUniformData._pad1 = 0.0f;
outUniformData.reflectionUp = reflectionUp; outUniformData.reflectionUp = reflectionUp;
outUniformData.reflectionDown = reflectionBottom; outUniformData.reflectionDown = reflectionBottom;
outUniformData.isReflection = isReflection ? 1.0f : 0.0f; outUniformData.isReflection = isReflection ? 1.0f : 0.0f;
outUniformData._pad2 = 0.0f; outUniformData._pad1 = 0.0f;
} }
void YACReaderFlow3D::executeDrawWithOffset(QRhiCommandBuffer *cb, QRhiTexture *texture, void YACReaderFlow3D::executeDrawWithOffset(QRhiCommandBuffer *cb, QRhiTexture *texture,
@ -653,7 +647,7 @@ void YACReaderFlow3D::executeDrawWithOffset(QRhiCommandBuffer *cb, QRhiTexture *
// Bind vertex buffers with offset into instance buffer // Bind vertex buffers with offset into instance buffer
const QRhiCommandBuffer::VertexInput vbufBindings[] = { const QRhiCommandBuffer::VertexInput vbufBindings[] = {
{ scene.vertexBuffer.get(), 0 }, { scene.vertexBuffer.get(), 0 },
{ scene.instanceBuffer.get(), quint32(uniformSlot * 23 * sizeof(float)) } { scene.instanceBuffer.get(), quint32(uniformSlot * 22 * sizeof(float)) }
}; };
cb->setVertexInput(0, 2, vbufBindings); cb->setVertexInput(0, 2, vbufBindings);
@ -1168,24 +1162,6 @@ void YACReaderFlow3D::setFlowRightToLeft(bool b)
void YACReaderFlow3D::setBackgroundColor(const QColor &color) void YACReaderFlow3D::setBackgroundColor(const QColor &color)
{ {
backgroundColor = color; backgroundColor = color;
// Auto-calculate shadingColor based on background brightness
qreal luminance = (backgroundColor.redF() * 0.299 +
backgroundColor.greenF() * 0.587 +
backgroundColor.blueF() * 0.114);
if (luminance < 0.5) {
// Dark background - shade towards white
shadingColor = QColor(255, 255, 255);
shadingTop = 0.8f;
shadingBottom = 0.02f;
} else {
// Light background - shade towards black
shadingColor = QColor(0, 0, 0);
shadingTop = 0.95f;
shadingBottom = 0.3f;
}
update(); update();
} }

View File

@ -115,8 +115,7 @@ protected:
float viewProjectionMatrix[16]; // column-major 4x4 float viewProjectionMatrix[16]; // column-major 4x4
float backgroundColor[3]; float backgroundColor[3];
float _pad0; // pad to vec4 float _pad0; // pad to vec4
float shadingColor[3];
float _pad1; // pad to vec4
float reflectionUp; float reflectionUp;
float reflectionDown; float reflectionDown;
float isReflection; float isReflection;