볼륨 광선 추적(Voluem Ray Casting) 이해

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@codingman·
0.000 HBD
볼륨 광선 추적(Voluem Ray Casting) 이해
# 볼륨 광선 추적(Voluem Ray Casting) 이해
-----
- 사전학습 : [선형보간법에 대한 간단한 이해](https://steemit.com/kr-dev/@codingman/--1548814368935)
- 참고 출처 : 
선형 보간법 -  https://ko.wikipedia.org/wiki/선형_보간법
Volume Ray Casting -  https://en.wikipedia.org/wiki/Volume_ray_casting

-----
지난 시간에 배운 선형보간법을 이여서 Ray Casting에 대해서 이야기를 할까 합니다. 
선형보간법에서 두 평면에서 구한 꼭지점을 기준으로 특정 위치의 꼭지점을 구하는 방식을 3차 선형 보간법으로 3D 공간 좌표의 물체의 값을 추출해 낼 수 있습니다. Ras Casting은 이 선형 보간법을 이용하여 쉽게 광선을 추적할 수 있게 됩니다. 이 Ray Casting에 대해 알아보고자 합니다.

## 1. Ray Casting 이해
-----

광선 추적이란 광선과 물체 표면의 교차검사를 통해 물체를 가려내는데 사용하는 기법입니다. 

<center>![](https://i.imgur.com/pfLTl0D.jpg)</center>

위 그림에서 보 듯이 물체의 특정 좌표 x,y,z로 광선 추적을 하게 되면 물체 표면의 위치와 색값을 얻을 수 있습니다. 오른쪽 그림에서 보는 것처럼 Ray Casting은 컴퓨터 화면의 하나의 특정 픽셀에서 직선의 광선 추적을 하게 되고 빨간코로 보이는 위치로 광선이 도달하면 물체의 빨간코 위치의 값을 픽셀의 값으로 결정하게 됩니다.

더 쉽게 살펴보면 아래 그림과 같습니다.

<center>![](https://i.imgur.com/VSiK8dj.jpg)</center>

위 그림을 보는 것처럼 특정 위치의 픽셀에서 출발하는 광선이 일정 간격으로 검사추적을 하게 됩니다. 이때 빨간코 위치에 도달하면 광선 추적이 멈추게 되고 그 위치에 값인 빨간색이 픽셀의 값으로 결정이 됩니다. 

참고로 일정 간격으로 광선이 추적되기 때문에 광선이 추적하는 위치 선상에 불투명도 값을 계산해 내면 물체로 인식하는 불투명도 값에 도달할 시에 광선 추적을 멈추게 하면 가상 공간의 물체가 위치한 좌표를 구할 수 있게 됩니다. 여기에서는 물체를 가상공간의 그림으로 표현했지만 실제 비파괴식 센서를 이용하여 이미지 데이터를 얻을 수 있게 되면 실제 물체의 크기나 형태를 정교하게 계산해 낼 수 있습니다.

예로 의료영상들을 들 수 있습니다. 엑스레이 영상 데이터 CT영상 데이터를 통해 얻은 이미지를 종합하여 Ray Casting를 이용하면 컴퓨터상으로 실제 물체나 사람의 데한 정보를 정확하게 추출해 낼 수 있게 됩니다.

## 2. Ray Casting의 문제
-----
Ray Casting의 문제는 아니고 어려운 부분이 있습니다. 단순위 위에서 설명한대로 픽셀에서 출발하는 광선이 물체 표현에 도달하면 물체 표현값을 그냥 픽셀로 결정한다고 생각하면 무지 단순해 보입니다. 

하지만 여기에서 어려움이 있습니다. 아래 그림과 같은 문제가 있습니다.

<center>![](https://i.imgur.com/0cTLcVU.jpg)</center>

보시면 특정 위치의 픽셀에서 출발한 광선이 일정 간격으로 조사되는데 물체의 표면을 향할 때 물체도 각 꼭지점으로 배치가 됩니다. 그런데 그 물체의 꼭지점을 지나는 것이 아니라 그 사이를 지나가면 해당 위치의 값을 물체의 정보가 없기 때문에 알 수 없습니다. 그래서 그 위치가 값을 찾기 위해서 보간법을 이용합니다.

아래와 같이 선형보간법을 이용하여 빨간점의 위치값을 구하게 됩니다.
<center>![](https://i.imgur.com/jxFjDIz.jpg)</center>

위와 같이 광선이 지나가는 위치의 물체의 각 꼭지점의 값을 이용하여 3차 선형보간법을 이용하여 x,y평명의 위치값을 구하고 두 평면 z값을 보간하여 빨간점의 3D가장공간의 위치값을 계산해 내면 광선 추적하는 픽셀의 값을 구할 수 있게 됩니다. 이런식으로 물체를 추적하면 데이터 정보를 컴퓨터상의 3D형태로 랜더링을 할 수 있게 됩니다.

## 3 추억의 한 컷
-----
전문 서적에서 공부했던 프로그램이 있어서 한번 추억을 떠올리면 돌려봤네요. 이 영상은 엔진 데이터인데 비파괴 단층 찰영 된 영상인데 꽤 비싼 서적이였던 걸로 아는데 영상 데이터까지 제공되고 소스까지 제공되는 전문 전공서적이였는데 그 영상을 공부할 때 코딩했던 .프로그램이 있어 한번 엔진 데잍터를 돌려 봤네요.

<center>![](https://i.imgur.com/0DISRhO.jpg)</center>

이것이 바로 3D Volume Rendering 입니다.

## 마무리
-----
오늘은 지난 시간에 이야기한 선형보간법 생각하면서 과거 3D Volume Rendering를 공부했던 추억이 떠올라서 그때 입문 용으로 배운 Ray Casting이 생각나 간단히 최대한 전공적인 이야기를 빼고 공식도 빼고 알고리즘도 빼고 의미만 전달해 보았네요.


---

#####  <sub> **Sponsored ( Powered by [dclick](https://www.dclick.io) )** </sub>
[![dclick-imagead](https://steemitimages.com/0x0/https://cdn.steemitimages.com/DQmSwkE4cySARFCKdemZWVwyk8dxh7HeDNiqwuVmWR3RBXE/Group%205.png)](https://api.dclick.io/v1/c?x=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjIjoiY29kaW5nbWFuIiwicyI6Ii12b2x1ZW0tcmF5LWNhc3RpbmctLTE1NDg5MDIyMTk4NDgiLCJhIjpbImktMiJdLCJ1cmwiOiJodHRwczovL3d3dy5kY2xpY2suaW8iLCJpYXQiOjE1NDg5MDIyMTksImV4cCI6MTg2NDI2MjIxOX0.8wh5na_glaEwpYzP_nnRbOrJHlmKZVTjL35FW4eFuuo)
👍 , , , , , , , , , , , , , , , , , , , , , ,