RayTracing 3

[Rasterization] 스크린좌표계에서 정확한 원근투영 interpolation지점 찾기

일반적으로 레스터화에서 정투영, 원근투영 모두 월드좌표계의 vertex들을 스크린 좌표계로 변환시킨 후 barycentric coordinates(무게중심좌표계)를 이용하여, uv좌표를 찾고 fragment에 알맞은 색을 입힙니다. 하지만 정투영에서는 왜 문제가 안 생기고, 원근투영에서 문제가 생길까요? 다음 그림을 보며 이상한 부분을 발견해봅시다.   격자무늬가 삐뚤어져있죠? 원래 월드좌표계에서의 모습은 잘 정렬되어져 있는 모습입니다. 왜 왜곡되게 보이는지 원리를 이해하기전에 레스터화에서 원근투영의 원리를 천천히 이해해봅시다. 다음 그림과 같이 레스터화의 원근투영은 월드좌표계의 vertex를 스크린좌표계 즉 z=0일 때로 투영시킨 지점을 찾습니다. (닮은꼴을 통해 구합니다)   Raytracing은 r..

[Rasterization] 삼각형의 레스터화

이전 글에서는 Raytracing에 대해서만 공부해봤습니다. 이번엔 Rasterization에 대해 알아볼 건데요. 둘의 차이점은 뭘까요? Ray Tracing은 보다 물리적으로 정확한 빛의 경로를 추적하여 렌더링하는 방식입니다. 영화나 애니메이션과 같은 비실시간 렌더링에서 많이 사용됩니다. Ray를 발사해서 반사, 그림자, 굴절 등을 반영하여 보다 현실적인 이미지를 나타냅니다. 반면, Rasterization은 3D 모델을 2D 화면에 투영하는 전통적인 렌더링 방식입니다. 이 방법은 주로 실시간 렌더링(예: 게임 엔진)에서 사용됩니다. 빛을 발사하는게 아니라 각 삼각형을 화면공간(스크린 좌표계)로 투영하는 방식을 사용하여 이미지를 나타냅니다.  Raytracing은 픽셀마다 ray를 발사해서 모든 물체..

Graphics Techniques 2024.10.24

[그래픽스]벡터의 외적 개념

벡터의 외적(cross product)은 주로 3차원 벡터에서 정의되는 연산으로, 두 벡터로부터 새로운 벡터를 만들어내는 연산입니다. 외적을 통해 얻어진 벡터는 두 벡터가 이루는 평면에 수직한 벡터(법선 벡터)가 됩니다.외적은 물리학과 컴퓨터 그래픽스에서 중요한 역할을 합니다. 특히, 두 벡터로 이루어진 평면에서 수직한 방향을 구할 때, 또는 회전과 관련된 문제를 풀 때 자주 사용됩니다.1. 벡터의 외적 공식A= (Ax,Ay,Az), B= (Bx,By,Bz) 일때A x B = (AyBz - AzBy, AzBx - AxBz, AxBy - AyBx) 이고, 이 벡터는 두 벡터에 모두 수직인 새로운 벡터입니다.2. 외적의 기하학적 의미외적의 결과는 두 벡터가 이루는 평면에 수직인 벡터를 반환합니다. 기하학적으..