2023. 2. 4. 23:31ㆍ컴퓨터 그래픽스/그래픽 알고리즘 및 표현
해당 공부는 honglab 의 강의에서 배운 내용들 입니다.
honglab
About Jeong-Mo Hong 약력 2020-2021 인스타그램 소프트웨어 엔지니어 2008-2019 동국대학교 컴퓨터공학과 부교수 2005-2007 스탠포드대학교 전산과 박사,연구원 2002-2005 고려대학교 전산학 박사 1996-2002 KAIST
honglab.co.kr
픽셀 배열로 이루어진 이미지 좌표계에서 화면 중심이 0,0 이고 x의 범위는 [-aspect ratio, aspect ratio], y범위는 [-1,1] 의 좌표계로 변환하는 알고리즘을 공부할 것이다.
aspect ratio 는 가로, 세로 비율로 화면의 16:9 비율, 21:9 비율 같은 것을 일컫는 말이다.
이 ratio를 구하는 공식은
width / height 로 구할 수 있다.
좌표계 변환을 하는 방법은 scaling을 통해 하게 된다.
현재 변환하는 내용은 2D -> 2D이다.
모든 픽셀들을 돌면서 x * xScale , y* yScale 과정을 거치면서 새로운 좌표계로 입력이 들어간다. 새로운 좌표계에서는 y값이 증가하면 물체가 위로 입력되고 y가 감소하면 아래로 입력되게 하고 싶은데 현재 만든 좌표계에서는
중심 좌표의 y값이 증가하면 아래로 내려가고 감소하면 위로 올라가는 방식으로 되어 있다. 왜냐하면 image 좌표계에서 height 의 값이 증가할 때 배열이므로 아래로 내려가게 되기 때문이다.
해당 방식을 바꾸려면 바뀐 y 좌표계에서 - 부호를 붙여서 반전시켜주어야 한다.
vec2 Transform(vec2 arr_pixels)
{
const float aspectRatio = width / height;
const float xScale = 2* aspectRatio / (width - 1);
const float yScale = 2 / (height - 1);
return vec2 newCoordinate(arr_pixels.x * xScale, -arr_pixels.y * yScale);
}
'컴퓨터 그래픽스 > 그래픽 알고리즘 및 표현' 카테고리의 다른 글
Rasterization 원 그리기 (0) | 2023.02.22 |
---|---|
Rasterization (0) | 2023.02.15 |
perspective 원근표현 (0) | 2023.02.09 |
Phong shading 을 이용한 물체의 표현 (0) | 2023.02.05 |
Drawing Sphere 구 그리기 (0) | 2023.02.05 |