묻공러
'그래픽스/[기초] DirectX' 카테고리의 글 목록

그래픽스/[기초] DirectX

그래픽스/[기초] DirectX

[DirectX Note] 랜더링 파이프라인 (2)

Vertex Shader Input Assembler에서 받은 정점 정보들로 도형은 생성했지만 로컬 좌표게에 있기 때문에 해당 데이터를 화면에 그대로 출력해 버리면 여러 가지의 도형이 전부 같은 위치에 생성이 된다 공간 좌표계(World)로 변환해야 한다 Local Space > World Space > View Space(카메라 기준의 공간) > Projection(Clip Space) > Screen Space 월드변환 Local Space라고도 불리는 오브젝트 공간은 3차원 세상에서 표현될 각각의 개인 공간에 정의된 영역이다 그런데 이러한 오브젝트들을 하나가 아닌 여러 개를 한 화면에 모아놓은 공간을 World Space라고 한다 카메라변환 월드 변환이 완료되어 모든 물체가 한 공간(World Sp..

그래픽스/[기초] DirectX

[DirectX Note] 랜더링 파이프라인 (1)

(그래픽스) 렌더링 파이프라인 3차원으로 만들어진 3D 모델 데이터들을 2차원(모니터)으로 투영(바꾸는)하는 과정의 프로세스를 자세하게 표현한 것이다 랜더링 파이프라인의 핵심 단계 1. 정점 데이터 처리 단계 2. 레스터라이저 단계 3. 픽셀 or 프래그먼트(fragment) 단계 4. 출력 or 병합 단계 1. 정점 단계 3차 > 2차 변환하는 단계 2. 레스터라이저 단계 도형의 보이지 않는 부분을 처리한다거나 해상도에 맞는 픽셀을 처리한다거나 3. 픽셀 쉐이더 단계 픽셀을 하나씩 다 정리하는 단계 4. 출력 단계 알파값 등을 고려해 출력 마지막으로 DX에선 렌더 타겟 (OpenGL에서는 프레임 버퍼)을 진행한다 Wapi에서 BackDC에 그려준 그런 단계와 같다 3차원 모델 하나를 2차원 세상에 그리..

그래픽스/[기초] DirectX

[DirectX Note] 애플리케이션 생성과 정적 라이브러리 추가

데스크톱 애플리케이션 생성 비주얼 스튜디오를 켜고 Windows 데스크톱 마법사로 만든다 추가 설정은 데스크톱 애플리케이션으로 한다 정적 라이브러리 추가하는 방법 새 프로젝트 추가 > 정적 라이브러리 라이브러리? 자주 사용되는 기능이나 함수 서브루틴 등 총제적으로 구현해 놓은 프로젝트 라이브러리의 종류와 장단점 - 동적 라이브러리 xxxx.dll 프로그램 시작하고 있는 동안에 해당 라이브러리를 참조하여 실행한다 하나의 메모리 영역에 올려두고 여러 프로그램들이 나누어 사용하는 라이브러리 장점 메모리 절약 프로그램 한번 올려진 메모리를 공유, 사용하니 사용 공간자체가 적다 업그레이드(패치)를 비교적 정적 라이브러리보다 쉽게 진행 가능하다 실행 중간에 패치가 가능 단점 외부의존도가 높아진다 (게임 포토샵 둘다..

그래픽스/[기초] DirectX

[DirectX Note] 그래픽스 공부 이유

다양한 그래픽스 API와 프로그래머의 역할 그패릭스 API로는 Direct X, OpenGL (서비스 종료), Vulkan(Ray Tracing), Apple의 Metal(Ray Tracing) 등 다양한 그래픽 API가 존재한다 Ray Tracing은 현재 그래픽 수준으로 감당이 안되지만 언젠가는 곧 다가올 미래이다 DirectX11(rasterizer)에서 DirectX12(Ray Tracing)로 갈수록 그래픽 작업가의 일의 강도가 높아진다 하드웨어 작업의 경우, DirectX는 GPU가 자동으로 알아서 관리하는데 Vulkan과 Metal은 직접 수동으로 관리해줘야 한다 따라서, 하드웨어 작업 부분도 프로그래머한테 위임이 되고 있다 그래픽스 공부는 무엇으로 시작해야 하나? 그래픽스 공부는 dx11로..