Render pass
This example demonstrates the use of the render pass system for adding Gaussian noise post-processing effect to a camera.
Install prerequisites
In order to compile the example in this tutorial, make sure to install the dependencies listed in the Installation tutorial.
Compile and run the example
Clone the source code, create a build directory and use cmake
and make
to compile the code:
git clone https://github.com/gazebosim/gz-rendering
cd gz-rendering/examples/render_pass
mkdir build
cd build
cmake ..
make
Execute the example:
./render_pass
You'll see:
[Msg] Loading plugin [gz-rendering10-ogre]
===============================
TAB - Switch render engines
ESC - Exit
===============================

Code
Get the render pass system and create a Gaussian noise render pass. Then we just need to set the noise mean and the standard deviation parameters and apply this render pass to the camera.
CameraPtr camera = std::dynamic_pointer_cast<Camera>(sensor);
RenderPassSystemPtr rpSystem = engine->RenderPassSystem();
if (rpSystem)
{
// add gaussian noise pass
RenderPassPtr pass = rpSystem->Create<GaussianNoisePass>();
if (pass)
{
GaussianNoisePassPtr noisePass =
noisePass->SetMean(0.1);
noisePass->SetStdDev(0.08);
camera->AddRenderPass(noisePass);
}
// add distortion pass
pass = rpSystem->Create<DistortionPass>();
if (pass)
{
DistortionPassPtr distortionPass =
distortionPass->SetK1(0.5);
camera->AddRenderPass(distortionPass);
}
}