0

MacOSXのXCodeで動作するOpenGL/GLUT/GLSLの例を設定しようとしています。

これは私がこれまでに行ったことです:

  1. 新しいターミナルプロジェクトを作成する
  2. ターゲットビルドフェーズでCocoa.framework、OpenGL.framework、GLUT.frameworkをリンクします
  3. 簡単なOpenGL/glut/glslサンプルプログラムを書く
  4. 「ファイルのコピー」ビルドフェーズをターゲット実行可能ファイルに追加し、宛先を実行可能ファイルに設定して、シェーダーソースファイルをそのビルドフェーズに追加します
  5. プログラムを実行します。

このコードは別のUNIXマシンでもまったく問題なく動作し、クラスのインストラクターによってMac用にも作成されているため、コードに問題はないはずです。プロジェクトの設定にエラーがあると思います。

私が問題を抱えている奇妙な振る舞いは次のとおりです。過剰なウィンドウのサイズを変更すると、表示されている画像が破壊され、適切な画像が表示されることがあります。リクエストに応じて画像リンクを投稿できます。

シェーダーソースファイルが見つかりました。それは私が心配している奇妙なグラフィックの振る舞いです。

私のシェーダーコード:Vertexシェーダー:

#version 150
in  vec3 in_Position;
void main(void)
{
gl_Position = vec4(in_Position, 1.0);
}

フラグメントシェーダー:

#version 150
out vec4 out_Color;
void main(void)
{
out_Color = vec4(1.0);
}
4

1 に答える 1

0

ウィンドウのときに呼び出されるGLUTリシェイプコールバックを設定する必要がある場合があります。そのコールバックでは、通常、いくつかのことを更新します。

  • ビューポート
  • 投影変換(使用している場合)

GLUTリシェイプ関数の一般的な単純な実装は次のとおりです。

void
reshape( int width, int height )
{
    glViewport( 0, 0, width, height );
    // Update projection transform, usually including new window
    //   aspect ratio: width / height
}

他のGLUTreshapeコールバックと同じように、glutReshapeFunc

于 2013-02-11T06:25:53.903 に答える