Jogl의 최신 OpenGL (3.3+)을 사용하여 응용 프로그램을 다시 작성합니다. 나는 모든 기존의 매트릭스를 사용하고마우스와 함께 카메라 목표 위치 이동
, 즉 objectToWorld, WorldToCamera 및 CameraToClip (또는 모델, 뷰 및 프로젝션)
내가 맥 케슨 (McKesson)는 "학습 현대 3d에서와 같이 모든 마우스 움직임을 처리하기위한 클래스를 생성 방법과 그래픽 프로그래밍 ", 나머지는 명확해야 카메라 목표 위치
private void offsetTargetPosition(MouseEvent mouseEvent){
Mat4 currMat = calcMatrix();
Quat orientation = currMat.toQuaternion();
Quat invOrientation = orientation.conjugate();
Vec2 current = new Vec2(mouseEvent.getX(), mouseEvent.getY());
Vec2 diff = current.minus(startDragMouseLoc);
Vec3 worldOffset = invOrientation.mult(new Vec3(-diff.x*10, diff.y*10, 0.0f));
currView.setTargetPos(currView.getTargetPos().plus(worldOffset));
startDragMouseLoc = current;
}
calcMatrix()를 카메라 행렬을 반환 상쇄
내가 오른쪽 마우스와 함께 내 객체를 이동하려면 이제는 마우스 움직임과 객체 변환이 일치하지 않습니다. 즉, 선형이 아니기 때문에 다른 공간을 다루고 있기 때문입니다.
공간 O에서 변형 T를 적용하려고하지만 스페이스 C에서, 나는
의 C * (C *의 T의 *의 C^-1) * O * P 유사한 어떻게해야
뭔가 정점과 같은 페이지로 다음을 수행해야합니까? 계정에 내 투영 행렬을 촬영