Default hillshade and light anchors
Default hillshade and light anchors (08.15c)
A hillshade layer runs without paint. Defaults are standard/viewport, direction 335 degrees, altitude 45 degrees and exaggeration 0.5. Supported single-light configurations are standard, basic, combined, igor and multidirectional. Existing direction/altitude ranges, colors, intensity and zoom expressions remain available. Multiple-light arrays are pending and reject explicitly.
map.addLayer({id:'shade',type:'hillshade',source:'dem'});
map.setBearing(90);
map.setPaintProperty('shade','hillshade-illumination-anchor','map');
map.setPaintProperty('shade','hillshade-method','combined');
await map.sqs.flush({render:true});
// null restores standard/viewport defaults.
map.setPaintProperty('shade','hillshade-method',null);
map.setPaintProperty('shade','hillshade-illumination-anchor',null);
Map lighting follows north. Viewport lighting follows the top of the viewport; current bearing is added to the actual illumination direction. Only derived layer textures refresh. Source data revisions, resource requests, credits and source events do not change due to the lighting view parameter. Native Session, browser renderChecked and desktop common-layer refresh apply the same rule before drawing. Layer instances, ordering and original DEMs remain stable.
SqsMap implements its own algorithms: standard mixes direction/altitude lighting and slope coverage; basic uses cosine illumination; combined applies a further slope factor; igor uses reduced coverage; a single-light multidirectional configuration uses cosine illumination. Accent uses a 25% slope weight, and intensity multiplies final alpha. Input shapes follow the reference specification; pixel equivalence with other engines is not promised.
Neighbor stitching, multiple-light arrays, globe/3D terrain and device acceptance remain separate tasks. Budgets are shared with elevation sources/coloring.