약 9년전 사설 과정에서 3d 게임 프로그래밍 이라는 과정을 이수 하면서 soft rendering
pipe line 을 프로그래밍 수업과 직접 구현을 하였습니다.
그 주제가 수학적 지식이 많이 필요 했었고 전체 과정에서 주어진 시간이 부족하여 100프로 이해하고 작업을 한 것 은 아니였습니다. 지금 생각 해보면 60프로 정도 이했을 거라는 생각이 듭니다.
그 주제가 수학적 지식이 많이 필요 했었고 전체 과정에서 주어진 시간이 부족하여 100프로 이해하고 작업을 한 것 은 아니였습니다. 지금 생각 해보면 60프로 정도 이했을 거라는 생각이 듭니다.
이수 후 게임 업계에 일하면서 업무적으로 이래저래 도움이 되었고 더 발전 하기 위해 항상
시간이 되었을 때 이론 적으로 정리하고 이해하고 구현을 하고 싶었습니다.
그러나 이런 저런 핑계로 이제 서야 실천으로 옮기기 시작하였습니다.
개인적으론 지금이라도 시작해서 다행이라 생각합니다.
그러나 이런 저런 핑계로 이제 서야 실천으로 옮기기 시작하였습니다.
개인적으론 지금이라도 시작해서 다행이라 생각합니다.
순서는 Real-Time Graphics Pipeline 큰 덩어리의 총체적인 이야기를 하고 차후에 각 학목에 세부적인 수학적 지식이나 이론적 지식을 이야기 해 보려 합니다.
회화적 기법에 역사를 보면 끊임 없이 인류는 사실적으로 화폭에 담아 내기위해
투시기법이나 빛의 처리 등 여러 기법들을 생각 해내고 다른 쪽에선 이를 수학적으로 과학적으로 증명하고 범용적으로 통용 될 수있는 공식으로 고안해 냈을 것입니다.
사영기하학등이 이런 지식의 산물에 하나일 것이라는 생각을 해봅니다.
이후 컴퓨터의 등장과 이런 표현의 인간의 지적 욕구는 컴퓨터 그래픽스라는 분야를 탄생
시켰고 디스플레이에 세계(실제공간)의 영상(이미지)를 표현하기 위해 일렬의 기하학처리들
(위치변화, 회전변화,라이팅처리, .. 등) 을 Graphics Pipeline 이라 정의 하였고
발전 시켜왔고 이에 대표적인 표준 Real-Time Graphics Pipeline api 인 directx 와 opengl 을 개발하고 성장 하고 잇습니다.
두 api가 조금씩(순서나 수학적정의) 틀리지만 근본적인 과정은 같다고 할 수있습니다.
자 지금부터 큰 덩어리의 Real-Time Graphics Pipeline 의 과정에 대해 알아 보겠습니다.
Application
기학적 데이타 의 정보를 로드 하거나 (file,db) , 사용자의 데이타 응용처리 단계이다.
max나 maya 등의 응용프로그램에서 제작한 모델의 정보를 load 하는 단계
vertex,texture, animation 처리등이 여기 속합니다.
Geometry
화면상에 표현 하기위하여 데이타를 일렬의 기학적 처리를 통해
스크린 상의 정보 까지 처리를 합니다.
World,Camera Translation
물체 기준의 움직임과 보는 시점(카메라)의 움직임에 대한 처리 과정 입니다.
Projection
3d의 정보를 2d 상의 투영시키는 처리 단계입니다.
투영에 방법에 따라 원근 투영과 직교 투영등이 있습니다.
Clipping
보여지는 영역에 제외된 모델 데이타 부분들을 다음 파이프라인과정에서 제외 시킵니다.
screen Mapping
2d로변환 정보를 스크린 해상도(ex 1920 *760)에 맞게 늘려주거나 축소 해주는 과정입니다.
Resterization
최종적으로 나온 정보로 화면의 픽셀을 채워주는 단계입니다.
설정해준 최소 폴리곤 단위(일반적으로 삼각형 )에 처리된 정보로 채워 줍니다.
기본적인 Real-Time Graphics Pipeline 을 알아보았습니다.
다음 부턴 세부적으로 단계별로 어떤 처리들이 일어나는지 알아보겠습니다.
투시기법이나 빛의 처리 등 여러 기법들을 생각 해내고 다른 쪽에선 이를 수학적으로 과학적으로 증명하고 범용적으로 통용 될 수있는 공식으로 고안해 냈을 것입니다.
사영기하학등이 이런 지식의 산물에 하나일 것이라는 생각을 해봅니다.
이후 컴퓨터의 등장과 이런 표현의 인간의 지적 욕구는 컴퓨터 그래픽스라는 분야를 탄생
시켰고 디스플레이에 세계(실제공간)의 영상(이미지)를 표현하기 위해 일렬의 기하학처리들
(위치변화, 회전변화,라이팅처리, .. 등) 을 Graphics Pipeline 이라 정의 하였고
발전 시켜왔고 이에 대표적인 표준 Real-Time Graphics Pipeline api 인 directx 와 opengl 을 개발하고 성장 하고 잇습니다.
두 api가 조금씩(순서나 수학적정의) 틀리지만 근본적인 과정은 같다고 할 수있습니다.
자 지금부터 큰 덩어리의 Real-Time Graphics Pipeline 의 과정에 대해 알아 보겠습니다.
Application
기학적 데이타 의 정보를 로드 하거나 (file,db) , 사용자의 데이타 응용처리 단계이다.
max나 maya 등의 응용프로그램에서 제작한 모델의 정보를 load 하는 단계
vertex,texture, animation 처리등이 여기 속합니다.
Geometry
화면상에 표현 하기위하여 데이타를 일렬의 기학적 처리를 통해
스크린 상의 정보 까지 처리를 합니다.
World,Camera Translation
물체 기준의 움직임과 보는 시점(카메라)의 움직임에 대한 처리 과정 입니다.
Projection
3d의 정보를 2d 상의 투영시키는 처리 단계입니다.
투영에 방법에 따라 원근 투영과 직교 투영등이 있습니다.
Clipping
보여지는 영역에 제외된 모델 데이타 부분들을 다음 파이프라인과정에서 제외 시킵니다.
screen Mapping
2d로변환 정보를 스크린 해상도(ex 1920 *760)에 맞게 늘려주거나 축소 해주는 과정입니다.
Resterization
최종적으로 나온 정보로 화면의 픽셀을 채워주는 단계입니다.
설정해준 최소 폴리곤 단위(일반적으로 삼각형 )에 처리된 정보로 채워 줍니다.
기본적인 Real-Time Graphics Pipeline 을 알아보았습니다.
다음 부턴 세부적으로 단계별로 어떤 처리들이 일어나는지 알아보겠습니다.
댓글 없음:
댓글 쓰기