저는 새로운 OpenGL 프로그래머입니다. 3D 그래프 형식으로 수천 개의 삼각형으로 구성된 높이 맵을 플로팅하고 있습니다. 그것들은 3 축에서 -1과 +1 사이에 플롯되도록 스케일됩니다. 이제는 X 축 만 확대 할 수 있으며 적절한 축척 및 변환 행렬을 적용하여 X 축에서 변환 할 수도 있습니다. 이렇게하면 효과적으로 데이터를 오른쪽으로 확대하고 선택한대로 x 방향으로 이동할 수 있습니다. 문제는 확대 된 후 x 방향의 데이터가 이제 그래프의 경계 인 -1에서 +1 영역 밖으로 확장된다는 것입니다. 이 데이터를 표시하지 않기를 바랍니다. 이것은 현대 OpenGL에서 어떻게 이루어 집니까? 당신에게 편집 감사합니다 다음과 같이 행렬은 다음과 같습니다축의 두 좌표 사이에서 OpenGL의 그리기를 어떻게 제한합니까?
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