私は新しいOpenGLプログラマーです。私は、数千の三角形で構成された高さマップを3Dグラフ形式でプロットしています。それらは3軸の-1と+1の間にプロットされるようにスケーリングされます。今私はX軸だけをズームインすることができ、適切なスケールと変換行列を適用することでX軸でも平行移動できます。これにより、効果的にデータをズームインして、選択した方向にx方向に移動できます。 問題は、いったんズームすると、x方向のデータがグラフの境界である-1から+ 1の範囲外に広がることです。私はこのデータを表示しないことを望む。 これは最新のOpenGLではどうですか?次のように行列の :OpenGLの描画を軸の2つの座標間でどのように制限できますか?
plottingProgram["projection_matrix"].SetValue(Matrix4.CreatePerspectiveFieldOfView(0.45f, (float)width/height, 0.1f, 1000f));
plottingProgram["view_matrix"].SetValue(Matrix4.LookAt(new Vector3(0, 0, 10), Vector3.Zero, new Vector3(0, 1, 0)));
をし、頂点シェーダは、ここ
public static string VertexShader = @"
#version 130
in vec3 vertexPosition;
out vec2 textureCoordinate;
uniform mat4 projection_matrix;
uniform mat4 view_matrix;
uniform mat4 model_matrix;
void main(void)
{
textureCoordinate = vertexPosition.xy;
gl_Position = projection_matrix * view_matrix * model_matrix * vec4(vertexPosition, 1);
}
";
あるグラフへのリンクです: http://va2fsq.com/wp-content/uploads/graph.jpg
おかげ
問題のあるケースのスクリーンショットを追加できますか?現在使用している行列(射影、...)も表示してください。 – BDL
リクエストが完了しました – Tom