Delphi GLSceneコンポーネントまたはFireMonkeyを使用して3Dモデルに単色をペイントする方法に関するデモや記事はありますか?
2 に答える
GLScene Demos \ interface \ hfpickには、高さフィールドにペイントする例があります。
より複雑なメッシュにペイントするには、カーソルの下のポイントのテクスチャ座標を検索する必要があります。これは、テクスチャがどのようにマッピングされたかによって、多少複雑になる場合があります。
GPUを利用する小さなテクスチャの簡単なハックは、テクスチャ座標をRGBカラーとして使用することです。これは、フラグメントシェーダーで実行し、u、vをR、G fiに、テクスチャインデックスをBチャンネル。これをオフスクリーンバッファでレンダリングし、カーソルの下のポイントの色を検索すると、テクスチャと座標が得られ、256x256テクスチャ(テクスチャインデックスを適切に使用する場合は最大4096x4096)が簡単にサポートされます。
(CPUを使用して)数学的に正しい方法でそれを行うには、メッシュのRayCastメソッドを変更する必要があります。これにより、ヒットする三角形を見つけるだけでなく、ヒットするポイントのテクスチャ座標も返されます。
昨日公開されたこのブログ記事「FireMonkeyを使用した波の干渉の視覚化」は興味深いかもしれません。
スクリーンショットのカップル:
(出典:embarcadero.com)
(出典:embarcadero.com)