Skip to content
Snippets Groups Projects
Commit 0cf9be4d authored by Sebastian Pape's avatar Sebastian Pape
Browse files

Added better ray rendering, now, they are not drawn above everything anymore

parent 4b5c2c3f
Branches
No related tags found
No related merge requests found
...@@ -195,7 +195,10 @@ void OptixPass::copyBuffersAndRenderInOpenGL(RenderTarget* render_target) { ...@@ -195,7 +195,10 @@ void OptixPass::copyBuffersAndRenderInOpenGL(RenderTarget* render_target) {
glEnable(GL_DEPTH_TEST); glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS); glDepthFunc(GL_LESS);
glDepthMask(GL_FALSE);
glDrawArrays(GL_TRIANGLES, 0, 6); glDrawArrays(GL_TRIANGLES, 0, 6);
glDepthMask(GL_TRUE);
glBindVertexArray(0); glBindVertexArray(0);
shader_program_->unuse(); shader_program_->unuse();
......
...@@ -205,19 +205,18 @@ void RayPass::render(RenderTarget* render_target) { ...@@ -205,19 +205,18 @@ void RayPass::render(RenderTarget* render_target) {
glBindVertexArray(vaoOpenGL); glBindVertexArray(vaoOpenGL);
glEnable(GL_BLEND);
glEnable(GL_DEPTH_TEST); glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_ALWAYS);
glEnable(GL_BLEND); // Draw with additive blending and depth test, but now write
glBlendFunc(GL_ONE, GL_ONE); glBlendFunc(GL_ONE, GL_ONE);
glDepthMask(GL_FALSE);
glDrawArrays(GL_LINES, 0, 50 * 50 * laser_max_depth * 2); glDrawArrays(GL_LINES, 0, 50 * 50 * laser_max_depth * 2);
glDepthMask(GL_TRUE);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBindVertexArray(0); glBindVertexArray(0);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDepthFunc(GL_LESS);
shader_program_->unuse(); shader_program_->unuse();
render_target->unbind(); render_target->unbind();
} }
...@@ -373,6 +372,7 @@ void RayPass::createTarget() { ...@@ -373,6 +372,7 @@ void RayPass::createTarget() {
glm::mat4 trans = glm::mat4 trans =
targetEntity->GetFirstComponent<phx::Transform>()->GetGlobalMatrix(); targetEntity->GetFirstComponent<phx::Transform>()->GetGlobalMatrix();
targetTransform->setMatrix(true, &(trans[0][0]), &(inverse(trans)[0][0])); targetTransform->setMatrix(true, &(trans[0][0]), &(inverse(trans)[0][0]));
optixContextManager_->getTopObject()->getAcceleration()->markDirty();
}); });
selector->SetRelease([this]() { selector->SetRelease([this]() {
if (getTargetBufferWrite()) clearTargetBuffers(); if (getTargetBufferWrite()) clearTargetBuffers();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment