5

OpenGLによってシーン内にいくつかの半透明の3Dキューブを作成してきました。これは、Windows7とFedora15で非常によく表示されますが、Meegoシステムではかなりひどくなります。

これは私のFedora15システムでどのように見えるかです:

これは私のFedora15システムでどのように見えるかです。

これがMeegoでの表示です。線の色は私たちによって変更されました。そうしないと、表示される立方体がより哀れになります。

これがMeegoでの表示です。 線の色は私たちによって変更されました。そうしないと、表示される立方体がより哀れになります。

エフェクトは通常のglColor4f関数を使用するだけで実装され、alphaの値を設定するだけで透明になります。どうしてそんな風になりますか?

フリーグルトとオープングルトの両方がMeegoシステムで試されましたが、これ以上表示できませんでした。

代わりにirrlichtのようなエンジンを使用してこれを実装しようとしましたが、beginSceneメソッドのzBuffer引数がfalseに設定されている場合は画面に黒しか表示されません(trueの場合は正常ですが、そうではありません)欲しい)。

これは、ディスプレイカードやドライバーの問題ではないはずです。これは、まったく同じネットブックとシステムに透明なボールが含まれる3Dゲームを見たからです。

ここで理由を見つけることができませんでした。なぜこれが起こるのか、誰か助けてもらえますか?

4

2 に答える 2

6

プラットフォーム間で異なる可能性のあるデフォルト設定(または動作)に依存しているように聞こえます。

glBlendFuncなどのOpenGLのブレンドプロパティのいずれかを明示的に設定していますか?もしそうなら、これを行う関連コードを投稿すると役立つかもしれません。

コメントの1つに、透明なオブジェクトの並べ替えが記載されています。そうでない場合は、より正確な結果を達成するために検討する必要があります。どちらの場合も、その動作はプラットフォーム間で同じである必要があるため、それはあなたの問題ではないと推測しました。

編集:

もう1つの考え。glCullFaceを設定していますか?頂点の曲がり角が原因で、透明な面がカリングされている可能性があります。

于 2011-07-21T16:32:13.290 に答える
1

フリーグルトとオープングルトの両方がMeegoシステムで試されましたが、これ以上表示できませんでした。

これらは単なるウィンドウフレームワークであり、OpenGLの実行には何の影響もありません。

ブレンディングコードのどこかで混乱しています。正しいレンダリングの見た目から、ブレンド関数があると思いますがglBlendFunc(GL_ONE, GL_ONE)、MeegoではのようなものglBlendFunc(GL_SRC_ALPHA, GL_ONE)です。

于 2011-07-22T08:00:00.710 に答える