3D 렌더링이란?
렌더링은 다른 말로 이미지 합성이라고도 하는데 컴퓨터 프로그램을 사용하여 모델 또는 이들을 모아놓은 장면인 장면
파일로부터 영상을 만들어내는 과정을 말합니다. 하나의 장면 파일에는 정확하게 정의된 언어나 자료 구조로 이루어진 개체들이 있는데 가상의 장면을 표현하는 시점, 텍스쳐 매칭, 셰이딩, 도형의 배열, 조명 정보가 포함될 수 있습니다.
3D 렌더링에서 GPU는 무엇인가
GPU는 중앙 처리 장치가 복잡한 렌더링 계산을 수행할 때 도움을 주도록 만들어진 장치인데 하나의 장면이 가상의 조명 아래에서 비교적 리얼리티하고 예측이 가능한 상태로 보인다면 다음으로 렌더링 소프트웨어는 렌더링 계산을 수행해야 합니다. 장면 파일에 포함된 자료들은 렌더링 프로그램에서 처리되어 결과물로서 디지털 이미지, 래스터 그래픽스 이미지 파일을 만들어 낼 수 있습니다. 렌더링은 마지막 비디오 출력물을 만들어내기 위해 영상 편집 파일의 효과를 계산하는 과정을 지칭하는 데 쓰이기도 합니다. 렌더링은 시뮬레이터, 디자인 시각화, 영화, 비디오 게임, 텔레비전 특수효과에서 사용되며 분야마다 서로 다른 기능과 기술을 이용합니다. 어떠한 프로그램들은 대형 모델링, 애니메이션 패키지를 만드는데 통합되며 어떠한 것들은 독립형 제품이고 또 어떠한 것들은 자유 소스 프로젝트에 속해있다고 합니다. 렌더링 계산은 모든 조명 효과를 계산하지는 않으며, 컴퓨터에서 만들어진 비유적 조명을 계산합니다.
삼차원 컴퓨터 그래픽의 주된 부차적 논제들 가운데 하나이며 현실적으로 렌더링과 다른 논제들과도 연결됩니다. 렌더링은 애니메이션과 모델에 최종 모습을 제공하는 마지막 단계입니다. 이러한 컴퓨터 그래픽이 점차 복잡하게 변하게 된 시기는 1970년에 이후로부터 렌더링이 더욱더 다양해지는 추세입니다. 삼차원 그래픽의 경우 렌더링은 미리 렌더링하거나 실시간으로 처리하기 때문에 완성에 이르기까지 처리 시간이 길 수 있는데 미리 렌더링이라는 것은 많은 계산이 필요한 무거운 과정이며 일반적으로 영화 제작에 이용됩니다. 반면에 삼차원 하드웨어 가속기를 갖춘 그래픽 카드에 의지하여 3차원 비디오 게임에는 실시간 렌더링을 활용할 수 있습니다.
셰이드
셰이드는 소프트웨어 명령의 집합으로 주로 그래픽 하드웨어의 렌더링 효과를 계산하는 데 쓰이며, 그래픽 처리 장치의 프로그램이 가능한 렌더링 파이프라인을 프로그래밍하는데도 쓰입니다. 단순한 광원 모델을 떠나서 더 복잡한 이용에는 영상의 대비, 채도, 밝기, 색조를 변경하는 일과, 번짐, 입체 광원, 심도 효과를 위한 노멀 매핑, 보케, 셀 셰이딩, 왜곡, 테두리 검출, 모션 감지, 사이키델리아 효과 제작 등에 포함됩니다. 셰이드는 그래픽 처리 장치가 발전하면서 OpenGL이나 Direct3D와 같은 주요 그래픽 소프트웨어 라이브러리들이 셰이드를 지원하기 시작하였는데, 최초의 그래픽 처리 장치는 픽셀 셰이딩만 지원했습니다. 여기서 픽셀이란 화면을 구성하는 가장 가본이 되는 단위로 픽셀 또는 화소라고 불리기도 합니다. OpenGL은 오픈 그래픽 라이브러리라고 불리는데 실리콘 스래픽스사에서 만든 2차원 및 3차원 그래픽스 표준 API를 규격으로 하며, 프로그램 언어 간 플랫폼 간의 교차 응용 프로그래밍을 지원합니다. 현재 캐드, 가상현실, 비행 시뮬레이션, 정보 시각화 등의 분야에서 활용하고 있으며, 컴퓨터 게임 분야에서도 널리 사용되고 있습니다. Direct3D와 달리, 표준안 자체는 여러 관련 업체의 토론과 제안으로 이루어져 업데이트가 늦어지는 부분이 있습니다. Direct3D는 삼차원 그래픽 연산과 출력을 담당하는 부분으로 이와 비슷한 역할을 하는 것은 오픈 그래픽 라이브러리가 있으며 비슷한 역할이지만 각자가 서로 다른 장단점을 가지고 있습니다. 픽셀 셰이드는 렌더링의 될 각각의 픽셀들의 색을 계산하는데 최종적으로 픽셀이 어떻게 보일지를 결정할 수 있습니다. 각각의 픽셀들이 수행되기 때문에, 다른 픽셀들과 아무런 연관이 없으며 오직 한 픽셀만을 연산하기 때문에, 주변의 픽셀이나, 그리는 도형에 대한 정도를 알 수 없습니다. 이러한 부분은 픽셀 셰이드 스스로가 매우 복잡한 효과를 낼 수 없게 만듭니다. 보통 픽셀 셰이드는 언제나 같은 색을 출력하는 간단한 일에서부터 텍스처로부터 색을 읽어오거나, 빛을 적용하는 것 투명 처리, 반사광, 그림자, 점포매핑 등 복잡한 현상 등을 수행할 수 있습니다. 기하학적 셰이드는 버텍스 셰이드에서는 할 수 없는 선, 삼각형, 점을 이용하여 도형을 생성할 수 있는 기능이 있는데 보통 버텍스 셰이드가 수행되고 난 후에 수행이 됩니다. 그러면 여기서 말하는 버텍스 셰이드란 무엇인가 하면 주로 물체의 정점 정보에 수학적인 연산을 함으로써 물체에 특별한 효과를 주는 데 쓰이는데 각각의 정점이 정의되는 방법은 여러 가지가 있습니다. 예를 들어 정점의 정보 값을 변화시켜서, 물체를 특별한 위치로 옮기거나, 텍스처를 바꾸거나, 색상을 바꾸는 등의 일을 할 수 있지만 새로운 정점을 추가하거나 기존의 정점을 지우는 작업 같은 경우는 할 수 없습니다. 기하학적 셰이드 프로그램은 버텍스 셰이드를 거쳐온 도형 정보를 입력받는데, 예를 들어 정점 3개가 기하학적 셰이드에 들어오면, 셰이드는 정점으로 모두 없앨 수 있고 더 많은 도형을 만들어 내보낼 수도 있습니다. 이 셰이드의 경우 테셀레이션이나 그림자 효과, 큐브 맵을 한 번의 처리로 렌더링하는 데에 주로 쓰입니다. 기하학적 셰이드를 지나간 도형 정보는 레스터라 주는 거친 뒤 픽셀 셰이드를 통화하게 됩니다.
'3D Program' 카테고리의 다른 글
색채학, 여러가지 대비의 종류 (2) | 2022.09.10 |
---|---|
색채학, 주요명칭에 대해 알아보기 (0) | 2022.09.08 |
3D프로그램 렌더링, 테셀레이션이란? (0) | 2022.09.08 |
[3D] 프린터운용기능사 필기 정리-두번째 (0) | 2022.09.06 |
[3D]프린터운용기능사 필기 정리-첫번째 (0) | 2022.09.02 |