3D Rendering 21

DC

WinAPI의 DC(Device Context)는 그래픽 출력 및 장치와의 상호작용을 위한 중요한 개념입니다. DC는 Windows의 GDI(Graphics Device Interface)에서 화면, 프린터, 메모리 비트맵 등 그래픽 출력 장치와 통신하는 데 사용되는 구조체입니다. DC는 그래픽 객체 및 그들의 속성, 그리고 출력 설정을 포함합니다.화면 출력에 필요한 모든 정보를 가지는 데이터 구조, GDI 모듈에 의해서 관리된다.DC의 주요 특징그래픽 출력 대상 관리DC는 출력 장치(화면, 프린터, 메모리)를 지정하고, 해당 장치로 그래픽을 그릴 때 사용하는 매개체입니다.속성 및 상태 저장DC는 색상, 브러시, 펜, 폰트, 배경 색상 등과 같은 그래픽 속성을 저장합니다. 이러한 속성을 설정하고, GDI..

3D Rendering 2024.12.31

Forward vs Deferred

1. Forward 렌더링: 객체 단위로 조명 연산Forward 렌더링에서는 각 **객체(Object)**를 그릴 때마다 해당 픽셀에 영향을 주는 모든 조명을 한 번에 계산합니다. 즉:각 오브젝트(메시)를 Draw Call 단위로 그립니다.각 픽셀에서 모든 조명을 계산합니다. (여러 조명이 있는 경우, 각 픽셀에서 반복적으로 조명 연산이 발생)조명 연산 갯수의 증가 이유Forward 렌더링은 객체 단위로 조명을 처리하기 때문에 다음과 같은 문제가 발생합니다:여러 조명이 하나의 객체에 동시에 영향을 미치는 경우, 각 픽셀마다 조명 계산이 중첩됩니다.조명의 수가 증가하면 라이팅 연산이 선형적으로 증가합니다.화면에 보이지 않는 픽셀까지도 조명 연산이 수행될 수 있어 낭비가 심합니다.Forward 렌더링의 라이..

3D Rendering 2024.12.17

오쿨루전 텍스쳐

오쿨루젼 텍스처(Occlusion Texture)"는 그래픽스 및 컴퓨터 그래픽스에서 사용되는 텍스처의 일종. 이 텍스처는 주로 오쿨루젼 매핑(Occlusion Mapping) 기술에서 사용되며, 그림자와 조명 효과를 시뮬레이션하거나 표현하기 위해 활용된다. 오쿨루젼 매핑 (Occlusion Mapping): 오쿨루젼 매핑은 그림자 및 조명 효과를 시뮬레이션하기 위해 사용되는 기술 중 하나입니다. 이 기술은 빛이 특정 지점에서 얼마나 차단되었는지를 나타내는 텍스처를 사용하여 그림자와 그림자에 영향을 주는 오브젝트들을 렌더링하는 데 활용됩니다. 오쿨루젼 텍스처 (Occlusion Texture): 오쿨루젼 텍스처는 오쿨루젼 매핑을 지원하기 위해 사용되는 이미지 또는 텍스처입니다. 이 텍스처는 주로 흑백 또..

3D Rendering 2023.10.04

알베도 텍스쳐

알베도 텍스처(Albedo Texture)는 그래픽스 및 컴퓨터 그래픽스에서 사용되는 텍스처의 한 종류. 알베도는 표면의 색상 및 반사율을 나타내며, 객체나 재질의 기본 색상이나 표면 특성을 나타내는 데 주로 사용된다. 1) 색상 및 반사율 정보: 알베도 텍스처는 픽셀 단위로 표면의 기본 색상을 저장합니다. 이것은 물체의 빛에 대한 반사율을 결정하는 데 중요한 역할을 합니다. 더 어두운 픽셀은 빛을 덜 반사하고 더 밝은 픽셀은 더 많은 빛을 반사합니다. 2) 재질 및 표면 특성 표현: 알베도 텍스처는 물체의 재질과 표면 특성을 표현하는 데 사용됩니다. 예를 들어, 나무, 돌, 금속 등 다양한 물체의 표면을 모방하기 위해 알베도 텍스처가 사용됩니다. 3) 빛과의 상호 작용: 알베도 텍스처는 물체가 주변 조..

3D Rendering 2023.10.04

텍스쳐 포맷과 픽셀 포맷

텍스쳐 포맷과 픽셀 포맷 텍스처 포맷 (Texture Format): 텍스처 포맷은 그래픽 텍스처의 데이터 구조와 저장 방식을 나타내는 것입니다. 텍스처 포맷은 주로 그래픽 카드 및 그래픽 API와 관련이 있으며, 텍스처 데이터를 어떻게 저장하고 압축하는지를 지정합니다. 예를 들어, DXT1, DXT5, ETC1, ASTC 등은 다양한 텍스처 포맷의 예시입니다. 이러한 포맷은 압축률, 품질, 투명도 처리 등에 대한 다른 기능을 제공하며 특정 하드웨어 및 플랫폼에서 지원됩니다. 텍스처 포맷은 주로 그래픽 엔진 개발자 및 게임 개발자와 같은 프로그래머들이 다룹니다. 픽셀 포맷 (Pixel Format): 픽셀 포맷은 이미지의 각 픽셀을 표현하는 방식을 나타냅니다. 이것은 이미지 데이터의 컬러 및 알파 채널 ..

3D Rendering 2023.10.04

텍스쳐 압축

1. BMP BMP 파일 포맷은 비트맵 디지털 그림을 저장하는 데 쓰이는 그림 파일 포맷이다 BMP는 말그대로 Bit 들의 Map이고, 오래된 이미지 포맷이다. 압축을 전혀 하지 않기 때문에 BMP로 저장하면 매우 큰 사이즈로 저장이 된다. BMP는 Indexed color, Direct color 속성을 가지고 있다. 그러나 파일 사이즈가 불필요하게 커서 이 포맷은 많이 사용되지 않지만 디코딩 할 것이 별로 없어 속도가 빠르다는 장점이 있다. 기본적으로 1~24비트의 색을 표현할 수 있다. 1비트는 2가지 색이며 24비트는 16777216가지 색이다. 알파 채널을 포함한 32비트 포맷이 윈도 XP에서 발표되었다. 일반적으로 데이터를 압축하지 않고 사용되지만, RLE 압축 방식도 지원한다. 장점 : 처리..

3D Rendering 2023.10.04

메모리

PC에서는 CPU에 할당된 메모리를 초과한 메모리를 사용해야할 경우 하드디스크나 SSD에서 가상메모리를 만들어 사용하는데 GPU에서 할당된 메모리를 초과한 메모리를 요구할 경우 CPU의 메모리를 사용하게 된다. 이를 스왑페이지라고 한다. 모바일에서는 단일칩 체제로 CPU와 GPU 메모리의 구분이 없다. 따라서 PC에서 가능했던 상대메모리를 끌어와쓰는 행위를 할 수 없다. 모바일에서의 스왑페이지는 하드디스크의 영역을 사용하게 아니라 메모리의 일부를 스왑페이지 용으로 할당하여 여러 앱들이 해당 메모리를 공유하여 사용할 수 있도록 한다. 따라서 모바일에서는 PC에서와 같은 스왑페이지를 사용하지 못하기 때문에 메모리 크기를 넘어서는 용량을 사용할 수 없다.

3D Rendering 2023.09.29

Drawcall

출처: https://tsyang.tistory.com/79 드로우콜(Draw Call)드로우콜 CPU는 현재 프레임에 어떤 것을 그려야 할지 정하고, GPU에 오브젝트를 그리라고 명령을 호출하는데 이 명령이 바로 드로우 콜(Draw Call)이다. 게임의 오브젝트를 화면에 렌더링하려면 우tsyang.tistory.com CPU가 GPU에게 물체의 렌더링을 요청하는 행위.  CPU와  GPU는 병렬적으로 동작하고 CPU가 GPU에 명령할 것이 생긴다면 Command Buffer에 명령을 넣어준 뒤 작업을 이어나가고 GPU는 Command Buffe를 확인하여 명령을 수행한다. CPU가 명령을 내릴 때 작업을 멈추고 지시 후 복귀하는 등의 과정이 없이 둘은 병렬적으로 지속적으로 동작을 수행하고 있다는 점이..

3D Rendering 2023.09.29

Light map

카메라를 기준으로 픽셀의 깊이를 기록한 Map. 텍스쳐의 형태로 저장된다. 라이트맵은 3D CG에서 빛의 방향과 세기에 따라 생성되는 빛을 받는 오브젝트의 그림자, 반사면, 면의 밝기 차이 등의 라이팅 정보를 사전에 저장하는 텍스쳐를 뜻한다. 플레이어가 바라보는 시야 및 씬의 환경 배치, 광원의 수와 조도 등에 따라서 화면에 출력되는 빛은 시시각각 다르게 보여지게 되며 이를 시각적으로 처리하는 연산에는 빛의 입자 정보를 일일이 따져보아야 하는 상당한 부하가 수반된다. 게임같은 경우, 빛을 계산하는 것이 콘텐츠의 전부가 아니기 때문에 라이팅에서 컴퓨팅 비용을 많이 사용하게 되면 게임플레이 코드 처리나 물리 연산 등에서 활용할 수 있는 자원이 줄어든다. 때문에 최대한 효율적으로 빛을 처리하고 다른 부분에서의..

3D Rendering 2023.09.29

Shadow map

출처: https://choi-dan-di.github.io/computer-graphics/shadow-mapping/ 깊이 버퍼는 카메라를 기준으로 픽셀의 거리를 기록한 Map이다. 하지만 Shadow Map은 카메라가 아니라 Light를 기준으로 깊이를 기록한 Map. 아래는 출처에서 퍼온 내용 두 단계 렌더링 쉐도우 매핑 알고리즘은 두 번의 렌더링 패스(Rendering Pass)를 통해 수행된다. 첫 번째 패스에서는 쉐도우맵(Shadow Map)이라는 특수한 텍스처를 생성한다. 두 번째 패스에서는 실제 렌더링을 수행하게 된다. 위 이미지에서 광원에서 나온 빛이 미치는 표면은 굵은 선으로 표시되었다. 이들 표면을 균일하게 샘플하여, 각 샘플점 p마다 광원까지의 거리(z)를 쉐도우맵에 저장한다. 이..

3D Rendering 2023.09.29