5

http://opengl-tutorials.orgのチュートリアルに従っていますが、これまでのところ素晴らしいです (私は Mac を使用しているため、OpenGL 3.3 と GLSL 3.30 ではなく、OpenGL 3.2 と GLSL 1.50 を使用する必要があります)。これまでのチュートリアルの唯一の問題は、3D カメラのチュートリアル (チュートリアル 6: キーボードとマウス) では、マウスを動かしてもまったく回転しないことです。下方向に; マウスをどの方向に動かしても。

与えられたコード (OpenGL 2.1 および 3.x) をコンパイルし、手作業で記述しましたが、それでもこのバグが発生します。なぜこれが起こるのか分かりません。これは GLFW や Mac OS X などのバグでしょうか?

4

4 に答える 4

4

かなり古い質問だと思いますが、同じ問題があったので、役立つかもしれません。私はウェブサイトからコードをダウンロードし、common/controls.cpp でこの行にコメントを付けました:

glfwSetMousePos(1024/2, 768/2);

MacOS の GLFW には、この命令が正しく機能しないバグがあるようです。新しいバージョンで修正されていることを願っていますが、まだテストしていません。

余談ですが、この行にコメントするとチュートリアルが機能しますが、垂直カメラ角度をクランプするときにいくつかの問題が発生する可能性があります。マウスを下に移動すると、カメラが再び移動する前にクランプ ポイントに到達するまで待つ必要があります。

[編集] 完全に変更されたコードは次のとおりです

// Reset mouse position for next frame
// EDIT : Doesn't work on Mac OS, hence the code below is a bit different from the website's
//glfwSetMousePos(1024/2, 768/2);

// Compute new orientation
horizontalAngle = 3.14f + mouseSpeed * float( 1024/2 - xpos );
verticalAngle   = mouseSpeed * float( 768/2 - ypos );
于 2013-09-11T10:05:09.910 に答える
1

OSX 上の GLFW2 の場合、tutorial-XX.cpp の glfwCreateWindow( ...,...,) の後に次の行を追加します。

glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED);

次に、common/controls.cpp に 2 つのグローバル変数を作成します。

double xpos_old, ypos_old;

最後に glfwSetCursorPos(window, 1024/2, 768/2); をコメントアウトします。角度の計算を新しいセットアップに変更します。アイデアは、古いマウスポスと新しいマウスポスの違いを取得することです。最終的なコードは次のようになります。

// Reset mouse position for next frame
// glfwSetCursorPos(window, 1024/2, 768/2);
// Compute new orientation

horizontalAngle += mouseSpeed * float( xpos_old - xpos );
verticalAngle   += mouseSpeed * float( ypos_old - ypos );
xpos_old = xpos;
ypos_old = epos;

これは私のMacでうまく機能します!乾杯!

于 2014-05-23T10:39:57.417 に答える
1

OS X 10.9 の GLFW 3 でも同じ問題があります。

カーソルを無効にしてウィンドウ内にトラップするには、ウィンドウの作成後にこれを追加しました。

glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED);

//glfwSetCursorPos(window, 1024 / 2, 768 / 2);次に、controls.cppでコメントアウトしました

これで、マウスの動きが機能します。ただし、特定の角度から立方体を見ると、マウスを左右に動かすとビューが回転し、別の角度から見るとビューが左右に移動するように見えます。変。

于 2014-05-17T20:02:57.803 に答える