메신저는 시간상 번역하는 방법을 이해하려고 시도하고 두 개의 삼각형으로 만든 내 사각형에서 수행합니다. 내 운동은 사각형을 Y 축 배율 -0.5와 0.5로 이동하는 것입니다. 나는이 시간 변수를 사용하는 팁을 가지고OpenGL에서 삼각형으로 만든 정사각형의 번역
glm::mat4 translation
하고 보내
glUniformMatrix4fv(glGetUniformLocation(program, "transformation"), 1, GL_FALSE, (float*)&translation);
을 쉐이더 :
const float vertexArray[] =
{
-0.5f, -0.5f, 0.0f, 1.0f,
0.5f, -0.5f, 0.0f, 1.0f,
0.5f, 0.5f, 0.0f, 1.0f,
-0.5f, 0.5f, 0.0f, 1.0f
};
const int arrayIndexes[] = {0,1,2,3,0,2};
다음으로 내가 매트릭스 만든 : 나는 버퍼 내 verticles했다 다음과 같이 정의됩니다.
float time = glutGet(GLUT_ELAPSED_TIME)/1000.0f;
fmodf 기능. 나는 간단한 단계에서 그것을 시도하고 난이
glm::mat4 translation = {
1.0, 0.0, 0.0, 0.5,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0,
};
으로 행렬을 definied 그리고 화면의 상단에 사각형을 밀어
#version 430 core
layout(location = 0) in vec4 vertexPosition;
uniform mat4 transformation;
void main()
{
gl_Position = vertexPosition * transformation;
}
: 이 같은 버텍스 쉐이더는 모습입니다 하지만 나는 그것을 움직이게하고 그것을 beetwen -0.5와 0.5로 만드는 방법을 모른다. 저는 또한 Y로 변환 행렬에서 시간을 곱해서, 이제는 양의 방향으로 만 이동합니다. 어떻게 0.5에서 -0.5 사이로 움직일 수 있습니까?
glm::mat4 Core::createPerspectiveMatrix(float zNear, float zFar)
{
const float frustumScale = 1.1f;
glm::mat4 perspective;
perspective[0][0] = frustumScale;
perspective[1][1] = frustumScale;
perspective[2][2] = (zFar + zNear)/(zNear - zFar);
perspective[3][2] = (2 * zFar * zNear)/(zNear - zFar);
perspective[2][3] = -1;
perspective[3][3] = 0;
return perspective;
}
glm::mat4 perspective = createPerspectiveMatrix(0.1f, 10.0f);
transformation = perspective;
glUniformMatrix4fv(glGetUniformLocation(program, "transformation"), 1, GL_FALSE, (float*)&transformation);
쉐이더에
발송에 실패 모든 :
는 오늘 더 가서 난 내 프로젝트와 관점 행렬에 상자를 추가
layout(location = 0) in vec4 vertexPosition;
layout(location = 1) in vec4 vertexColor;
uniform mat4 transformation;
out vec4 color;
void main()
{
color = vertexColor;
gl_Position = transformation * vertexPosition;
}
가 나는 또한 번역 그러나 그것을 발송에 실패 그것을 didnt는 많이 바뀐다, 상자는 단지 내가 사용했던 축에서 움직였다. 내가 만에 입장을 사용하는 경우는 다음과 같습니다
관점만을 사용에 대한 결과 미세인가? 3D로 보일까?
당신 행렬에'sin (time)/2'을'0.5' 대신에 넣을 수 있습니다. – HolyBlackCat
멋지지만 완벽하게 작동하지만 팁으로 fmod를 사용해야하는 이유는 무엇입니까? – titans
그 점에 대해서만 추측 할 수 있습니다. 팁을 준 사람은 누구에게 물어봐야합니다. – HolyBlackCat