행렬 곱셈 함수 설명
이 문서는 두 개의 행렬 배열을 곱하여 새로운 변환 행렬을 생성하는 matrix_multiply
함수에 대한 설명입니다. 이 함수는 새로운 행렬 인덱스를 반환하며, 이 인덱스는 이후에 사용할 수 있도록 변수에 저장해야 합니다.
함수 사용법
matrix_multiply
함수는 두 개의 행렬을 곱하는 데 사용됩니다. 이 함수는 행렬 상수를 인수로 사용할 수 없으므로, 예를 들어 뷰 행렬을 사용자 정의 행렬과 곱하고 싶다면, 먼저 matrix_get
을 호출하여 뷰 행렬 값을 배열 변수에 할당한 후, 사용자 정의 행렬과 곱해야 합니다. 그 후 선택한 행렬(뷰, 프로젝션 또는 월드)을 설정할 수 있습니다.
문법
matrix_multiply(matrix1, matrix2);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
matrix1 | Matrix Array | 사용할 첫 번째 행렬 인덱스입니다. |
matrix2 | Matrix Array | 사용할 두 번째 행렬 인덱스입니다. |
반환값
- 행렬 배열
예제
var v_matrix = matrix_get(matrix_view);
var new_matrix = matrix_multiply(v_matrix, my_matrix);
matrix_set(matrix_view, new_matrix);
위 코드는 현재 뷰 행렬을 가져온 후, 이를 사용자 정의 행렬과 곱하고, 결과로 얻은 행렬 인덱스를 사용하여 다시 뷰 행렬을 설정합니다.
활용 예제
- 뷰 행렬과 사용자 정의 행렬 곱하기
gml var view_matrix = matrix_get(matrix_view); var custom_matrix = matrix_build_rotation(45); var result_matrix = matrix_multiply(view_matrix, custom_matrix); matrix_set(matrix_view, result_matrix);
- 프로젝션 행렬과 스케일 행렬 곱하기
gml var projection_matrix = matrix_get(matrix_projection); var scale_matrix = matrix_build_scale(2, 2, 2); var final_matrix = matrix_multiply(projection_matrix, scale_matrix); matrix_set(matrix_projection, final_matrix);
- 월드 행렬과 이동 행렬 곱하기
gml var world_matrix = matrix_get(matrix_world); var translation_matrix = matrix_build_translation(10, 0, 0); var updated_world_matrix = matrix_multiply(world_matrix, translation_matrix); matrix_set(matrix_world, updated_world_matrix);
이와 같은 방식으로 matrix_multiply
함수를 활용하여 다양한 행렬 연산을 수행할 수 있습니다.