Skip to main content

Summary

The DC Field 3D Shading algorithm is a legacy (version 11 and below) pixel-counting approach that calculates shading within individual DC fields. The algorithm constructs 3D shadow volumes from each occluding object, then renders the DC field from the sun’s perspective and counts which pixels are shadowed versus illuminated to determine the shaded fraction. This rendering-based technique can handle complex geometries including external objects. The algorithm is limited to single DC field geometries and is deprecated in favor of the newer site-level shade engine but remains available for legacy predictions. This is a discrete-space approach with an inherent trade-off between computational speed and precision; the rendering resolution is set automatically by the software.

Inputs

NameSymbolUnitsDescription
DC Field GeometryvariousModule positions (m), dimensions (m), tilt angles (degrees), row spacing (m), bay layout
External ObjectsmDimensions and positions of external objects (optional)
Tracker Anglesα\alphadegreesRotation angle for each timestep (tracker systems only)
Solar Zenith Angleθz\theta_zdegreesAngle between sun and vertical
Solar Azimuth Angleγs\gamma_sdegreessun azimuth, measured clockwise from North

Outputs

NameSymbolUnitsDescription
Beam Shading FactorUshd,BU_{shd,B}Fraction of beam irradiance reaching bays (0-1)

Detailed Description

The algorithm uses a pixel-counting approach implemented through the Depth Pass Stencil Buffer Shadow Volume (DPSBSV) rendering technique. The key concept is to view the DC field from the sun’s perspective and count which pixels are shadowed versus illuminated.

Algorithm Overview

The algorithm operates in 3 main steps:
  1. Construct shadow volumes - Project 3D shadows from each bay and external object
  2. Render scene and mark shadows - Draw bays from sun’s viewpoint, overlay shadow volumes, and mark shadowed pixels
  3. Count pixels and calculate shading factor - Count shaded vs. unshaded bay pixels and compute the ratio

Step 1: Shadow Volume Construction

For each occluder (bay or external object), the algorithm creates a 3D shadow volume by projecting the occluder’s vertices away from the sun to form an elongated 3D shape. This volume represents the region of space where sunlight is blocked by the occluder. The projections extend far enough to encompass all potential receiver bays in the DC field.

Step 2: Render Scene and Mark Shadows

The algorithm sets up a virtual view from the sun’s location looking toward the DC field, then renders the 3D scene:
  1. Draw bays: Render all receiver bays to identify which pixels represent bay surfaces
  2. Draw shadow volumes: Overlay the 3D shadow projections onto the scene
  3. Mark each pixel: Tag each bay pixel as either “shadowed” (inside any shadow volume) or “illuminated” (direct view to sun)
Overlapping shadows from multiple occluders are handled automatically - a pixel is shadowed if it’s inside any shadow volume.

Step 3: Count Pixels and Calculate Shading Factor

The algorithm counts pixels across all bays in the DC field. The beam is computed as: Ushd,B=Npixels,unshadedNpixels,totalU_{shd,B} = \frac{N_{pixels,unshaded}}{N_{pixels,total}} where Npixels,unshadedN_{pixels,unshaded} is the count of illuminated bay pixels and Npixels,totalN_{pixels,total} is the total bay pixels. This provides an area-weighted average across all bays in the DC field.