실시간 컴퓨터 그래픽스
Real-time computer graphics3차원(3D) 컴퓨터 그래픽스 |
---|
기초 |
주요 용도 |
관련 토픽 |


실시간 컴퓨터 그래픽스 또는 실시간 렌더링은 이미지를 실시간으로 생성하고 분석하는 데 초점을 맞춘 컴퓨터 그래픽의 하위 분야입니다.이 용어는 응용 프로그램의 그래픽 사용자 인터페이스(GUI) 렌더링부터 실시간 이미지 분석까지 모든 것을 나타낼 수 있지만 일반적으로 그래픽 처리 장치(GPU)를 사용하는 대화형 3D 컴퓨터 그래픽에 가장 많이 사용됩니다.이 개념의 한 예는 변화하는 3D 환경을 빠르게 렌더링하여 모션의 착각을 만들어내는 비디오 게임입니다.
컴퓨터는 발명 이후 심플한 선, 이미지, 폴리곤과 같은 2D 이미지를 실시간으로 생성할 수 있게 되었다.그러나 기존의 Von Neumann 아키텍처 기반 시스템에서는 세부 3D 객체를 신속하게 렌더링하는 것이 쉽지 않은 작업입니다.이 문제에 대한 초기 해결 방법은 3D 그래픽을 모방할 수 있는 스프라이트, 2D 이미지를 사용하는 것이었습니다.
현재 레이트레이싱 및 래스터라이제이션과 같은 다양한 렌더링 기술이 존재합니다.이러한 테크놀로지와 고도의 하드웨어를 사용하면, 컴퓨터는 유저의 입력을 동시에 받아들이면서, 움직임의 착각을 일으키기에 충분한 속도로 화상을 렌더링할 수 있습니다.즉, 사용자는 렌더링된 이미지에 실시간으로 응답하여 대화식 환경을 생성할 수 있습니다.
실시간 3D 컴퓨터 그래픽스의 원리
컴퓨터 그래픽스의 목적은 특정 원하는 메트릭을 사용하여 컴퓨터로 생성된 이미지 또는 프레임을 생성하는 것입니다.이러한 메트릭의 1개는 1초 동안 생성된 프레임 수입니다.실시간 컴퓨터 그래픽 시스템은 비실시간 그래픽스가 일반적으로 레이 트레이스에 의존한다는 점에서 기존의 (비실시간) 렌더링 시스템과 다릅니다.이 프로세스에서는, 상세한 렌더링을 실시하기 위해서, 수백만, 또는 수십억 개의 광선이 카메라로부터 세계로 트레이스 됩니다.이렇게 고액의 작업을 실시하면, 1개의 프레임을 렌더링하는 데 몇시간 또는 며칠이 걸릴 수 있습니다.

실시간 그래픽 시스템은 각 이미지를 1/30초 이내에 렌더링해야 합니다.이러한 시스템에서는 레이 트레이스가 너무 느립니다.대신 z 버퍼 삼각 래스터라이제이션 기술을 사용합니다.이 기술에서는 모든 개체가 개별 원시 요소(일반적으로 삼각형)로 분해됩니다.각 삼각형은 화면에서 배치, 회전 및 축척되며 래스터라이저 하드웨어(또는 소프트웨어 에뮬레이터)는 각 삼각형 내부에 픽셀을 생성합니다.그런 다음 이러한 삼각형은 디스플레이 화면에 표시하기에 적합한 조각이라고 불리는 원자 단위로 분해됩니다.조각은 여러 단계로 계산된 색상을 사용하여 화면에 그려집니다.예를 들어 텍스처를 사용하여 저장된 이미지를 기반으로 삼각형을 "도색"한 다음 섀도 매핑을 통해 해당 삼각형의 색상을 광원에 대한 가시선에 따라 변경할 수 있습니다.
비디오 게임 그래픽스
실시간 그래픽스는 시간과 하드웨어의 제약에 따라 이미지 품질을 최적화합니다.GPU 및 기타 진보는 실시간 그래픽스의 화질을 향상시켰습니다.GPU는 프레임당 수백만 개의 삼각형을 처리할 수 있으며, 현재의[when?] DirectX 11/OpenGL 4.x 클래스 하드웨어는 섀도우 볼륨, 모션 블러링, 삼각형 생성 등 복잡한 효과를 실시간으로 생성할 수 있습니다.실시간 그래픽의 진보는 실제 게임 플레이 그래픽과 비디오 [1]게임에서 전통적으로 볼 수 있는 사전 렌더링 컷씬 사이의 점진적인 개선으로 입증됩니다.컷신은 일반적으로 실시간으로 렌더링되며 인터랙티브할 [2]수 있습니다.리얼타임 그래픽스와 종래의 오프라인 그래픽스의 품질 차이는 좁혀지고 있습니다만, 오프라인 렌더링의 정밀도는 한층 더 높아지고 있습니다.
이점

실시간 그래픽은 일반적으로 인터랙티브(예: 플레이어 피드백)가 중요한 경우에 사용됩니다.영화에 실시간 그래픽을 사용할 경우 감독은 각 프레임에 그려야 하는 것을 완전히 제어할 수 있으며, 이는 때때로 긴 의사결정을 수반할 수 있습니다.팀원들로 구성된 팀이 이러한 결정을 내리는 데 일반적으로 관여합니다.
실시간 컴퓨터 그래픽스에서 사용자는 일반적으로 입력 장치를 조작하여 디스플레이에 그려지는 것에 영향을 줍니다.예를 들어 사용자가 화면에서 캐릭터를 이동하려고 할 때 시스템은 다음 프레임을 그리기 전에 캐릭터의 위치를 업데이트합니다.일반적으로 디스플레이의 응답 시간은 입력 장치보다 훨씬 느리다. 이는 인간의 움직임의 (빠른) 응답 시간과 인간 시각 시스템의 (느린) 투시 속도 사이의 엄청난 차이로 정당화된다.이러한 차이는 다른 효과도 있다: 입력 장치는 인간의 동작 응답을 따라잡기 위해 매우 빨라야 하기 때문에 입력 장치(예: 현재의[when?] Wii 리모컨)의 진보는 일반적으로 디스플레이 장치의 진보를 능가하는 것보다 훨씬 더 오래 걸린다.
실시간 컴퓨터 그래픽을 제어하는 또 다른 중요한 요소는 물리학과 애니메이션의 조합입니다.이러한 기술은 주로 화면에 무엇을 그릴지, 특히 장면에서 물체를 그릴 위치를 결정합니다.이러한 기술은 실제 세계의 행동(공간적 차원이 아닌 시간적 차원)을 사실적으로 모방하는 데 도움이 되며, 컴퓨터 그래픽의 사실성을 더합니다.
특히 조명 효과를 조정할 때 그래픽 소프트웨어를 사용하여 실시간 미리 보기를 통해 작업 [3]속도를 높일 수 있습니다.프랙탈 생성 소프트웨어의 일부 파라미터는 영상의 변경을 실시간으로 보면서 조정할 수 있습니다.
렌더링 파이프라인

그래픽스 렌더링 파이프라인("파이프라인 렌더링")은 실시간 [4]그래픽스의 기반입니다.가상 카메라와 관련된 2차원 이미지, 3차원 객체(폭, 길이, 깊이를 가진 객체), 광원, 조명 모델, 텍스처 등을 렌더링하는 것이 주요 기능이다.
아키텍처
실시간 렌더링 파이프라인의 아키텍처는 애플리케이션, 지오메트리 및 래스터라이제이션의 개념 단계로 나눌 수 있습니다.
응용 프로그램 단계
애플리케이션 단계는 2D 디스플레이에 그려진 "씬(scene)" 또는 3D 설정을 생성하는 역할을 합니다.이 단계는 개발자가 성능을 최적화한 소프트웨어에서 구현됩니다.이 단계에서는 사용자 입력 처리 외에 충돌 감지, 속도 향상 기술, 애니메이션 및 힘 피드백 등의 처리를 수행할 수 있습니다.
충돌 검출은 응용 프로그램 단계에서 수행되는 작업의 예입니다.충돌 검출에서는 알고리즘을 사용하여 (가상) 객체 간의 충돌을 검출하고 응답합니다.예를 들어 어플리케이션은 충돌하는 물체의 새로운 위치를 계산하여 진동 게임 컨트롤러 등의 힘 피드백 장치를 통해 피드백을 제공할 수 있다.
애플리케이션 스테이지에서는, 다음 스테이지의 그래픽 데이터도 준비합니다.여기에는 텍스처 애니메이션, 3D 모델의 애니메이션, 변환을 통한 애니메이션, 지오메트리 모핑 등이 포함됩니다.마지막으로 장면 정보를 기반으로 원시 요소(점, 선 및 삼각형)를 생성하고 이러한 원시 요소를 파이프라인의 지오메트리 단계에 공급합니다.
지오메트리 스테이지
지오메트리 단계는 폴리곤과 정점을 조작하여 그릴 항목, 그릴 방법 및 그릴 위치를 계산합니다.통상, 이러한 조작은 전문 하드웨어 또는 GPU에 의해서 [5]실행됩니다.그래픽 하드웨어 간의 변화는 "기하학 단계"가 실제로 연속된 여러 단계로 구현될 수 있음을 의미합니다.
모델 및 뷰 변환
출력 장치에 최종 모델이 표시되기 전에 모델이 여러 공간 또는 좌표계로 변환됩니다.변환은 정점을 변경하여 객체를 이동 및 조작합니다.변환은 점, 선 또는 형상의 모양 또는 위치를 조작하는 네 가지 특정 방법을 가리키는 일반적인 용어입니다.
조명.
모델에 보다 사실적인 외관을 제공하기 위해 일반적으로 변환 중에 하나 이상의 광원이 설정됩니다.그러나 먼저 3D 장면을 뷰 공간으로 변환하지 않고는 이 단계에 도달할 수 없습니다.시야 공간에서 관찰자(카메라)는 일반적으로 원점에 배치됩니다.오른손 좌표계(표준으로 간주)를 사용하는 경우 관찰자는 y축이 위쪽을 가리키고 x축이 오른쪽을 가리키며 음의 z축 방향을 봅니다.
투영
투영은 2D 공간에서 3D 모델을 표현하는 데 사용되는 변환입니다.투영의 두 가지 주요 유형은 평행 투영(Parallel이라고도 함)과 투시 투영입니다.맞춤법 투영법의 주요 특징은 변환 후에도 평행선이 평행하게 유지된다는 것입니다.투시 투영에서는 관찰자와 모형 사이의 거리가 커지면 모형이 전보다 작아 보인다는 개념을 사용합니다.본질적으로, 투시 투영법은 인간의 시력을 모방합니다.
클리핑
클리핑은 래스터라이저 단계를 용이하게 하기 위해 보기 상자 외부에 있는 프리미티브를 삭제하는 프로세스입니다.이러한 기본 요소가 제거되면 남은 기본 요소는 다음 단계에 도달하는 새 삼각형으로 그려집니다.
화면 매핑
화면 매핑의 목적은 클리핑 단계에서 원형의 좌표를 찾는 것입니다.
래스터라이저 단계
래스터라이저 단계는 색상을 적용하고 그래픽 요소를 픽셀 또는 그림 요소로 변환합니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Spraul, V. Anton (2013). How Software Works: The Magic Behind Encryption, CGI, Search Engines and Other Everyday Technologies. No Starch Press. p. 86. ISBN 1593276664. Retrieved 24 September 2017.
- ^ Wolf, Mark J. P. (2008). The Video Game Explosion: A History from PONG to Playstation and Beyond. ABC-CLIO. p. 86. ISBN 9780313338687. Retrieved 24 September 2017.
- ^ Birn, Jeremy (2013). Digital Lighting and Rendering: Edition 3. New Riders. p. 442. ISBN 9780133439175. Retrieved 24 September 2017.
- ^ Akenine-Möller, Tomas; Eric Haines; Naty Hoffman (2008). Real-Time Rendering, Third Edition: Edition 3. CRC Press. p. 11. ISBN 9781439865293. Retrieved 22 September 2017.
- ^ Boresko, Alexey; Evgeniy Shikin (2013). Computer Graphics: From Pixels to Programmable Graphics Hardware. CRC Press. p. 5. ISBN 9781482215571. Retrieved 22 September 2017.[데드링크]
참고 문헌
- Möller, Tomas; Haines, Eric (1999). Real-Time Rendering (1st ed.). Natick, MA: A K Peters, Ltd.
- Salvator, Dave (21 June 2001). "3D Pipeline". Extremetech.com. Extreme Tech. Archived from the original on 17 May 2008. Retrieved 2 Feb 2007.
- Malhotra, Priya (July 2002). Issues involved in Real-Time Rendering of Virtual Environments (Master's). Blacksburg, VA: Virginia Tech. pp. 20–31. Retrieved 31 January 2007.
- Haines, Eric (1 February 2007). "Real-Time Rendering Resources". Retrieved 12 Feb 2007.
외부 링크
- RTR 포털– 자원에 대한 "최적의" 링크 세트 축소