49 this->renderer->SetCamera(camera->camera);
53 Light bgLight(
"hdri");
54 bgLight.SetVec3f(
"dir", 1.0, 0.0, 0.0);
55 bgLight.SetVec3f(
"up", 0.0, 1.0, 0.0);
56 bgLight.SetObject(
"map", map_backplate);
59 bool removeTemp =
false;
65 VisRTX::Model *model = world->model;
66 this->renderer->SetModel(model);
69 for (VisRTX::Light* light : this->lastLights)
70 this->renderer->RemoveLight(light);
72 this->lastLights.clear();
84 Light* lightHandle = lights[i];
87 VisRTX::Light* light = lightHandle->light;
88 this->renderer->AddLight(light);
89 this->lastLights.push_back(light);
97 this->renderer->AddLight(bgLight.light);
104 if (this->
GetInt({
"pixelSamples" }, &spp))
106 this->renderer->SetSamplesPerPixel(spp);
111 if (this->
GetFloat({
"epsilon" }, &epsilon))
113 this->renderer->SetEpsilon(epsilon);
117 int32_t minBounces = this->
GetInt({
"rouletteDepth" }, 5);
118 int32_t maxBounces = this->
GetFloat({
"maxPathLength" }, 10.0f);
119 this->renderer->SetNumBounces(minBounces, maxBounces);
122 int denoise = this->
GetInt({
"denoise" });
123 this->renderer->SetDenoiser(denoise > 0 ? VisRTX::DenoiserType::AI : VisRTX::DenoiserType::NONE);
128 this->renderer->Render(frameBuffer->frameBuffer);
130 catch (VisRTX::Exception& e)
132 vtkLogF(ERROR,
"VisRTX internal error: \"%s\"", e.what());
136 this->renderer->RemoveLight(bgLight.light);
139 return std::numeric_limits<float>::infinity();