mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 04:12:46 +02:00
fix depth buffer issue that was messing with drawInFront, plus some small fixes to line3ds
This commit is contained in:
parent
0f163a6a7c
commit
8163430282
3 changed files with 12 additions and 8 deletions
|
@ -32,6 +32,8 @@ Line3DOverlay::Line3DOverlay(const Line3DOverlay* line3DOverlay) :
|
||||||
_length = line3DOverlay->getLength();
|
_length = line3DOverlay->getLength();
|
||||||
_endParentID = line3DOverlay->getEndParentID();
|
_endParentID = line3DOverlay->getEndParentID();
|
||||||
_endParentJointIndex = line3DOverlay->getEndJointIndex();
|
_endParentJointIndex = line3DOverlay->getEndJointIndex();
|
||||||
|
_glow = line3DOverlay->getGlow();
|
||||||
|
_glowWidth = line3DOverlay->getGlowWidth();
|
||||||
}
|
}
|
||||||
|
|
||||||
Line3DOverlay::~Line3DOverlay() {
|
Line3DOverlay::~Line3DOverlay() {
|
||||||
|
@ -138,11 +140,9 @@ void Line3DOverlay::render(RenderArgs* args) {
|
||||||
// TODO: add support for color to renderDashedLine()
|
// TODO: add support for color to renderDashedLine()
|
||||||
geometryCache->bindSimpleProgram(*batch, false, false, false, true, true);
|
geometryCache->bindSimpleProgram(*batch, false, false, false, true, true);
|
||||||
geometryCache->renderDashedLine(*batch, start, end, colorv4, _geometryCacheID);
|
geometryCache->renderDashedLine(*batch, start, end, colorv4, _geometryCacheID);
|
||||||
} else if (_glow > 0.0f) {
|
|
||||||
geometryCache->renderGlowLine(*batch, start, end, colorv4, _glow, _glowWidth, _geometryCacheID);
|
|
||||||
} else {
|
} else {
|
||||||
geometryCache->bindSimpleProgram(*batch, false, false, false, true, true);
|
// renderGlowLine handles both glow = 0 and glow > 0 cases
|
||||||
geometryCache->renderLine(*batch, start, end, colorv4, _geometryCacheID);
|
geometryCache->renderGlowLine(*batch, start, end, colorv4, _glow, _glowWidth, _geometryCacheID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -228,9 +228,9 @@ void Line3DOverlay::setProperties(const QVariantMap& originalProperties) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
auto glowWidth = properties["glow"];
|
auto glowWidth = properties["glowWidth"];
|
||||||
if (glowWidth.isValid()) {
|
if (glowWidth.isValid()) {
|
||||||
setGlow(glowWidth.toFloat());
|
setGlowWidth(glowWidth.toFloat());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1640,7 +1640,11 @@ void GeometryCache::renderGlowLine(gpu::Batch& batch, const glm::vec3& p1, const
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (glowIntensity <= 0) {
|
if (glowIntensity <= 0) {
|
||||||
bindSimpleProgram(batch, false, false, false, true, false);
|
if (color.a >= 1.0) {
|
||||||
|
bindSimpleProgram(batch, false, false, false, true, true);
|
||||||
|
} else {
|
||||||
|
bindSimpleProgram(batch, false, true, false, true, true);
|
||||||
|
}
|
||||||
renderLine(batch, p1, p2, color, id);
|
renderLine(batch, p1, p2, color, id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -357,7 +357,7 @@ void DrawOverlay3D::run(const RenderContextPointer& renderContext, const Inputs&
|
||||||
if (_opaquePass) {
|
if (_opaquePass) {
|
||||||
gpu::doInBatch(args->_context, [&](gpu::Batch& batch){
|
gpu::doInBatch(args->_context, [&](gpu::Batch& batch){
|
||||||
batch.enableStereo(false);
|
batch.enableStereo(false);
|
||||||
batch.clearFramebuffer(gpu::Framebuffer::BUFFER_DEPTH, glm::vec4(), 1.f, 0, true);
|
batch.clearFramebuffer(gpu::Framebuffer::BUFFER_DEPTH, glm::vec4(), 1.f, 0, false);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue