Matrices

Mickey·2022년 1월 27일
0

glium

목록 보기
4/14
post-thumbnail

https://github.com/glium/glium/blob/master/book/tuto-04-matrices.md

삼각형에 기하학적 연산을 추가

  • Scaling : position *= factor;
  • Rotating : new_position = vec2(pos.x cos(angle) - pos.y sin(angle), pos.x sin(angle) + pos.y cos(angle));
  • Skewing : position.x += position.y * factor;

4x4 Matrix를 이용하여 위 연산을 한번에 처리

vertex shader code 수정

let vertex_shader_src = r#"
    #version 140

    in vec2 position;

    uniform mat4 matrix;

    void main() {
        gl_Position = matrix * vec4(position, 0.0, 1.0);
    }
"#;

draw 함수 수정

let uniforms = uniform! {
    matrix: [
        [ t.cos(), t.sin(), 0.0, 0.0],
        [-t.sin(), t.cos(), 0.0, 0.0],
        [0.0, 0.0, 1.0, 0.0],
        [0.0, 0.0, 0.0, 1.0f32],
    ]
};

target.draw(&vertex_buffer, &indices, &program, &uniforms,
            &Default::default()).unwrap();


profile
Mickey

0개의 댓글