0

OpenGLでビューポートの下部に水平ボックスを描画するにはどうすればよいですか?これが一番上に描かれています。どうしたの?

var H = window height;
var len = 20;

gl.Vertex3d(0, H - len, 0);       //top     left
gl.Vertex3d(Width, H - len, 0);   //top     right
gl.Vertex3d(Width, H + len, 0);   //bottom  left
gl.Vertex3d(0, H + len, 0);       //bottom  right
4

1 に答える 1

2

OpenGLのデフォルトの座標空間では、Yが上を向いています。何をしようとしているのか、何に慣れているのかに応じて、それを変更することも、頂点を変更することもできます。投稿した場合、それが単一のクワッドである場合、おそらく頂点を変更して次のようなことを行うことができます。

gl.Vertex3d(0, len, 0);       //top     left
gl.Vertex3d(Width, len, 0);   //top     right
gl.Vertex3d(Width, -len, 0);   //bottom  left
gl.Vertex3d(0, -len, 0);       //bottom  right

他の多くのものを描画している場合は、次の線に沿って何かを行うことにより、描画する前に必要に応じて現在の変換行列を設定できます(場合によっては後で復元できます)。

gl.matrixMode(GL_PROJECTION);
gl.ortho(left, right, top, bottom, near, far); // Note reversal of top and bottom
于 2013-03-20T04:10:20.497 に答える