Renderer: suppress camera headlight when stage contains authored lights

Mirrors usdview behaviour -- when the stage has at least one UsdLux
light the default camera fill-light is disabled so the scene is lit
purely by its authored lights.  StageHasAuthoredLights() early-exits
on the first HasAPI<UsdLuxLightAPI>() hit to keep the per-frame cost
minimal.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 08:17:10 +08:00
parent 2649fe814c
commit c796c76561
2 changed files with 25 additions and 1 deletions
+4
View File
@@ -247,6 +247,10 @@ private:
double scale,
std::vector<float>& outVerts);
/// True if the stage contains at least one authored UsdLux light.
/// Used to suppress the default camera headlight when real lights exist.
bool StageHasAuthoredLights() const;
/// Project a world-space point to absolute screen coordinates (x=imagePosX+pixelX, etc.).
/// Returns false when the point is behind the camera.
static bool WorldToScreen(const pxr::GfVec3d& world,