From 5342ce6ee8c8bdd275152dc6996eda9124cb497b Mon Sep 17 00:00:00 2001 From: Sebastian Pape <Sebastian.Pape@rwth-aachen.de> Date: Thu, 26 Jul 2018 16:56:31 +0200 Subject: [PATCH] Added exception programs and halfed the stacksize. Also changed the cutoff color --- demos/optical_bench/src/lens.cpp | 2 +- demos/optical_bench/src/optix_context_manager.cpp | 10 +++++++--- demos/optical_bench/src/ray_pass.cpp | 4 +++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/demos/optical_bench/src/lens.cpp b/demos/optical_bench/src/lens.cpp index a3c55b0e..8848652a 100644 --- a/demos/optical_bench/src/lens.cpp +++ b/demos/optical_bench/src/lens.cpp @@ -349,7 +349,7 @@ void Lens::CreateGlassMaterialInstance() { manager_->GetGlassProgramIterative()); glass_material_["importance_cutoff"]->setFloat(1e-2f); - glass_material_["cutoff_color"]->setFloat(0.034f, 0.055f, 0.085f); + glass_material_["cutoff_color"]->setFloat(0.035f, 0.102f, 0.169f); glass_material_["fresnel_exponent"]->setFloat(3.0f); glass_material_["fresnel_minimum"]->setFloat(0.1f); glass_material_["fresnel_maximum"]->setFloat(1.0f); diff --git a/demos/optical_bench/src/optix_context_manager.cpp b/demos/optical_bench/src/optix_context_manager.cpp index 02ec10b6..6e9bbbf6 100644 --- a/demos/optical_bench/src/optix_context_manager.cpp +++ b/demos/optical_bench/src/optix_context_manager.cpp @@ -37,9 +37,7 @@ OptixContextManager::OptixContextManager() { context_->setRayTypeCount(2); context_->setEntryPointCount(1); - context_->setPrintEnabled(true); - context_->setPrintBufferSize(1024); - context_->setStackSize(8000l); + context_->setStackSize(2000l); context_["max_depth"]->setInt(10); context_["scene_epsilon"]->setFloat(1.e-4f); @@ -47,11 +45,17 @@ OptixContextManager::OptixContextManager() { // Exception program optix::Program exception_program = context_->createProgramFromPTXString( GetPtxString("exception.cu"), "exception"); + context_->setExceptionProgram(0, exception_program); // Miss Programm (avoid random data in buffer) context_->setMissProgram(0, context_->createProgramFromPTXString( GetPtxString("skybox.cu"), "skyboxLookup")); + // For debugging + // context_->setPrintEnabled(true); + // context_->setPrintBufferSize(1024); + context_->setExceptionEnabled(RT_EXCEPTION_ALL, false); + // Ray generation program optix::Program rayProg = context_->createProgramFromPTXString( GetPtxString("perspective_camera.cu"), "pinhole_camera"); diff --git a/demos/optical_bench/src/ray_pass.cpp b/demos/optical_bench/src/ray_pass.cpp index aae965e9..4ff03c22 100644 --- a/demos/optical_bench/src/ray_pass.cpp +++ b/demos/optical_bench/src/ray_pass.cpp @@ -227,7 +227,7 @@ void RayPass::LaunchLaser() { random_seed++); // totally "random" (only used as seed) try { optix_context_manager_->GetContext()->launch(laser_entry_, 50, 50, - kLaserTracesPerFrame_); + kLaserTracesPerFrame_); } catch (optix::Exception e) { phx::error(e.getErrorString().c_str()); } @@ -244,6 +244,8 @@ void RayPass::CreateLaser() { laser_entry_ = context->getEntryPointCount(); context->setEntryPointCount(laser_entry_ + 1); // Add new Entrypoint + context->setExceptionProgram(1, context->getExceptionProgram(1)); + // Ray generation program optix::Program rayProg = context->createProgramFromPTXString( OptixContextManager::GetPtxString("laser_caster.cu"), "laser_caster"); -- GitLab