3D 관련 용어
3D 관련 용어
쉐이딩(Shading)
3차원 물체는 다각형의 모임으로 구성됩니다. 정육면체를 구성하기 위해서는 6개의 사각형이 필요하며 각각의 면에 색을 입히고, 여기에 빛에 의한 명암 등 실제 물체에 대한 특성을 적용하여 질감이나 입체감을 부여하게 됩니다. 이렇게 면에 색을 칠하여 입체감을 높이는 기법을 쉐이딩이라고 하며 광원이 면에 비치는 밝기를 조절하는 Flat shading과 한면에서도 광원과의 거리,각도 등을 적용하여 좀 더 세밀하고 부드럽게 표현하는 기법인 Gouraud shading가 있습니다.텍스쳐맵핑(Texture Mapping)
쉐이딩이 면에 색을 칠하는 것이라면 텍스쳐멥핑은 면에 그림을 입히는 것입니다. 무늬가 그려져 있는 어떤 면을 쉐이딩으로 표현하려면 계산이 상당히 복잡해지고 처리시간도 오래걸리지만 텍스쳐맵핑 기법을 적용하면 간단히 면에 무늬가 있는 그림을 입힐 수 있게 됩니다. 이 기법을 적용하여 물질의 재질감을 표현할 수 있으며 좀 더 사실적인 효과를 표현할 수 있습니다.안티-에일리어징(Anti-aliasing)
이미지를 가공하는 방법 중 하나로 어떤면에 선을 그렸을때 도트가 나란히 배열되어 표시되는데 도트에 의해 계단현상이 나타납니다. 이런 계단현상 으로 화면이 거칠어지기 때문에 선 주위에 배경색과 중간색조의 점을 추가 하여 전체화면을 부드럽고 자연스럽게 표현하게 됩니다.에지 안티-에일리어징(Edge anti-aliasing)
면과 면이 만나면 두 면의 색이나 접촉된 각에 의해 모서리 부분이 날카롭고 거칠게 보이게 됩니다. 에지 안티-에일리어징은 면과 면이 만나는 경계에 대한 필티링 기법으로 서로 다른 면이 만나는 경계인 모서리를 부드럽게 하여 입체 구조물을 부드러운 형태로 만들어주게 됩니다.더블 버퍼링(Double Buffering)
애니메이션을 표현할때 입체구조물의 움직임을 부드럽게 표현하기위해 임시의 메모리 영역을 만들어 표시하는 방법입니다. 한 화면을 그리고 나서 그것을 지우고 다시 그리게 되면 그 만큼의 시간이 필요하게되며, 그로 인해 화면 처리가 늦어져 화면 끊김이 생기게 됩니다. 더블버퍼링은 화면이 표시되는동안 그 다음 화면을 특정 메모리에 미리 그려서 화면을 다시 그려야하는 시간을 줄이게 됩니다. 결과적으로 빠른 화면 전환을 통해 에니메이션의 장면전환을 부드럽게 표현할 수 있게 합니다.제트 버퍼링(Z Buffering)
어떤 상을 그리게되면 전면영역과 배경영역으로 구분되어지게 됩니다. 그려지는 상이 다른 상보다 뒤에 있게되면 시야에서 가려져 보이지않게 됩니다. 따라서 두 상간에 어떤 것이 앞에 있고 뒤에 있는가를 판단해야 하며, 뒤에 있는 상의 가려지는 부분을 숨기거나 그려지지 않게 해야합니다. 이를 위해 Z값을 두고 Z Buffer에서 값을 비교를 하여 제거해야할 부분을 정의하게 됩니다. 이렇게 하여 간단히 가려지는 부분을 제거하는 것이 제트 버퍼링입니다.알파 블렌딩(Alpha blending)
화상을 그리기 위해선 일반적으로 빨강,초록,파랑 3가지 색으로 구성이 됩니다. 여기에 더해 알파라는 값을 가질 수 있는데 이것은 각 픽셀에 대한 투명도를 나타냅니다. 이것을 알파 채널(alpha channel)이라고도 부르며 8bit로 0에서 255까지의 값을 갖습니다. 0은 완전투명한 상태이고 255는 불투명을 나타냅니다. 알파 채널은 주로 유리창이나 유리컵과 같은 화상을 혼합할 때 이용되며 투명한 효과를 주게 됩니다. 이와같이 투명한 화상을 혼합하는 방법을 알파 블렌딩이라고 합니다.
텍스쳐 (Texture)
폴리곤 위에 입히는 비트맵 이미지(그림). 다각형에 불과한 폴리곤에 텍스쳐 매핑을 하므로써 더욱 정밀한 표현물을 얻을 수 있다.
텍스쳐 젯 (TextureJet)
3차원 게임에서는 크게 두가지 특징을 주요한 요소로 친다. 동작의 유연함과 표현의 정밀함이 바로 그것이다.("모션"과 "디테일") 하지만 표본 조사 결과 사용자들은 동작이 끊어질 정도의 상세한 표현보다는 빠른 모션을 선호하는 것으로 나타났다. 그래서 지금까지의 각종 2D 게임에서는 프레임과 디테일 정도를 사용자가 결정할 수 있는 옵션이 제공되어 왔다.그러나 3차원 게임 개발자들은 초당 30프레임으로 풀모션을 구현하면서 더욱 현실적이고 한 차원 높은 3D 효과를 구현해야 한다. 이제는 속도 뿐만 아니라 배경의 표현도 강화해야 하는 것이다.
그렇다면 3차원 게임에 현실성을 강화하는 열쇠는 무엇일까? 가장 효과적인 방법은 각 장면에 등장하는 다양한 대상체에 텍스쳐를 입히는 것이다. 그러나 이 방법은 시스템에 엄청난 부하를 걸고만다. 바로 이 점을 해결하기 위해 3D 하드웨어가 필요하다.
3D 가속기의 중요한 요소는 시스템을 거치는 3D 데이터의 파이프 라인을 유지하는 것이다. 이러한 3D 파이프 라인을 필요로 하는 요소를 분석하여 시러스사에서는 3D 퍼포먼스에 가장 큰 부담 요소를 몇가지 뽑아 보았다.
1위 - 그래픽 메모리 대역폭
2위 - 텍스쳐 관리
3위 - 시스템으로의 그래픽 대역폭
4위 - 트라이앵글 셋업
고 대역폭 메모리(램버스 D램, SGRAM, MDRAM 같은)와 PCI를 이용한 P-133 시스템은 어느 정도의 문제를 해결할 수 있다. 그렇다면 3D 그래픽 컨트롤러에 남은 문제는 무엇인가?
트라이앵글 셋업 엔진(각 장면에서의 삼각형 혹은 폴리곤의 경계를 계산하는 장치)이 게임의 정밀 텍스쳐 매핑에 약간의 도움이 되기는 하지만 근본적인 문제를 해결하지는 못 한다. 그러므로 텍스쳐 데이터가 로딩될 때, 개발자들은 상세한 표현력과 유연한 동작 사이에서 고민을 해야 할 것이다. 사실 시스템 메모리로부터 3차원 가속기로의 텍스쳐 데이터 전송은 인텔의 AGP 아키텍쳐에서나 해결될 것이다.
이상적으로는 모든 텍스쳐가 비디오 컨트롤러의 그래픽 메모리에 저장되어야 한다. 하지만 이것은 비용 상 문제점이 있어 대부분 시스템의 메모리를 이용하는 것이 일반적이다. 대신 비디오 카드의 메모리는 프레임 버퍼로 사용하여 시스템의 텍스쳐를 캐시하는 것이다.
그러나 현재의 모든 3D 그래픽 컨트롤러는 텍스쳐 데이터를 시스템 메모리에서 읽어 들이기 위한 특정 하드웨어가 없는 형편이다. 이 문제를 해결하려면 결국 복잡한 소프트웨어 텍스쳐 로딩 방법 - 결국 중대한 퍼포먼스 손실을 야기하는- 에 의존해야 하며 이것은 메인 메모리를 비롯한 보드 상의 텍스쳐 영역과 프레임 버퍼 등으로부터 계속적으로 텍스쳐 데이터를 이동시켜야 한다는 이차적인 문제를 발생시킨다. 게다가 메인 메모리의 불연속적인 구조는 큰 텍스쳐를 더 작은 여러 개의 텍스쳐로 나누게 된다. 그러므로 화면이 디스플레이 되기 전에 텍스쳐가 연결되도록 추가적인 소프트웨어 캐시 작업이 필요하며 이러한 일련의 작업은 3D 게임의 속도를 받아들일 수 없을 정도로 떨어 뜨렸다.
시러스 로직은 특별한 텍스쳐 관리 엔진으로 구성된 TextureJet 아키텍쳐를 제작했다. 라구나 3D에 포함되어 있는 이 아키텍쳐는 인텔이 미래의 3D 어플리케이션을 위해 만든 AGP와 유사한 구성을 가지고 있으며 주소 번역 테이블을 2차 1K 텍스쳐 캐시와 결합한 방식이다. 이로서 라구나 3D는 메인 시스템의 메모리이건 비디오 메모리이건 간에 모든 텍스쳐의 위치를 파악할 수 있다. 심지어 텍스쳐가 여러 곳에 분산되어 조각나 있더라도 데이터를 미리 읽어 들이고 텍스쳐를 완전한 형태로 실제 프레임 버퍼로 캐시 작업할 수 있다. 두개의 부가적인 캐시 단계를 제거하고 이러한 모든 동작을 하드웨어 적으로 수행하기 때문에 CPU는 추가적인 소프트웨어 캐시 명령에서 해방되어 어플리케이션의 수행에 전념할 수 있게 되었다.
텍스쳐 관리 엔진이 갖는 또 하나의 중요한 이점은 AGP 프로그래밍 모델이 라구나 3D에 존재한다는 사실이다. 이 프로그래밍 모델은 직접 AGP 시스템에 적용될 수 있다. 그러므로 시스템과 주변기기 제조회사는 AGP 코어 로직이 대중화되었을 때의 프로그래밍 모델의 이점과 시장 효과를 노릴 수 있다.
'컴, 하드웨어, IT' 카테고리의 다른 글
플래시 9 새로운 업데이트 9.0.115.0의 유용한 점 - 전체화면 가속 지원, H.264 MOV 파일 재생 가능 (0) | 2007.12.06 |
---|---|
사운드 용어 정리 (0) | 2007.12.06 |
OLPC (One Laptop Per Children) (0) | 2007.12.04 |