首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

X3D 實戰基礎講座(七):三大光源節點與光照模型

     編輯:Java 相關知識

X3D 提供三種光源節點:PointLight (點光源)、DirectionalLight (平行光)、SpotLight (聚光燈)。本講詳解屬性、衰減模型、空間分佈特性,附代碼與渲染效果對比。

PointLight:全向點光源

向所有方向發光,無陰影,距離衰減。

示例:點光源照亮圓柱體

PointLight代碼

單圓柱效果

在光源處放置同色小球標示位置。圓柱體顏色受光照影響。

無陰影驗證:中間加阻擋物

雙圓柱代碼

無陰影效果

後方圓柱體未因前方遮擋而變暗,確認 X3D 默認無陰影。

SpotLight:聚光燈 (圓錐體光束)

僅照亮指定圓錐範圍內物體。

屬性說明默認值範圍
on開關TRUETRUE/FALSE
color光顏色 (RGB)1 1 10-1
location光源位置0 0 0—
intensity亮度10-1
ambientIntensity環境光貢獻00-1
radius影響半徑100>0
attenuation衰減係數 [常數 線性 二次]1 0 0>=0

其他屬性同 PointLight (intensity, color, location, attenuation...)。

幾何關係:內錐角內全強度,內外錐角間線性衰減,外錐角外無光。

SpotLight錐角示意

示例

SpotLight代碼

聚光燈效果

DirectionalLight:平行光 (無限遠光源)

光線平行,無位置、無衰減、無半徑限制,類似太陽光。

屬性說明默認值
direction光軸方向0 0 -1
beamWidth內錐角 (全亮區),弧度1.570796 (π/2)
cutOffAngle外錐角 (邊界),弧度0.785398 (π/4)

示例

DirectionalLight代碼

平行光效果

總結對比

屬性說明默認值
on開關TRUE
color光顏色1 1 1
direction光線方向 (指向物體)0 0 -1
intensity亮度1
ambientIntensity環境光貢獻0
光源類型位置方向衰減適用場景
PointLight有全向二次衰減燈泡、火焰、局部光源
SpotLight有圓錐體二次衰減+角度裁剪手電筒、舞台燈、車燈
DirectionalLight無 (無限遠)平行無陽光、月光、大場景基礎照明

下一講將講解紋理映射技術。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved