Added model matrix
This commit is contained in:
parent
452081edcb
commit
68614f805f
|
@ -30,6 +30,8 @@ typedef struct tc_object
|
||||||
{
|
{
|
||||||
int vbo;
|
int vbo;
|
||||||
int vao;
|
int vao;
|
||||||
|
tc_vec3_s position;
|
||||||
|
tc_vec3_s rotation;
|
||||||
|
|
||||||
} tc_object_s;
|
} tc_object_s;
|
||||||
|
|
||||||
|
@ -44,6 +46,15 @@ tc_block_s block;
|
||||||
|
|
||||||
void render_block(tc_block_s block)
|
void render_block(tc_block_s block)
|
||||||
{
|
{
|
||||||
|
mat4x4 model_matrix;
|
||||||
|
mat4x4_translate(model_matrix, block.position.x, block.position.y, block.position.z);
|
||||||
|
// mat4x4_rotate_X(view_matrix, model_matrix, block.rotation.x);
|
||||||
|
// mat4x4_rotate_Y(view_matrix, model_matrix, block.rotation.y);
|
||||||
|
// mat4x4_rotate_Z(view_matrix, model_matrix, block.rotation.z);
|
||||||
|
|
||||||
|
int model_matrix_uniform_location = glGetUniformLocation(main_shader, "model_matrix");
|
||||||
|
glUniformMatrix4fv(model_matrix_uniform_location, 1, GL_FALSE, &model_matrix[0][0]);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, block.drawing.vbo);
|
glBindBuffer(GL_ARRAY_BUFFER, block.drawing.vbo);
|
||||||
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void *) 0);
|
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void *) 0);
|
||||||
glEnableVertexAttribArray(0);
|
glEnableVertexAttribArray(0);
|
||||||
|
@ -155,6 +166,9 @@ void render()
|
||||||
|
|
||||||
mat4x4_perspective(projection_matrix, 120, 1200 / 800, 0.0001f, 1000.0f);
|
mat4x4_perspective(projection_matrix, 120, 1200 / 800, 0.0001f, 1000.0f);
|
||||||
mat4x4_translate(view_matrix, -tc_camera_position.x, -tc_camera_position.y, tc_camera_position.z);
|
mat4x4_translate(view_matrix, -tc_camera_position.x, -tc_camera_position.y, tc_camera_position.z);
|
||||||
|
// mat4x4_rotate_X(view_matrix, view_matrix, tc_camera_rotation.x);
|
||||||
|
// mat4x4_rotate_Y(view_matrix, view_matrix, tc_camera_rotation.y);
|
||||||
|
// mat4x4_rotate_Z(view_matrix, view_matrix, tc_camera_rotation.z);
|
||||||
|
|
||||||
glUseProgram(main_shader);
|
glUseProgram(main_shader);
|
||||||
|
|
||||||
|
@ -165,10 +179,6 @@ void render()
|
||||||
glUniformMatrix4fv(view_uniform_location, 1, GL_FALSE, &view_matrix[0][0]);
|
glUniformMatrix4fv(view_uniform_location, 1, GL_FALSE, &view_matrix[0][0]);
|
||||||
// printf("%d\n", view_uniform_location);
|
// printf("%d\n", view_uniform_location);
|
||||||
|
|
||||||
// mat4x4_rotate_X(view_matrix, view_matrix, tc_camera_rotation.x);
|
|
||||||
// mat4x4_rotate_Y(view_matrix, view_matrix, tc_camera_rotation.y);
|
|
||||||
// mat4x4_rotate_Z(view_matrix, view_matrix, tc_camera_rotation.z);
|
|
||||||
|
|
||||||
render_block(block);
|
render_block(block);
|
||||||
|
|
||||||
SDL_GL_SwapWindow(window);
|
SDL_GL_SwapWindow(window);
|
||||||
|
@ -338,6 +348,8 @@ int main(int argc, char **argv)
|
||||||
SDL_ShowWindow(window);
|
SDL_ShowWindow(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
block.position.x += 0.1f;
|
||||||
|
|
||||||
++frame_index;
|
++frame_index;
|
||||||
SDL_Delay(1000/60);
|
SDL_Delay(1000/60);
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,6 @@ uniform mat4 model_matrix;
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
|
|
||||||
gl_Position = projection_matrix * view_matrix * vec4(pos, 1.0);
|
gl_Position = projection_matrix * view_matrix * model_matrix * vec4(pos, 1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue