私は"threejs-examples-webgl-gpgpu_water"を使用していますが、このサーフェスの次のサーフェスにオブジェクトを配置したいと思います。これは、オブジェクトがあるポイントの頂点の移動と同期することを意味します。three.jsオブジェクトに続くオブジェクト
現在の水面の座標x、yの現在の高さを取得する方法がわかりません。画像はシェーダで計算され、変形した水面の中間値にアクセスすることはできません。助けてもらえますか?
私は"threejs-examples-webgl-gpgpu_water"を使用していますが、このサーフェスの次のサーフェスにオブジェクトを配置したいと思います。これは、オブジェクトがあるポイントの頂点の移動と同期することを意味します。three.jsオブジェクトに続くオブジェクト
現在の水面の座標x、yの現在の高さを取得する方法がわかりません。画像はシェーダで計算され、変形した水面の中間値にアクセスすることはできません。助けてもらえますか?
レンダリングターゲットの一部であるテクスチャに水の高さの値が格納されるため、特定の地点の水の高さを引き出すにはrenderer.readRenderTargetPixels (renderTarget, x, y, width, height, buffer)
を使用できます。
残念ながら、このテクスチャは浮動小数点テクスチャであり、WebGLの浮動小数点テクスチャをJavaScriptに直接読み込む方法はありません。
浮動小数点テクスチャを非浮動小数点RGBA 8ビットテクスチャ/レンダリングターゲットにレンダリングし、thisに関連するコードを使用して他の表現に量子化する必要があります。
擬似コードで
私はあなたのおすすめとして実装することができ、それはうまく動作します。しかし、テクスチャには<0 and >とすることが可能で、テクスチャにはrgbデータ(0〜1の間)のためのv4が動作するwebglパッキング浮動小数点が含まれているので、私はパッキングfloat/v4で苦労しています。 0-1浮動小数点数を取得しますが、私はそれがフロートをパックすることが可能でなければならないと思います...完了したら私は戻ってきます。 – user2758635