# 森林與水面素材來源

松杉及闊葉枝葉、樹皮、森林地表和河床卵石為 Poly Haven 的 CC0 實拍貼圖；水面法線為 Three.js r170 官方資料貼圖。實拍貼圖保持下載原貌。森林全景為 GPT Image 新生成背景，與近處立體森林分開呈現。

## 採用素材

| 素材 | 檔案前綴 | 來源 | 授權 |
|---|---|---|---|
| 松樹枝葉與樹皮 | pine_twig、pine_bark | https://polyhaven.com/a/pine_tree_01 | CC0 |
| 杉樹枝葉 | fir_twig | https://polyhaven.com/a/fir_tree_01 | CC0 |
| 藍花楹枝葉 | jacaranda_tree_leaves | https://polyhaven.com/a/jacaranda_tree | CC0；Rico Cilliers、Rob Tuytel |
| 海岸闊葉樹枝葉 | island_tree_01_leaves | https://polyhaven.com/a/island_tree_01 | CC0；Rob Tuytel、Rico Cilliers |
| 森林地表 | forest_ground | https://polyhaven.com/a/forrest_ground_03 | CC0 |
| 河床卵石 | ganges_river_pebbles | https://polyhaven.com/a/ganges_river_pebbles | CC0；Amal Kumar |
| 森林遠景 | forest-panorama.png | GPT Image，2026-09-05 | AI 生成 |
| 水面法線 | waternormals.jpg | https://github.com/mrdoob/three.js/blob/r170/examples/textures/waternormals.jpg | MIT |

松杉與地表素材原作者包括 Rob Tuytel、Rico Cilliers；各新增貼圖作者與檔案校驗碼詳見 asset-manifest.json。新樹木幾何為程式建立的近似樹形；Island Tree 01 原來源未標明植物學種名，顯示為海岸闊葉樹。授權詳見 https://polyhaven.com/license 。Three.js 授權全文另附於 THREE-LICENSE.txt。

## 樹冠貼圖 UV

影像為 1024 × 1024；像素座標以左上為原點，依順時針排列。Three.js TextureLoader 預設 flipY=true，對應 u=x/1024、v=1-y/1024。色彩、法線與 alpha 共用 UV。

- 松枝：[(0,30),(230,42),(167,452),(95,452)]。
- 杉枝：[(300,410),(690,410),(595,810),(300,810)]。
- 藍花楹：矩形 [448,0,1024,496]，右半部複葉枝。
- 海岸闊葉：矩形 [160,16,349,416] 與 [704,16,844,432]，兩種完整橢圓葉。

alpha 檔是灰階遮罩（藍花楹使用 RGB/green 而非近乎全不透明的 A 通道；海岸闊葉為 16-bit 灰階 PNG），白色不透明、黑色透明；需指定為 alphaMap，不能把整張 atlas 直接當作透明樹冠。

## 成品

F22_3D.html 已將所有素材、Three.js、模型與程式內嵌，可單檔離線開啟。素材壓縮檔提供目前使用的全部環境素材、1K 實拍貼圖、森林全景與授權記錄。Acro 操控採簡化飛行物理；水面以平面場景反射、帶深度緩衝的河床折射、吸光衰減、Fresnel 反射率、流動法線與波面呈現清澈河流；河道局部實際求解二維淺水方程，水位與流速來自 Rusanov 有限體積法；細波紋與外圍河流為視覺延伸，未求解完整三維湍流。方法及數值驗證另附在 HTML 內的原始碼壓縮檔 CFD-METHODS.md。

雙噴嘴尾焰由三維體積著色器即時繪製，不需要額外貼圖。橙／藍／紫速度配色為使用者要求的視覺提示，不代表燃燒溫度，也不是引擎 CFD 結果。
