0

私は 3D プログラミングが初めてで、しばらくの間 Android 用の OpenGL ES をいじっています。レイ トラッキング/トレーシングとオブジェクト ピッキング、およびピクセルを使用して 3D オブジェクトを選択することに関するこの質問のいくつかのオプションを見てきました。 . Android用のOpenGL ESを使用して、立方体から線を選択して削除したり、オブジェクトを削除または変更したりできるペイントプログラムのようなものを作成しようとしています。とにかく、これをどこから学び始めたらよいかわからないので、Google を試してみましたが、実際には何も役に立ちませんでした。おそらく、これをよりよく説明するビデオチュートリアルやウェブサイト、または進むべき方向を示すための助けがあれば、非常に感謝しています. よろしくお願いします。

はい、これは重複する可能性のある質問であることを知っています。

4

2 に答える 2

0

OpenGL の選択機能は OpenGL ES では使用できないため、自分で構築する必要があります。

Android 固有の OpenGL ES サンプル プログラムから始めることをお勧めします。この記事が役立つと思います:

http://software.intel.com/en-us/articles/porting-opengl-games-to-android-on-intel-atom-processors-part-1

于 2013-07-08T02:14:24.503 に答える
0

私自身 iOS 開発者ですが、最近自分のゲームにレイ キャスティングを実装したので、プラットフォームに依存しない方法でこれに答えようとします。

レイキャスティング操作には 2 つのステップがあります。まず、ユーザーのタップからレイを取得する必要があります。次に、交差についてモデルを定義する三角形をテストする必要があります。これには、それらをメモリに保持するか、回復できる必要があることに注意してください。グラフィックカードの vbo に保持することはできません。

まず、ワールド座標への変換。射影行列を使用してモデルの 3 次元透視図を取得していることは間違いないため、点を非射影してワールド座標で取得する必要があります。Androidで利用できると私が信じているglutのglunprojectなど、これがすでに実装されている多くのライブラリがあります。数学的には、これは現在モデルに作用しているすべての変換の逆をとることになると思います。とにかく、コピーできるオンラインで公開されている多くの実装があります。

この時点で、投影解除しようとしているポイントの Z 座標が必要になります。実際には、Z 座標 0 で 1 回、Z 座標 1 で 1 回、2 回アンプロジェクションを行いたいと考えています。Z 座標 0 から得られるベクトルは、光線の原点であり、このベクトルを Z 座標から差し引くことによって得られます。 1ベクトルのcoordで方向が得られます。これで、モデルのポリゴンの交差をテストする準備が整いました。

私はこの論文 ( http://www.cs.virginia.edu/~gfx/Courses/2003/ImageSynthesis/papers/Acceleration/Fast%20MinimumStorage%20RayTriangle%20Intersection.pdf ) で提示された方法で成功しました。実際の交差テスト。アルゴリズムは最後に C で実装されていますが、ほとんど問題なく Java に変換できるはずです。

于 2013-07-10T22:03:12.347 に答える