私はいくつかのARのものを作りたいです。私は、私は、OpenGL ES 2.0を使用していますAndroid用OpenGL ES 2.0のシェーダ
のようないくつかのチュートリアルのいくつかの手順を歩きました。特に、最初のチュートリアルでは、フラグメントと頂点シェーダ用のGLSLシェーダコードを実装しています。そしてそれをコンパイルします。
OpenGLで描画したいすべてのプリミティブオブジェクトに対してこのようなコードを実装する必要がありますか?シェイダーコードを再利用して、異なるタイプのシェイプと同じタイプのシェイプの異なるインスタンスを描画することはできますか?
さらに、シェーダコードを再利用することはできますか?また、コンパイル済みシェーダプログラムを再利用することはできますか?
はい、ありがとうございます。それが私がやりたいことです。しかし、私がまだ理解していないことは、この「マテリアル」クラスはまさにどんなものでしょうか?特定の幾何学的オブジェクトを表していますか?それとも、いくつかの幾何学的オブジェクトを描画しますか? – unlimited101
どちらでも可能です。あなたが通常やっていることは、ジオメトリオブジェクトにアタッチすることです。ジオメトリを描画したいときは、シェーダ(プログラム)が設定され、その後バッファがシェーダに注入されてメッシュが描画されます。マテリアル(つまりシェーダ)の同じインスタンスを使用する複数のオブジェクトがある場合、その間にマテリアルを変更する必要はありません。 – reden