Radeon ProRender

Point Light Creation

Lights in RPR fall into one of the three categories:

  • Implicit lights: point, directional and spot lights with zero surface area.
  • Environment lights which span the entire sphere around the scene (IBL maps and sky dome lights).
  • Area lights: these are created with an rpr_shape object for which a light emitting shader is created.

This tutorial covers point lights that are set to cast an amount of light (specified as radiant power) to the scene.

// Create a point light
rpr_light light = nullptr;
{
	CHECK(rprContextCreatePointLight(context, &light));

	// Create a transform: move 5 units in X axis, 8 units up Y axis, -2 units in Z axis
	RadeonProRender::matrix lightm = RadeonProRender::translation(RadeonProRender::float3(5, 8, -2));

	// Set transform for the light
	CHECK(rprLightSetTransform(light, RPR_TRUE, &lightm.m00));

	// Set the light’s radiant power    
	CHECK(rprPointLightSetRadiantPower3f(light, 255, 241, 224));

	// Attach the light to the scene
	CHECK(rprSceneAttachLight(scene, light));

An example of creating a point light can be found in the Basic Scene demo.