問題タブ [ftgl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - テキストの一部のみをレンダリング FTGL、OpenGL
C++ プロジェクトでテキストをレンダリングするために FTGL ライブラリを使用しています。
以下を使用して、テキストを簡単にレンダリングできます。
残念ながら、テキストを表示するこのボタンが、配置されているコンテナーのサイズを変更したために部分的に隠されている状況があります。コンテナーに合わせてボタンの背景を問題なく描画できますが、テキストで同じことを行うには問題があります。指定された幅のテキストのみを描画し、残りを無視することは可能ですか?
これは私の問題を示す画面です:
ご覧のとおり、「ここをクリック」というボタンは適切に描画されていますが、「ここをクリック」というテキストでは同じことができません。
c++ - ラスターフォント用のglScalef、OpenGL
簡単な質問があります。PixmapFont
ゲームアプリケーションで描画するためにFTGLライブラリを使用しています。私の質問は-glScalef()
ラスターフォントを拡大縮小するために使用することは可能ですか?私が理解していることから、私がそれglRasterPos()
の代わりに使用しなければならない場合、glTranslatef()
おそらくglScalef()
機能も考慮しますか?もしそうなら、このフォントをスケーリングする方法はありませんか?
これは私がスケーリングする必要があるものです:
これを置くだけで、サイズを変更できます。
しかし、それは私にそのような小さなフォントのぼやけた効果を与えます。私がどこかで読んだことから、フォントをより大きなサイズ(たとえば72)でレンダリングしてから、より良い結果が得られるので、それを縮小するのは良いことです。
c++ - サイズ変更後の醜いフォント、OpenGL
画像から始めます:
上の画像は 2 つの異なる方法で作成されたテキストを示しており、どちらも同じ種類のフォント (Arial、太字、サイズ 11) を使用しています。
下のものは画像編集プログラムで作成されたもので、上のものは私の OpenGL アプリケーションで作成されたものです。より正確には、FTExtrudeFont
FTGL ライブラリから使用します。
私の質問は、なぜこのように描かれているのですか?この理由は、サイズ変更アルゴリズムが異なる可能性があると思いますが、そうである場合、OpenGL アプリケーションでこの見栄えの良いフォント (一番下のフォント) を実現するにはどうすればよいでしょうか?
編集:
フォントをレンダリングするには、次の 1 つの関数のみを呼び出します。
c++ - 複数のキャンバスを使用すると、FTGL テクスチャ フォントが黒いボックスのみを表示する
FTGL でテクスチャ フォントを使用して、フォントを軸などのラベルとして複数のキャンバスにレンダリングしています。私の最初のプロットはうまくいきます。ただし、後続のすべてのキャンバスは、テクスチャ フォントを単なる黒い四角としてレンダリングします。また、実際にレンダリングされるキャンバスに一部の数値が表示されないことにも気付きました。"Center Time" には 8.3956 が表示されるはずですが、代わりに次のように表示されます。
フォントのレンダリングは次のとおりです。
どこ
色と深度のビットをクリアする、glEnable(GL_TEXTURE_2D); など、いくつか試してみました。glDisable(GL_DEPTH_TEST); しかし、それは役に立たなかったようです。何らかの理由で、テキストの幅を返すルーチンの 1 つに FTTextureFont::FaceSize(int) を追加すると、(ゆっくりではありますが) すべてが正しく表示されます。FTGL ソース コードを見ると、FaceSize() が glDeleteTexture() 呼び出しを除いて openGL パラメーターを操作するようには見えないので、なぜこれが機能するのか少し混乱しています。
c++ - バッファ FBO テクスチャ出力フォーマット GL_ALPHA を入れる方法はありますか?
ftgl フォント ライブラリを使用しています。
イメージを作成する ftgl 関数には次のコードがあります。
GL_ALPHA をフォーマットします。
FBO 画像 (GL_RGBA) にレンダリングすると、問題なく表示されます。しかし、フォントを fbo テクスチャにレンダリングすると、色とアルファに問題が発生します。
この画像は、ピクセルに触れないエディターで開く必要があります (ブラウザーはアンチエイリアスを使用します)。
コード:
/// 1 ステップで FBO を作成
/// fbo への 2 ステップ レンダリング
ftgl::render();
/// 3 ステップ レンダリング テクスチャ
c++ - テキストのレンダリングが非常に遅い
C++、OpenGL アプリケーションでテキストをレンダリングするために FTGL ライブラリを使用していますが、高速で効率的なライブラリであると言われていますが、非常に遅いことがわかりました。
少量のテキストでもパフォーマンスの低下が見られますが、数行のテキストをレンダリングしようとすると、FPS が 350 ~ から 30 ~ に低下します。
はい、FPS が効率をチェックする良い方法ではないことは既に知っていますが、この場合、それほど大きな違いはないはずです。
FTGL内部で表示リストを使って高速化する機能を見つけたのですが、デフォルトでオンになっているようです。とにかく私はそれを使ってみましたが、何も得られませんでした。それで何か壊れているのか、よくわからないのではないかと思い、レンダリングテキストを自分のディスプレイリストに入れることにしましたが、違いが見えないほどわずかであるか、まったく違いがありません。違い。
デバッグモードでブレークポイントを確認しました-表示リストを一度だけ作成し、後で以前に作成したリストのみを呼び出します。
このような遅いレンダリングの理由は何でしょうか? どうすればスピードアップできますか?
編集:
私は使用してFTTextureFont
います(グリフごとに1つのテクスチャを使用します)。このFTGL チュートリアルによるとFTBufferFont
、1 行に 1 つのテクスチャしか使用しないため、むしろ を使用する必要があります。バッファ フォントの方が速いはずですが、試してみると、見にくく、さらに遅くなりました (6 fps に対し、テクスチャ フォントでは 30 fps でした)。
編集2:
これが私のフォントの作成方法です。
編集3:
これは、 でグリフをレンダリングする FTGL ライブラリ ソース コードから取得した関数ですFTTextureFont
。別のグリフに同じテクスチャを使用し、他の座標だけを使用するため、これは問題になりません。
mingw - FTGL と MinGW - 土星の 3 番目の月で、どのようにこれをコンパイルするつもりですか?
OK、MinGW で FTGL を動作させようとしていますが、ライブラリのコンパイルに問題があります。
私はどこでもグーグルで検索し、さまざまなことを試しました。正しく機能させるのに最も近いのはこの質問ですが、彼はライブラリをコンパイルできると想定しています...私が問題を抱えているまさにそのステップです。
わかりましたので、Code::Blocks で MinGW を使用しています。OpenGL + GLUT プログラムを実行できます。コンパイルして正常に実行されます。
私はライブラリのコンパイルにあまり慣れていないので、お手柔らかにお願いします。
つまり、FTGL は CMake を使用せず./configure
、 、make
、make install
... を使用し、別のconfigure.???
andMakefile.???
ファイルを見て、autoconf と automake で使用されている場所を特定したと思います。だから私はこれらをダウンロードしようとしましたが、私の環境変数を指す実行可能ファイルがないPATH
ので、Pythonを使用していることがわかった...
./configure
現在、Python シェルでは、コマンドを実行するのに適切な場所に移動できないようです。なんというか、方向性が間違っている気がします。
うーん、それは難しすぎます。MSYS には自動ツールが組み込まれているのではないでしょうか? もしそうなら、ライブラリのソースファイルに移動できず、autoconf が見つからず、automake も見つかりません。
私がやりたいことは、MinGW で FTGL をコンパイルすることだけです。誰か助けてくれませんか?
c++ - C++ から FTGL C API を使用するには?
Visual Studio 2010 で C++ コードからFTGLの C APIを使用するにはどうすればよいですか?
FTGL は#ifdef __cplusplus
チェックを使用して、同じヘッダー ファイルから C および C++ API をエクスポートします。
私はこれを試しました:
しかし、VS2010 にはそれがありません。
c++ - FTGL: レンダリング時に文字が表示されない
私のアプリケーションは、OpenGL と FTGL を使用してテキスト出力を行います。次のようなフォントを設定しました。
私はこのようにレンダリングします:
ここで大きな問題があります。プログラムのかなり早い段階で作成した文字列が 1 つありますが、これは正しくレンダリングされます。次に、後で作成される別の文字列があり、最初の文字列にも含まれる文字のみをレンダリングします。テクスチャ フォントは最初の文字列の文字に対してのみテクスチャを作成し、2 番目の文字列の文字に対しては作成しないとしか思えません。
これの原因は何ですか?初期に使用するすべての文字をロードする必要がありますか? 足りないものはありますか?
(私のコードをエラーを再現する最小限の例に要約するのはかなりの労力になるので、最初に私が間違っていることが明らかな何かを尋ねます。)