선형보간법에 대한 간단한 이해
선형보간법에 대한 간단한 이해
- 출처 : 선형 보간법 https://ko.wikipedia.org/wiki/선형_보간법
오늘은 간단히 선형보간법에 대한 이야기를 해볼까 합니다. 수학공식으로 디테일적으로 설명 하면 좋지만 그 내요은 위키백과에 위 링크된 위치로 가시면 선형 보간법에 대해서 잘 나왔기 때문에 굳이 반복해서 설명한 필요가 없고 최대한 간단히 잡이야기로 의미만 전달하는 내용을 담아 보았습니다.
선형보간법
선형보간법이란 두 꼭지점 값을 기준으로 직선 상에서 이루어지는 보간법입니다.
위 그림과 같이 두 a,b의 값을 보간하여 특정 p위치의 값을 구하게 됩니다. 이 경우는 직선 상의 특정 위치의 꼭지점을 구하는 방식으로 1차 선형 보간법입니다.
그 다음으로 두 직선상의 보간법으로 구한 꼭지점에서 특정 위치의 꼭지점을 구하는 방식을 2차 선형 보간법이라고 합니다.
이 방식은 두개의 직선 상의 p1과 p2라는 꼭지점이 구해지면 다시 p1과 p2라는 끝점을 기준으로 다시 d라는 꼭지점을 구할 수 있습니다.
그러면 다시 두 평면에서 구한 꼭지점을 기준으로 특정 위치의 꼭지점을 구하는 방식을 3차 선형 보간법이 되겠죠.
위 그림에서 보는 것처럼 평면 상의 꼭지점 d1, d2를 기준으로 다시 3차 선형 보간을 통해서 최종정적으로 D라는 꼭지점 값을 구할 수 있겠죠.
정리하면 1차 직선상의 꼭지점 p을 구하고 다시 두 p1, p2 위치에서 d를 구하고 다시 d1, d2 위치에서 D위치 값을 구하여 3D 좌표상의 꼭지점을 구하게 됩니다.
물체의 특정 위치값을 구할 때 선형 보간법을 이용합니다.
딸기코 같은 위치의 좌표가 선형보간법으로 이용하여 해당 위치 값을 구하여 물체의 색과 불투명도를 이용하여 3D 시각화를 할 수 있게 됩니다.
짱짱맨 호출에 응답하여 보팅하였습니다.
방문해주셔서 감사합니다.
오오 선형보간법이라 이런 방법이 ㅎㅎ
우리가 선형보간법을 그냥 특정 위치의 색의 값을 보정 할 때 흔히 많이 사용하는데 물체의 불투명도을 측정 할 때 사용하면 여러장의 2D 이미지를 겹쳐놓으면 가상 공간의 3D 좌표를 구할 수 있고 그 값을 기준으로 컴퓨터 3D 공간에 랜더링을 할 수 있어서 꽤 중요한 핵심 기법이지요.
우와. 그런거군요. 머리에 쏙쏙 들어오는데요. ㅎㅎㅎ
더 깊게 들어가면요.
수백장의 2D 이미지를 3차 for문을 이용해서 x,y,z로 정렬해놓고요. 우리눈 카메라 시점을 모니터 각 픽셀로 보고 그 픽셀에 회전 행렬 아시죠. 가상 공간의 x,y,z로 배치한다고 가정하고 우리가 보는 화면에 회전 효과를 부여하기 위해서 회전 행렬을 이용하지요. 참고로 ray casting를 하게 되면 회전 행렬을 이용해서 회전을 하는회전 시키는 로직 행렬들을 전부 역순으로 역행렬로 코딩해서 실제 광선 추적이 이루어지지요.
카메라시점에서 회전을 시키니깐 물체를 배치한 좌표에 대해 회전 된 픽셀이 직선상 위치하지 않고 그 물체의 좌표와 좌표 사이를 지나가게 되는 경우가 많지요.
그 물체의 꼭지점들 사이를 지날때 이 선형보간법을 이용하게 돼요.
재밌는 것은 하나의 점을 기준으로 계산하여 3D Rendering를 할 수 있고요.
아니면 2D 평면을 기준으로 계산하여 3D Rendering를 할 수 있고요.
3D 공간을 기준으로 3D Rendering를 할 수 있지요.
좋은 글이라서 계속 읽어보고 있는데요. 뭔가 좀 감이 오는 것 같아요. ㅎㅎ 그려지는 것 같기도 하고요. 신기합니다. ㅎㅎ
선형보간법은 단점이 있어요.
계산 시간이 길어서 시간복잡도가 높지요.
그래서 랜더링하는 시간이 길어요.
예전 논문을 보면 2차 선형 보간법으로 3D 랜더링하다가 좀 더 정밀도를 높이기 위해서 3차 선형 보간법으로 국내 학회 논문이 나왔다가 다시 3차에서 2차로 처리 속도를 높이기 위해서 논문을 쓴 분도 있지요.
단점이 회전 매컷 당 rendering 시간이 길다점이 흠이죠.
이 단계를 넘어가면 이 다음이 주파수 방식하고 또는 Volume data를 일렬로 배치하는게 하니라 한장씩 겹치면서 옆으로 쫙 펼쳐서 얇게 눌린 이미지로 계산해서 만들고 다시 복원하여 랜더링하는 방식 등 다양한 방식이 있는데 너무 오래 전에 공부해서 명칭 이름이 잘 안떠오르네요.
ray casting 다음으로 2단계 입문용 내용인데 실시간 처리용으로 좋더군요.
ray casting도 뭐 그래픽 엔진을 이용하면 실시간 처리는 되긴 하는데 순수 C언어로 코딩을 만들어 하면 실시간 처리에는 좀 제 경우 한계가 있더군요.
암튼 관련 글들이나 논문 읽어 보시면 재미 있을 거에요.
아... 뭔가 진짜 재밌는 보물 발견한 느낌이네요. ㅎㅎㅎ 좀더 알고싶어요. ㅎㅎㅎ 우와 이런 세상이