意味不明の投稿になってすみません.
GPU Tessellation の仕掛けを使えば,球の中心座標を与えるだけで,球を描けそうなことがわかりました.まだ,そこまではやっていないのですが,以下が確認できました.
- 三角形を Tessellation で分割して得られた制御点と中心の距離を正規化することで円が描けること
- Tessellation Constrol Shader に座標をひとつ与えることで,Tessellation Evaluation Shader にはその座標を中心とする三角形の頂点を与えることができること
あとは,これを組合せれば (頂点,半径) → 正四面体 → 球に膨らますことができそうです.CPU-GPU 間の通信量に困っていたので,これだけでかなりの高速化が達成できそう.
たぶん,ゲームプログラミングのプロからすれば当たり前の技術なんだろうけど...
「(頂点, 半径) → 円」まではできました.
三色の点の個数と間隔が異なっているのは,与えた頂点から三角形を生成し,その各辺に対して相異なる Tessellation Level を指定しているから.
下のやや右よりに余分な青い点があるのは,重心座標系の中心座標が残ってしまったことが原因のバグ.これを無視する方法は現時点で不明.