X3D 通過 Viewpoint 定義預設觀察位置/角度,NavigationInfo 設定導航模式、替身屬性、環境參數。本講詳解屬性、代碼示例、右鍵菜單操作、導航模式切換。
Viewpoint:預設觀察點
| 屬性 | 說明 | 默認值 |
| description | 菜單顯示名稱 | — |
| position | 觀察者位置 | 0 0 10 |
| orientation | 觀察方向 (軸角:x y z 角度弧度) | 0 0 1 0 |
| fieldOfView | 視野角 (弧度),小=長焦,大=廣角 | 0.785398 (π/4) |
| jump | TRUE 瞬間切換,FALSE 平滑過渡 | TRUE |
| centerOfRotation | EXAMINE 模式旋轉中心 | 0 0 0 |
示例:多視點觀察圓柱體

關鍵理解:默認視點在 +Z 向內看。Back 視點位於圓柱體後方 (+Z),需繞 Y 軸旋轉 180° (orientation 0 1 0 3.14) 向外看。Top 視點位於 +Y,繞 X 軸旋轉 -90°。
運行效果與右鍵菜單


選擇菜單項即可切換視點。


fieldOfView 影響
將 Back 視點 fieldOfView 從 0.785 改為 0.2 (長焦):


NavigationInfo:導航與替身設置

| 屬性 | 說明 | 默認值 |
| type | 導航模式列表,首項為默認 | "ANY" |
| speed | 移動速度 (單位/秒),0=固定位置 | — |
| headlight | 是否開啟頭燈 (隨視線方向) | TRUE |
| avatarSize | [碰撞半徑 高度 跨步高度] | [1.25, 1.6, 0.75] |
| visibilityLimit | 可視距離,0=無限 | 0 |
type 導航模式詳解
- ANY:瀏覽器自動選擇,提供 UI 切換
- WALK:步行模式,受重力、地形約束
- FLY:飛行模式,忽略重力,自由 3D 移動
- EXAMINE:檢查模式,繞物體旋轉觀察 (需配合 Viewpoint.centerOfRotation)
- NONE:禁用默認導航,強制使用場景腳本控制
BS Contact 額外提供平移漫游、遊戲模式等。
右鍵菜單「移動」子菜單

可直接切換導航模式、調整速度、開關頭燈、顯示替身。
總結
Viewpoint 定義攝像機預設參數,NavigationInfo 定義用戶在場景中移動的物理規則與交互模式。靈活組合可構建從漫遊展示、產品檢視到第一人稱遊戲等多樣體驗。下一講講解幾何變換。
- 上一篇文章: X3D 實戰基礎講座(七):三大光源節點與光照模型
- 下一篇文章: X3D 實戰基礎講座(五):Transform 幾何變換 — 平移、旋轉、縮放
Copyright ©
程式碼之家 All Rights Reserved