본문 바로가기
[그래픽스] Modelview Matrix, Projection Matrix, 카메라(오브젝트, 렌즈) 조정 📌 Modelview Matrix / Projection MatrixModelview Matrix : 객체를 어떻게 놓을지를 결정하는 매트릭스Projection Matrix : 뷰 좌표계에서의 객체를 어떻게 화면에 투사할지를 결정하는 매트릭스 ex)그림을 그릴 때, 먼저 그림의 크기, 위치, 회전 등을 정하는 작업이 모델뷰 매트릭스에 해당이후 종이를 눈과 물체 사이에 놓아(시점을 정하는 카메라 변환에 해당) 물체를 종이에 그리는 것이 프로젝션 매트릭스에 해당 모델뷰 매트릭스는 물체의 크기와 위치를 결정하고, 카메라의 시점을 결정하여 뷰 좌표계로 변환함이후, 프로젝션 매트릭스는 뷰 좌표계에서 화면 좌표계로 변환하여 3D 객체를 화면에 투영하여 그림 따라서 카메라를 오브젝트로 취급할 때는 모델뷰 매트릭스를.. 2024. 2. 7.
[그래픽스] OpenGL 카메라 : 평행 관측, 투시 관측, 투영 📌 평행 관측, 투시 관측parallel / perspective투시 관측 : 한 점에서부터 본다고 생각평행 관측 : 아주 먼 시점에서 본다고 생각직교 관측 : 완전한 직교에서 관측한다고 생각  📌 멀티뷰 직교 관측 : 실질적인 건축 설계 등에 사용장점 : 거리, 각도 보존 → 건축 or 매뉴얼에 사용단점 : 많은 표면이 보이지 않아 실제로 어떻게 생겼는지 볼 수 없음→ 종종 대각선 위에서 보기도 함 (isometric)  📌 경사 관측 : 프로젝터와 투사면 간의 임의 관계장점 : 특정 부분을 강조하기 위해 각도 선택 가능, 투사면에 평행한 면의 각도는 유지되며 “주변”면은 계속 볼 수 있음단점 : 실제 세계에서는 일반 카메라로는 제작이 불가. 벨로우즈(주름상자) 카메라 or 특수 렌즈로 제작 가능.. 2024. 2. 7.
[그래픽스] CTM이란?, OpenGL Coordinate System 실습 📌 Current Transformation Matrix (ctm)4*4 동차좌표에서, 사용자 프로그램에서 정의 & 변환 장치에 로드ctm을 운영하여 동차좌표계에서의 변환 수행  📌 CTM 종류행렬 로드 C ← I임의의 행렬 로드 C ← M 변환 행렬 로드 C ← Tt회전 행렬 로드 C ← Rr스케일링 행렬 로드 C ← S 임의의 행렬 곱 C ← CM변환 행렬 곱 C ← CT회전 행렬 곱 C ← CR스케일링 행렬 곱 C ← CS  📌 고정점 중심 회전행렬 로드 C ← I고정점 원점으로 이동 C ← CT회전 C ← CR고정점 돌아가기 C ← CT(-1)결과 C = TRT(-1) 수행해야할 것행렬 로드 C ← I고정점 원점으로 이동 C ← CT(-1)회전 C ← CR고정점 돌아가기 C ← CT결과 C .. 2024. 2. 7.
[그래픽스] Transformations : Rotation, Scaling, Reflection, Inverse, Transformation의 순서, 변환 순서 📌 Translation회전, 스케일링, 반사 등근본적으로, 점들의 이동에서부터 시작됨벡터 d에 의해 변위가 결정 됨 p’ = p+d즉, 점 + 벡터라고 볼 수 있음이는 행렬로도 표현 가능 p = [x, y, z, 1]t → 이동 전 점p’ = [x’, y’, z’, 1]t → 이동 후 점d = [dx, dy, dz, 0]t → 벡터⇒x’ = x+dxy’ = y + dyz’ = z + dz4차원이며 위와 같이 점 = 점 + 벡터로 표현동차좌표에서 행렬을 사용하여 표현할 수 있음  📌 Rotation (회전)각도에 의지하여 변환rotation axix(축)에 따라 변환됨  📌 Scaling축에 따라 늘이고 줄이는 것 해당 축에 스칼라값을 곱해주면 됨x’ = sx * xy’ = sy * yz’ = sz.. 2024. 2. 7.