Open GL 그래픽 기능에 특화된 Go 행렬 및 벡터 수학 라이브러리입니다.
이 패키지는 주로 기본 벡터 및 행렬 연산을 위한 코드 생성으로 만들어졌지만 그 이상의 기능은 직접 작성되었습니다.
벡터와 행렬은 OpenGL과 마찬가지로 열 주요 순서로 저장됩니다. 즉, 이 패키지를 사용하여 벡터와 행렬을 전달할 때 "전치" 인수가 false 여야 함을 의미합니다.
이 패키지는 두 개의 하위 패키지로 나뉩니다. mgl32
패키지는 32비트 부동소수점을 다루고, mgl64
64비트 부동소수점을 처리합니다. 일반적으로 OpenGL에서는 32비트를 사용하지만 이중 확장을 사용하거나 단순히 OpenGL 없이 더 높은 정밀도의 3D 수학을 수행하려는 경우에는 64비트를 사용할 수 있습니다.
32비트와 64비트 하위 패키지가 분리되기 전의 이전 저장소는 github.com/Jragonmiris/mathgl(이전 저장소 경로)에 보관되어 있지만 더 이상 유지되지 않습니다.
예제는 github.com/go-gl/example에서 찾을 수 있습니다.
아마도 go get
과 이전 Go 버전을 함께 사용하고 있을 것입니다. go get
유틸리티는 현재 Go 버전과 일치하는 태그를 찾도록 프로그래밍되어 있습니다. 예를 들어 현재 Go1.2.2에 대한 태그가 있으므로 Go1.3으로 업그레이드하지 않은 경우 go get
이전 API를 가져옵니다. 버전 태그 지정에 대한 자세한 내용은 API 변경 섹션을 참조하세요.
기능 및 버그 수정에 대한 풀 요청을 자유롭게 제출하세요. 문서 버그 외에도 메타(travis.yml 등) 수정, 예제 코드 및 매우 사소한 변경(기본 접근자) 풀 요청은 새 코드에 해당하는 테스트 없이는 허용되지 않습니다. 버그 수정인 경우 테스트에서는 버그를 테스트해야 합니다.
mgl64
32비트 버전에서 직접 생성됩니다. 변경 사항을 반영하려면 go generate github.com/go-gl/mathgl/mgl32
(또는 mgl32
디렉터리에서 go generate
). 또한 코드 생성은 matrix.go
및 vector.go
에서 사용되므로 해당 파일을 직접 변경해서는 안 됩니다. matrix.tmpl
또는 vector.tmpl
편집하고 go generate를 실행하세요.
이제부터 Go 버전 릴리스 간에 주요 API 주요 변경 사항이 적용되지 않습니다. 이는 Go1.xx의 "x"가 증가할 때마다 의미합니다. 물론 버그 수정에는 예외가 적용됩니다. 버그 수정으로 인해 소프트웨어 호출의 의미를 변경해야 하는 경우 변경됩니다. (예를 들어 실수로 행 주요 규칙을 사용한 최근 전치 업데이트가 있습니다.) 더 이상 사용되지 않는 기능은 출시된 주요 버전에서 누킹될 수도 있습니다. 주요 릴리스에 가까운 API 주요 변경 사항이 발생하기 전에 가장 최근의 주요 변경 사항이 없는 커밋에는 이전 Go 버전 번호(예: Go1.2.2) 태그가 지정됩니다. 그러한 태그가 존재하지 않으면 아무 것도 손상되지 않았다고 가정할 수 있습니다.
EulerToQuat 제거; 대신 ZYX 주문과 함께 AnglesToQuat를 사용하세요.