GOLF 3D

PoC / 社内検証

ホールを、立って見る。

公的な標高データからゴルフコースの地形を再構築し、プレイヤーの目線で自由に歩けるようにする 技術検証です。打ち上げ・打ち下ろし、谷越えの落差、ブラインドの有無を、図ではなく空間として確認できます。

いま見られるもの

この PoC でやっていること

使っているデータ

地形国土地理院 基盤地図情報 数値標高モデル DEM1A(1m メッシュ、垂直精度 0.3m 級)。 コースを覆う 6 メッシュを結合して使用。1m メッシュが未整備の東端だけ 標高タイル(DEM5A・5m メッシュ)で補完し、画素ごとにどちらから来たかを記録している
樹木静岡県 VIRTUAL SHIZUOKA 航空レーザ測量点群(CC BY 4.0 / ODbL)。 コース全域 40 図郭・約 5 億 9,300 万点、密度 105〜140 点/m²
地表の色国土地理院 オルソ画像(ort)z18(約 0.49m/px)。 抜けは seamlessphoto で補完
区画OpenStreetMap のホール中心線・ティー・フェアウェイ・グリーン・バンカー・池・コース輪郭
ホールの統計一覧ページの高低差・起伏は国土地理院 標高タイル(DEM5A)から算出。 3D 表示だけは DEM1A を使う

計算していること

座標変換経緯度グリッドの標高データを平面直角座標系(第8系)へ投影してから 正方 1.0m セルへリサンプリング。緯度により実セルが南北 1.23m × 東西 1.13m の長方形になるため、 そのまま流し込むと南北に伸びた地形になる
データの検査欠測値(−9999)の除去、メッシュ境界の標高不連続の検査。 境界は生の標高差ではなく両側の勾配から予測した差との残差(二階差分)で判定する。 生の差分では急斜面を段差と誤検出するため
選択的平滑化フェアウェイ・グリーン・ティーにのみ σ = 1.5m のガウシアン。 バンカーは膨張マスクで完全に除外する。全面にかけるとバンカーの窪みが消え、 かけないと地上視点で地面が波打って見える
区画の焼き込みポリゴンをスプラットマップ(RGBA = フェアウェイ / グリーン / バンカー / コース輪郭)に焼く。 ラフはコース輪郭の内側で他のどれでもない画素として導出する
水面池の標高は実測で 0.2〜0.6m ばらつくため、地形メッシュとは別に 実測水面高の平らな面を張る
樹冠高モデル点群から DSM(セルの最高点)− 地表面(分類 2 の最低点)= CHM を 0.5m 格子で作り、 3m 以上を樹木候補として局所最大値で立木の位置と樹高を取る。 地表面も点群から作るので、標高成果の版が違うデータを引き算せずに済む。 樹高の分布は 32m 付近で切れるため、45m を超える高まりは送電鉄塔などとみなして除外する
樹冠の大きさ半径は樹高に比例させ、全樹冠の面積の合計が CHM で実測した樹冠面積に一致するよう 係数を決める。分水嶺による個別分割も試したが、得られる半径が樹高と相関せず採用しなかった
弾道ティー地上 1.7m・中間地点 地上 50m・グリーン地上 1.7m の 3 点を通る二次曲線。 水平方向はホール中心線をそのまま辿る

描画していること

視点カメラ高 1.7m(プレイヤー)と 50m(弾道頂点)を切り替え。地面に追従し、めり込まない。 垂直方向の誇張はなし
範囲の切り方ホールごとに中心線の外接矩形 ±300m を切り出して 1 画面ぶんの地形にする。 18 ホール分を同じ手順で自動生成しており、ページも course.json から書き出している
地形メッシュ1m 格子の頂点をそのまま起こした 47〜88 万頂点(ホールにより変わる)。 区画の塗り分けは地形自体に焼いているので、境界は必ず起伏に沿う
芝の質感二層合成。オルソ由来のマクロカラー(低周波)× 手続き生成の芝ディテール(2cm/テクセル、高周波)。オルソ単体では カメラ高 1.7m で足元が完全にボケる
樹木幹と樹冠を 2 つの InstancedMesh に畳んで一括描画。 本数によらずドローコールは 2 回で済む。接地標高は地形メッシュから取り直し、 葉色と向きは位置から決めて同じ絵が再現するようにしている
光量ACES フィルミックトーンマッピング、露出 1.0。 近景の芝がオルソの実測色に最も近くなる組み合わせを 12 通り描画して選んだ
弾道ライン線幅の指定が多くの環境で効かないため、実寸の芯(半径 0.55m)と 光彩シェル(半径 1.7m)の二重チューブで描く。ティーに立つと内側に入るので手前はフェードする
遠景ハイトマップの端が空との境界として見えないよう、大気遠近で背景色に溶かす。 等高線(5m ごと、20m ごとに強調)は起伏を読むために重ねている

やらないこと

グリーン内アンジュレーション(振幅 20〜60cm)は、使用している標高データの垂直精度と同じオーダーで ノイズに埋もれるため再現しません。パットラインの提示は本 PoC の対象外です。