2011-10-27 7 views
3

私はOpenGLを使ったことはありませんが、私が練習しているARアプリケーションに関するこの特定の質問に関するいくつかのポインタを探しています。OpenGLで「テキストを含む紙」を作成する(具体的にはiOS 5で)

私は、長方形の表面に書かれたテキストとともに「平坦な長方形」のアプリケーションを作りたいと思います。視覚的に、私はテキストの上に書かれた紙の線に沿って何かを想像しています。アプリケーションが起動するたびに、テキストは何か異なるものになります(テキストはplistファイルから取得されます)。

ユーザーは、紙面が彼の前にぶら下がっているかのように、すべての面から紙を見ることができます。

これはOpenGLで簡単ですか?どうすれば始めることができますか?

申し訳ありませんが、本当に自由な質問ですが、私はこのようなことがどのように行われたのかを感じたいと思っていました。

XcodeサンプルプロジェクトのOpenGLテンプレートソースコードを見ると、大きな配列の頂点があることがわかります。私は、「フラット」な四角形を作成するためには、本質的にz軸をゼロにするか、ゼロにする必要があると思います。そして、平らな矩形の表面に付けるダイナミックなテキスト...私はそれをする方法を知りません......

答えて

6

この質問は明確に答えにくいです。一般的に、これは簡単ですが、やはりそうではありません。

「何かを持つ平坦な矩形」を描画するには、できるだけ簡単なAPI呼び出しをいくつか行います。 OpenGL のテキストを効率的な方法で、高品質で、大量の前処理を行わずに描画するは全く別の話です。

「通常のシステムでサポートされている」方法がiOSのものを使用してテキストをレンダリングするのです(この特定の詳細はわかりません)が、をビットマップに描画します画面上ではなくです。これはサポートする必要があります。ほとんどすべてのOSが少なくとも10〜15年以上これをサポートしています。次に、このビットマップをテクスチャに変換し、バインドし、OpenGLで4面の頂点バッファ、各頂点のテクスチャ座標を設定し、2つの三角形を描画します。

インストールされているシステムフォント(または使用可能なフォント)を使用するという大きな利点があります。ビットマップフォントを生成する必要はなく、ヒントなどの醜いことについて考える必要はありません適切なスペーシングがあり、異なるテキストスタイルなどを混在させる方がはるかに簡単です。もちろん、OpenGLにはテキストもサポートされていますが、それほど効率的ではありません。テキストがミリ秒ごとに変わらない場合は、オペレーティングシステムが提供する標準のレンダラを使用してレンダリングするのが最良です(はい、おそらくハードウェアアクセラレーションはされませんが...ユーザーはテキストを読む必要があるため、ミリ秒ごとに変更されることはありません)。

「紙の部分」が曲がってひねられたり、まっすぐな長方形ではなくページのペイ・エフェクトが必要な場合は、さらに複雑になります。その場合、それをテッセレーションする必要があります。それは、それが聞こえるよりも難しくなる可能性もあります。すべてのテッセレーションがすべての曲げ/ねじれに対して最適に見えるわけではありませんが、最適な(最小値として読み取られる)頂点の数はありません。そこ

GPU Gemsのか、GPU Proの本の一つで、「ページピール」と、このようなテッセレーションの記事があり

は、私が検索してみましょう ...

アンドレアスBizzotto:「シェーダーベースの電子ブックリーダー - ページ剥離効果 "、GPU Pro2 pp。278-299

多分、あなたはコピーを手に入れることができますか、それともGoogleブックスなどで見つかるくらい幸運かもしれません。

関連する問題