소프트웨어 렌더링

Software rendering
GPU가 없는 장치에서 실행되는 소프트웨어 렌더러.

소프트웨어 렌더링은 컴퓨터 소프트웨어를 통해 모델에서 이미지를 생성하는 과정입니다. 컴퓨터 그래픽 렌더링의 맥락에서 소프트웨어 렌더링은 그래픽 카드와 같은 그래픽 하드웨어 ASIC에 의존하지 않는 렌더링 프로세스를 말합니다. 렌더링은 전적으로 CPU에서 이루어집니다. (범용) CPU로 모든 것을 렌더링하는 것은 그래픽 하드웨어의 (제한된) 기능에 국한되지 않는다는 장점이 있지만, 단점은 동일한 속도를 얻기 위해서는 더 많은 트랜지스터가 필요하다는 것입니다.

렌더링은 건축, 시뮬레이터, 비디오 게임, 영화 및 텔레비전 시각 효과 및 디자인 시각화에 사용됩니다. 렌더링은 애니메이션 프로세스의 마지막 단계로 쉐이딩, 텍스처 매핑, 그림자, 반사 및 모션 블러와 같은 시각적 효과로 모델과 애니메이션에 최종적인 모습을 제공합니다.[1] 렌더링은 크게 실시간 렌더링(온라인 렌더링)과 사전 렌더링(오프라인 렌더링)의 두 가지 범주로 나눌 수 있습니다. 실시간 렌더링은 3D 컴퓨터 게임과 같이 장면을 상호작용적으로 렌더링하는 데 사용되며, 일반적으로 각 프레임은 몇 밀리초 안에 렌더링되어야 합니다. 오프라인 렌더링은 각 프레임이 완료되는 데 몇 시간 또는 며칠이 걸리거나 프로그래머가 복잡한 그래픽 코드를 디버깅하는 데 사용됩니다.

실시간 소프트웨어 렌더링

실시간 렌더링의 경우 성능에 중점을 둡니다. 최초의 텍스처 매핑된 PC용 실시간 소프트웨어 렌더러는 3D 기하학의 환상을 만들기 위해 많은 기술을 사용했습니다. (진정한 3D는 주로 비행 시뮬레이터에 사용되는 평면 또는 Gouraud 음영 다각형에 국한되었습니다.) 예를 들어, Ultima Underworld는 위아래, 기울어진 바닥, 그리고 방 위에 방을 보는 제한된 형태를 허용했지만, 모든 세부적인 물체에 대해서는 스프라이트에 의존했습니다. 이 게임에 사용되는 기술은 현재 2.5D로 분류됩니다.

현대의 3D 타이틀과 구조적으로 유사한 최초의 게임 중 하나는 데상트(Descent)로, 완전한 6DoF를 가능하게 했습니다. 데상트는 완전히 비트맵 질감의 삼각형 다각형으로 만들어진 3D 모델을 특징으로 했습니다. 또한 Delta Force와 같이 복셀 기반의 그래픽은 빠르고 비교적 세밀한 지형 렌더링으로 인기를 얻었지만, 인기 있는 고정 기능 하드웨어는 결국 사용을 불가능하게 만들었습니다. QuakeMichael AbrashJohn Carmack의 효율적인 소프트웨어 렌더러를 특징으로 합니다. 인기로 퀘이크와 그 당시의 다른 다각형 3D 게임들은 그래픽 카드의 판매를 도왔고, 더 많은 게임들이 DirectXOpenGL과 같은 하드웨어 API를 사용하기 시작했습니다. 비록 소프트웨어 렌더링이 주요 렌더링 기술로 떨어져 나갔지만, 2000년대까지 많은 게임들은 여전히 소프트웨어 렌더러를 폴백으로 가지고 있었습니다. 예를 들어, 언리얼 언리얼 토너먼트는 소프트웨어 렌더러가 그 시기의 CPU에서 즐거운 품질과 성능을 제공할 수 있는 기능을 갖추고 있습니다. 하드웨어 렌더러가 없는 마지막 AAA 게임 중 하나는 아웃캐스트로 고급 복셀 기술뿐만 아니라 그래픽 하드웨어에서 볼 수 있는 텍스처 필터링범프 매핑도 특징입니다.

비디오 게임 콘솔아케이드 게임 시장에서 3D의 진화는 더욱 갑작스러웠습니다. 그들은 항상 단일 목적 칩셋에 크게 의존해 왔기 때문입니다. 16비트 콘솔은 맞춤형 명령어 세트를 통해 소프트웨어 렌더링을 구현한 스타폭스버츄아 레이싱과 같은 게임에서 RISC 가속기 카트리지를 얻었습니다. Jaguar3DO는 3D 하드웨어를 탑재한 최초의 콘솔이었지만, 플레이스테이션이 되어서야 이러한 기능이 대부분의 게임에 사용되었습니다.

1990년대 후반에서 2000년대 초반 사이에 어린이와 캐주얼 게이머를 위한 게임(주로 오피스 애플리케이션을 위한 구식 시스템 또는 시스템을 사용하는)은 일반적으로 소프트웨어 렌더러를 폴백으로 사용했습니다. 예를 들어, 토이 스토리 2: 버즈 라이트이어 투 더 레스큐(Buzz Lightyear to the Rescue)는 게임을 플레이하기 전에 하드웨어 또는 소프트웨어 렌더링을 선택할 수 있는 반면, 다른 것들은 하프라이프 기본 소프트웨어 모드를 좋아하고 옵션 메뉴에서 OpenGL 또는 DirectX를 사용하도록 조정할 수 있습니다. 일부 3D 모델링 소프트웨어에는 시각화를 위한 소프트웨어 렌더러도 있습니다. 그리고 마지막으로 하드웨어의 에뮬레이션과 검증에는 소프트웨어 렌더러도 필요합니다. 후자의 예로는 Direct3D 참조 래스터라이저가 있습니다.

하지만 고사양 그래픽에도 소프트웨어 렌더링의 '예술'이 완전히 사라진 것은 아닙니다. 초기 그래픽 카드는 소프트웨어 렌더보다 훨씬 빠르고 원래 더 나은 품질과 더 많은 기능을 가지고 있었지만 개발자는 '고정 기능' 픽셀 처리로 제한했습니다. 게임의 외관을 다양화해야 할 필요성이 빠르게 대두되었습니다. 임의의 프로그램을 실행하기 때문에 소프트웨어 렌더링에는 제한이 없습니다. 그래서 그래픽 카드는 쉐이더라고도 알려진 버텍스 단위와 픽셀/파그먼트 단위의 작은 프로그램을 실행함으로써 이 프로그램 기능을 다시 도입했습니다. DirectX용 HLSL(High Level Shader Language) 또는 OpenGL Shading Language(GLSL)와 같은 셰이더 언어는 셰이더를 위한 C와 유사한 프로그래밍 언어이며 (임의 기능) 소프트웨어 렌더링과 유사성을 보이기 시작합니다.

그래픽 하드웨어를 실시간 렌더링의 주요 수단으로 채택한 이후 CPU 성능은 그 어느 때보다 꾸준히 성장했습니다. 이를 통해 새로운 소프트웨어 렌더링 기술이 등장할 수 있었습니다. 대부분 하드웨어 렌더링의 성능에 가려져 있지만, 일부 현대 실시간 소프트웨어 렌더러는 전문 동적 컴파일SSE와 같은 고급 명령어 세트 확장을 사용하여 광범위한 기능 세트와 합리적인 성능을 결합할 수 있습니다. 오늘날 소프트웨어 렌더링에 대한 하드웨어 렌더링의 우위는 타의 추종을 불허하는 성능, 기능 및 지속적인 혁신으로 인해 논란의 여지가 없지만, 일부에서는 CPU와 GPU가 어떤 식으로든 융합되어 소프트웨어와 하드웨어 렌더링 사이의 경계가 희미해질 것이라고 믿고 있습니다.[2]

소프트웨어 폴백

하드웨어 고장, 드라이버 고장, 에뮬레이션, 품질 보증, 소프트웨어 프로그래밍, 하드웨어 설계 및 하드웨어 제한과 같은 다양한 이유로 인해 CPU가 그래픽 파이프라인의 일부 또는 모든 기능을 가정하도록 하는 것이 유용할 수 있습니다.

따라서 기존의 하드웨어 그래픽 가속기를 대체하거나 확장할 수 있는 여러 범용 소프트웨어 패키지가 있습니다.

  • RAD Game Tools의 Pixomatic은 D3D 7-9 클라이언트 소프트웨어 내부의 정적 링크를 위한 미들웨어로 판매됩니다.
  • SwiftShader, 미들웨어로 판매되는 라이브러리로 D3D9 & OpenGL ES 2 클라이언트 소프트웨어와 함께 번들링하기 위한 것입니다.
  • 메사 내부의 스와스트, 소프트 파이프 및 LLVM 파이프 렌더러는 OpenGL 1.4–3.2 하드웨어 장치를 에뮬레이션하기 위해 시스템 레벨에서 심으로 작동합니다.
  • WARP는 시스템 수준에서 작동하여 빠른 D3D 9.1 이상의 에뮬레이션을 제공하는 Microsoft의 Windows Vista 이후부터 제공됩니다. 이것은 마이크로소프트가 개발자들에게 항상 제공해온 매우 느린 소프트웨어 기반 레퍼런스 래스터라이저와 더불어 추가된 것입니다.
  • 애플이 맥 OS X에서 제공하는 CGL의 애플 소프트웨어 렌더러는 빠른 OpenGL 1.1~4.1 에뮬레이션을 제공하기 위해 시스템 수준에서 작동합니다.
  • OpenGL은 그래픽 카드에서 기능을 지원하지 않는 경우 소프트웨어 렌더링을 사용합니다.

사전렌더링

실시간 렌더링과 달리 사전 렌더링에서는 성능이 2순위에 불과합니다. 주로 영화 산업에서 실제와 같은 장면의 고품질 렌더링을 만드는 데 사용됩니다. 오늘날 영화의 많은 특수 효과들은 전적으로 혹은 부분적으로 컴퓨터 그래픽에 의해 만들어집니다. 예를 들어, 피터 잭슨 반지의 제왕 영화에서 골룸의 캐릭터는 완전히 컴퓨터로 생성된 이미지입니다. 애니메이션 영화의 경우에도 CGI가 인기를 얻고 있습니다. 가장 주목할 만한 것은 픽사는 토이 스토리니모찾아서와 블렌더 재단이 세계 최초로 개봉한 영화 엘리펀츠 드림과 같은 시리즈를 제작했습니다.

매우 높은 품질과 다양한 효과가 필요하기 때문에 오프라인 렌더링에는 많은 유연성이 필요합니다. 상업용 실시간 그래픽 하드웨어의 품질이 날로 높아지고 프로그래밍이 가능해지고 있지만, 대부분의 사진 현실적인 CGI는 여전히 소프트웨어 렌더링을 필요로 합니다. 예를 들어 픽사의 RenderMan은 범용 프로세서를 요구하는 무제한의 길이와 복잡성을 가진 쉐이더를 허용합니다. 광선 추적전역 조명과 같은 높은 사실성을 위한 기술은 본질적으로 하드웨어 구현에 적합하지 않으며 대부분의 경우 순수하게 소프트웨어로 실현됩니다.

참고 항목

참고문헌

  1. ^ "LIVE Design - Interactive Visualizations Autodesk". Archived from the original on February 21, 2014. Retrieved 2016-08-20.
  2. ^ Valich, Theo (2012-12-13). "Tim Sweeney, Part 2: "DirectX 10 is the last relevant graphics API" TG Daily". TG Daily. Archived from the original on March 4, 2016. Retrieved 2016-11-07.