Creating a physical sky texture

Using REDsdk, you can create an instance of a physical sky:

RED::Object* sky = RED::Factory::CreateInstance( CID_REDLightShape );
RED::ISkyLightShape* isky = sky->As< RED::ISkyLightShape >();

and set up its model using:

RC_TEST( isky->SetPhysicalModel( 1.0,                             // scene scaling factor
                                 1.0,                             // viewing height in meters,
                                 1.0,                             // sky intensity multiplier
                                 10,                              // turbidity
                                 0.3,                             // ground albedo
                                 0.8,                             // aerosols albedo
                                 0.7,                             // aerosols asymmetry factor
                                 RED::Vector3( 0.0, 0.0, 0.35 ),  // direction to the sun
                                 1.0,                             // sun scaling factor
                                 1.0,                             // sun intensity multiplier
                                 RED::Vector3( 0.0, 0.0, -0.35 ), // direction to the moon
                                 1.0,                             // moon scaling factor
                                 1.0,                             // moon intensity multiplier
                                 1.0,                             // stars intensity multiplier
                                 1.0,                             // sky color saturation factor
                                 iresmgr->GetState() ) );

It's then easy to retrieve a spherical "picture" of that sky by calling:

RED::Object* sky_tex = NULL;  // making this pointer NULL lets the method below to create the image instance for us.
RC_TEST( isky->CreatePhysicalSkyTexture( sky_tex, false, 512, false, false, true, iresmgr->GetState() ) );

Some physical sky textures at different times of the day.