Skip to main content

Panorama

The Panorama plugin composes six RenderFrame views into a single output for 360-degree panoramic rendering, enabling immersive scene capture and environment mapping.

info

This plugin is integrated into Tellusim Executor.

#include <render/panorama/include/TellusimPanorama.h>

Example

// Create Panorama instance
RenderPanorama render_panorama;
if(!render_panorama.create(device, window.getSurface())) return false;

// Create six panorama frames
uint32_t size = 1024;
RenderFrame render_frames[6];
for(uint32_t i = 0; i < render_panorama.getNumFrames(); i++) {
render_frames[i] = RenderFrame(render_system.getManager(), sample_camera.getNode(), i);
if(!render_frames[i].create(device, render_system.getRenderer(), size, size)) return false;
}

// Create multiview camera
CameraMultiview camera_multiview = CameraMultiview(scene);
camera_multiview.setCubeProjection();

// Render six frames
if(!render_system.render(device, render_frames, render_panorama.getNumFrames())) return false;

// Convert the six frames into a panoramic output
target.begin();
{
Command command = device.createCommand(target);
bool flipped = (target.isFlipped() ^ render_system.isFlipped());
render_panorama.draw(command, render_frames, flipped);
}
target.end();