X3D 提供三種光源節點:PointLight (點光源)、DirectionalLight (平行光)、SpotLight (聚光燈)。本講詳解屬性、衰減模型、空間分佈特性,附代碼與渲染效果對比。
PointLight:全向點光源
向所有方向發光,無陰影,距離衰減。
| 屬性 | 說明 | 默認值 | 範圍 |
| on | 開關 | TRUE | TRUE/FALSE |
| color | 光顏色 (RGB) | 1 1 1 | 0-1 |
| location | 光源位置 | 0 0 0 | — |
| intensity | 亮度 | 1 | 0-1 |
| ambientIntensity | 環境光貢獻 | 0 | 0-1 |
| radius | 影響半徑 | 100 | >0 |
| attenuation | 衰減係數 [常數 線性 二次] | 1 0 0 | >=0 |
示例:點光源照亮圓柱體


在光源處放置同色小球標示位置。圓柱體顏色受光照影響。
無陰影驗證:中間加阻擋物


後方圓柱體未因前方遮擋而變暗,確認 X3D 默認無陰影。
SpotLight:聚光燈 (圓錐體光束)
僅照亮指定圓錐範圍內物體。
| 屬性 | 說明 | 默認值 |
| direction | 光軸方向 | 0 0 -1 |
| beamWidth | 內錐角 (全亮區),弧度 | 1.570796 (π/2) |
| cutOffAngle | 外錐角 (邊界),弧度 | 0.785398 (π/4) |
其他屬性同 PointLight (intensity, color, location, attenuation...)。
幾何關係:內錐角內全強度,內外錐角間線性衰減,外錐角外無光。

示例


DirectionalLight:平行光 (無限遠光源)
光線平行,無位置、無衰減、無半徑限制,類似太陽光。
| 屬性 | 說明 | 默認值 |
| on | 開關 | TRUE |
| color | 光顏色 | 1 1 1 |
| direction | 光線方向 (指向物體) | 0 0 -1 |
| intensity | 亮度 | 1 |
| ambientIntensity | 環境光貢獻 | 0 |
示例


總結對比
| 光源類型 | 位置 | 方向 | 衰減 | 適用場景 |
| PointLight | 有 | 全向 | 二次衰減 | 燈泡、火焰、局部光源 |
| SpotLight | 有 | 圓錐體 | 二次衰減+角度裁剪 | 手電筒、舞台燈、車燈 |
| DirectionalLight | 無 (無限遠) | 平行 | 無 | 陽光、月光、大場景基礎照明 |
下一講將講解紋理映射技術。
- 上一篇文章: X3D 實戰基礎講座(八):紋理映射與座標變換
- 下一篇文章: X3D 實戰基礎講座(六):視點導航與觀察控制
Copyright ©
程式碼之家 All Rights Reserved