4,357,252 th visitor since 2017.2.1 ( Today : 830 )
Knowledge
No. 40
Subject. Ray Casting
Date. 2005-07-15 10:05:15.0 (211.109.70.164)
Name. swindler
Hit. 7637
File.
레이 캐스팅(ray-casting) 알고리듬

이 방법은 Doom 스타일의 게임에서 사용된 꽤 유명한 방법이다. 레이 트레이싱이 정확한 폴리곤 렌더링 방법이지만 그 계산 시간이 매우 오래 걸리는데, 레이 캐스팅 방법은 그 시간을 획기적으로 줄여서 우리에게 PC에서 비교적 빠른 3D 게임을 즐기는 기쁨을 안겨주었다. 이 방법은 레이 트레이싱과는 틀리게 시점과 물체 사이의 거리를 계산하여 렌더링을 한다. 즉 눈에서 발사된 추적 광선이 어떤 물체와 부딪히게 되면 그 지점에 해당되는 표면의 교차점까지의 거리와 시선의 각도를 사용하여 그 광선에 해당하는 특성을 가진 표면을 그려낸다. 하지만 이 방법은 주로 2D 맵핑에 의한 그래픽에서 사용되고 고화질의 렌더링은 기대하기 어렵다는 단점이 있다.



------------------------------

보는 이의 시점(실제로는 카메라의 시점)에서부터 특정 픽셀을 통해
빛을 투사(cast)해서 이 빛이 물체에 닿거나 보이는 영역에서 벗어날 때까지
따라감으로써 그 해당 픽셀의 색을 결정해 렌더링 이미지를 생성하는 방식.
물론 그 빛이 아무 물체에도 닿지 않는다면 해당 픽셀은 검은색이 되고,
빛이 어떤 오브젝트 표면에 도달하게 되면 프로그램은 그 빛이 hitting된
지점에서의 오브젝트 색상을 계산해서(이때 특정 shader를 sub-algorithm으로
사용하게된다) 그 값을 해당 픽셀의 색으로 결정한다. 생성될 전체 이미지의
각각의 픽셀마다 순차적으로 위와 같은 과정을 반복한다.
Ray casting은 작업 공간에 존재하는 오브젝트가 여러 개라고 할지라도
그 계산 방식의 특성상 각각 따로 존재하는 것처럼 렌더링하기 때문에
물체간의 반사나 투명도가 있는 물체를 표현하거나 물체 서로간에 그림자를
드리우는 효과를 계산할 수가 없다. 따라서 그러한 효과를 흉내내기 위해서
일종의 편법들을 사용하게 되는데 예를 들어 표면 반사를 위해서는
reflection mapping을 사용하고, 투명 오브젝트를 위해서는 겹쳐지는
두 오브젝트의 색상을 섞어서 (물론 이때 굴절은 기대할 수 없지만) 사용하며,
그림자는 z-buffer의 정보를 적절히 활용해서 만들어 주게 된다

출처 Rhino3D.co.kr



--------------------------------------------------------------------------------

후에 보다 사실감 있는 3차원 배경기법이 등장하였는데 레이 캐스팅(ray casting)기법으로
관찰자 시점에서 정면으로 바라다보는 배경을 그때그때 실시간으로 만들어낸다.
이 기법은 DOOM과 WOLF 3차원이라는 게임에서 선보였다.


그러나 이들 게임 역시 진정한 3차원 게임은 아니며 기술적인 트릭을 사용하여 미리 랜더링
(rendering)된 수직라인의 텍스쳐(texture)맵을 이용하여 3차원의 원근감 있는 배경을 만들어낸다.


... 중략 ...


아마도 여러분들 주에는 DOOM이나 Wolfenstein3차원 ,Black stone같은 3차원 비디오게임을
한번씩은 즐겨본 경험이 있을것이다. 1992년에 선보인 Wolfenstein 3차원 게임은 PC에서
실행되는 아케이드 유형의 최초의 1인칭 시점 액션 게임으로 3차원 공간으로 구성된 실내에서
벌어지는 전투게임이다. 이어 3차원 게임의 최대 히트작인 id Soft사의 DOOM게임이 전설적인 3차원 게임으로 남아있으며 당시 획기적인 그래픽 구현 방식과 속도감,부드러운 3차원 배경의
실시간(real-time)렌더링 기술로 극찬을 받아 전세계로부터 대단한 반응을 불러일으켰다.
그러나 DOOM은 진정한 3차원 게임은 아니다.


다시 말하면 기술적인 내부 트릭을 이용하여 2차원으로 구축된 데이터베이스(DB)정보를 가지고
3차원 화면을 연출해내는진보된 레이 캐스팅 기법을 도입한 게임이다. 그 이전에는 WOLF3차원게임이
효시로서 등장하였는데 이 게임 역시 인기를 누렸으며 이후 DOOM에서 그래픽 처리기술과 사실감이
매우 향상된 게임으로 진일보하게 되었다. 대표적인 3차원 게임인 DOOM게임이 큰 인기를 누린 요인
은 3차원 그래픽 기법과 더불어 매우 부드러운 스크롤과 텍스쳐 맵핑,사실감이 넘치는 화면전개
등에 기인한다.


DOOM게임은 가상현실기법을 이용한 3차원 워크스루우(Walk-through)게임 형태에 속한다.


이런 종류의 게임은 가상현실이라는 새로운 기술을 접목한 게임으로 게임의 진행이

워크스루우(Walk-through)형태를 본 떠 만약 플레이어가 HMD(Head-Mounted Display)라는
헤드폰이 내장된 시각 디스플레이 장치를 쓰고 본다면 마치 자기자신이 가상의 건물속에
들어가 있는거 처럼 착각을 일으키게 된다.

DOOM과 같은 게임은 완전한 비트맵으로 이루어진 화면처리와 사실감 있는 텍스쳐 맵핑 기법을
도입함으로써 플레이어가 가상의 건물 속을 거니는 것처럼 느끼게 해준다.
이 게임에서 우리는 다음과 같은 매우 훌륭한 3차원 그래픽 처리 기법을 배울수 있다.


1.빠르고 부드러운 실시간 3차원 퍼스펙팁(perspective스크롤링
2.사실감 있는 텍스쳐 맵핑 기법
3.원근감 효과
4.뷰포인트에 따른 실시간 배경 출력기법


앞서 말한 바와 같이 DOOM과 Wolfenstein3차원 게임은 진보된 레이 캐스팅(ray casting)기술을
사용하는데 이 기술은 일반 플라이트 시뮬레이터나 3차원 모델링 프로그램에서 렌더링 하는
폴리곤처리 방식과는 전혀 다른 기술이다. 이것은 놀라운 사실이다. 그러나 화면에 보이는 텍
스쳐 맵핑(Texture mapping)기술은 매우 부드러운 스크롤과 함께 사실감있는벽면을 보여준다.
이것은 사실감을 부여하기 위해 미리 디자인된 텍스쳐 맵을 이용하여 건물벽의 질감을 만들어낸다.
레이 캐스팅기술은 최근 비디오게임에서 사용되는사실적인 3차원 뷰를 만들어내기 위한 3차원
그래픽 기술이라고 말할수있다. 이것은 폴리곤의 사용대신 수직라인의 텍스쳐 맵핑 기법을 사용하는 기술이다. 이 방법은 기존 플라이트 시뮬레이터에서 사용되는 폴리곤 기반 3차원 그래픽 기술과는
전혀 다른 형태의 기술로서 광선의 추적과 도달점, 시야의 각도를 이용하여 뷰(view)를
실시간으로 만들어낸다.레이 캐스팅 기술외에도 복셀(voccel)그래픽 이라는 다소 생소한 3차원
렌더링 기술도 게임에 적용되고 있다.


전통적인 방법에 의한 3차원 렌더링 기술은 수학적으로 수많은 연산처리과정을 거치기 때문에
실시간의 3차원 그래픽 처리를 PC에서 구현한다는 것은 속도 면과 메모리의 제약으로 고성능의
3차원 게임을 개발하기에는 무리가 따르게 된다.
따라서 DOOM게임에서는 내부적으로 레이 캐스팅(ray casting)이라 불리는 기술적인 트릭을
사용하여 최적화된 알고리즘과 빠른 어셈블리어로 구성된 라이브러리를 사용하는것으로 추측된다.
DOOM게임에서는 속도문제를 극복하기 위해 기존의 3차원 그래픽 제어기술을 그대로 사용하지는
않는다는 점이다. 예를 들어 라인을 긋는 대표적인 브레세함(Bresenham)공식을 사용하지는 않으나
대신 빠른 수직선과 수평선 긋기를 이용하여 화면의 모든 것을 구현시키는 것으로 추측된다.


그리고 보다 사실감을 수평선 긋기를 이용하여 화면의 모든 것을 구현시키는 것으로 추측된다.
그리고 보다 사실감을 부여하기 위해 미리 디자인된 텍스쳐 맵을 이용하여 건물 벽의 질감을
만들어낸다.그렇다고 3차원의 수학적 연산 처리 과정이 전혀 사용되지 않는것은 아니다.
만약 여러분이 초보적인 3차원 게임 제작을 시도하려 한다면 수학과 3차원 그래픽 이론에
대한 충분한 사전지식이 필요하다고 생각한다.
물론 3차원 그래픽 라이브러리(library)를 사용한다면 사용방법만 숙지하면 되나 기존에
상품화된 게을 참조하여 기술을 익혀둘 필요가 있다. 근본적으로 3차원 그래픽기술은 폴리곤을
기반으로 한 그래픽 방식인 경우 전형적인 행렬연산처리에 의해 구현되지만 게임에서는 속도문제와
메모리의 절약이 필수적인 관계로 이 방식을 그대로 따른다면 성능이 제대로 따라오질 못한다.
이러한 다양한 맵을 지원하는 것은 3차원 게임 제작에서 필수적인 요소에 속하며 이것이 게임
화면의 질을 높이는 계기가 된다.


출처 http://seojewoo.pe.kr/activex/games.htm


[바로가기 링크] : http://coolx.net/board/know/40/0






Name
Password
Comment
Copyright © 1999-2017, swindler. All rights reserved. 367,611 visitor ( 1999.1.8-2004.5.26 ), 2,405,771 ( -2017.01.31)

  2HLAB   2HLAB_Blog   RedToolBox   Omil   Omil_Blog