X3D實戰基礎講座之七
|
第七講 光源處理
在X3D場景空間中,可以使用點光源節點(PointLight)、平行光源節點(DirectionalLight)和聚光性光源節點(SpotLight)來處理造型物體的光照明亮程度。
本講就來介紹這三個節點的屬性及其使用方法。
一、 點光源節點(PointLight)
PointLight 是一個點光源,它向所有的方向發射光線。光線照亮所有的幾何對象,也不會被幾何形體遮擋而形成陰影。其主要屬性如下表所示:
| 屬性 | 含義 | 默認值 | 使用說明 |
| on | 光源是否開關 | True | 為True時打開光源,為False時關閉光源 |
| color | 光的顏色 | 1 1 1 | 指定光的顏色,它會影響對象的實際顏色顯示效果 |
| location | 光源所在的位置 | 0 0 0 | 光源的位置影響光的強弱 |
| intensity | 燈光的亮度 | 1 | 取值范圍為0'1 |
| ambientIntensity | 對環境光影響程度 | 0 | 取值范圍為0'1,它的值越大,對環境光影響也越大 |
| radius | 光源影響半徑 | 100 | 以光源為中心的燈光效果的最大半徑 |
| attenuation | 光線衰減參數 | 1 0 0 | 由三個值構成:第1個值控制光源在照明球體中亮度的一致程度,第2個值控制隨著距離的增加,光線的線性衰減程度,最后1個值是控制隨著距離的增加,光線的線性平方衰減程度。 |
簡單的示例代碼如下:
說明:我們先在點光源位置處構造一個與光源顏色相同的小球,然后在(3,0,0)處構造一個圓柱體。結果如下圖所示,注意圓柱體的顏色。
若在光源和圓柱體之間在加一個相同圓柱體,試比較這兩上圓柱體的效果。代碼如下:
結果如下圖所示: