⭐ DirectX/DirectX11 3D
[DirectX11] 113-117 Shadow 그림자, PCF (Percentage Closer Filtering)
[DirectX11] 113-117 Shadow 그림자, PCF (Percentage Closer Filtering)
2023.05.17그림자 구현방법에는 원형 그림자, 투영 그림자, 그리고 깊이 버퍼 그림자 방식이 있다. 이 중 가장 정교한 묘사가 가능한 깊이 버퍼 그림자(Depth Buffer Shadow)를 구현하여 그림자를 표현하였다. Two Pass Rendering 원리를 이용하여 깊이 버퍼 그림자를 계산하고 이를 활용한다. 목차 그림자 구현하기 그림자 구현방법 원형 그림자: 고전 방식 투영 그림자: 그 다음 등장한 방식. 장면 그대로 렌더링 깊이 버퍼 그림자 (Depth Buffer Shadow): 최근 대부분의 게임에서 사용하는 방식. 깊이 버퍼를 이용하여 그림자를 구현한다. 깊이 버퍼 그림자 (Depth Buffer Shadow) Two Pass Rendering 1 Pass: 깊이(DSV) - 조명의 방향을 가지고 Pr..
[DirectX11] 111-112 Projector
[DirectX11] 111-112 Projector
2023.05.10투영은 3D 공간에서의 객체를 2D 화면에 어떻게 표현할 것인지를 결정하는 과정이다. 이 과정에서 VS 단계에서 WVP(World, View, Projection) 변환된 결과가 SV_Position을 기준으로 2D 좌표로 레스터라이징되어 화면에 표현된다. 하지만, 이렇게 레스터라이징된 2D 좌표는 쉐이더로부터 바로 리턴받을 수 없기 때문에, CPU를 통해 VS, RS에서 사용된 같은 수식을 통해 2D 변환된 위치를 계산하고, 그 위치에 UI 요소를 배치하기 위해 사용된다. 목차 Projector Shaders Light.fxProjector.fx 생성Framework Objects Projector.h .cpp 생성 Viewer Fixity.h .cpp 생성UnitTest Objects Pro..
[DirectX11] 107-110 Dynamic Cube Map
[DirectX11] 107-110 Dynamic Cube Map
2023.05.05큐브맵은 3D 그래픽스에서 환경 맵핑(environment mapping)에 주로 사용되며, 사실적인 조명 효과와 반사 효과를 구현하는 데 필수적이다. 큐브맵 UV는 큐브맵을 효율적으로 활용하는 기술로, 3D 공간에서의 객체와 환경 사이의 상호작용을 정교하게 표현하게 해준다. 목차 Dynamic Cube Map Shaders Global.fxDynamicCubMap.fx 생성Framework Objects DynamicCubeMap.h .cpp 생성UnitTest Objects DynamicCubeMapDemo.h .cpp 생성 Dynamic Cube Map 매핑 원리 View[6] - GS에서 생성 Projection 큐브맵(CubeMap)큐브맵은 하나의 텍스처가 아닌 6개의 면으로..
[DirectX11] 106 Bloom
[DirectX11] 106 Bloom
2023.05.03Bloom은 카메라 렌즈에서 빛이 작동하는 방식을 시뮬레이션하기 위해 그래픽 및 게임에서 사용되는 시각 효과다. 밝은 물체 주위에 빛나는 효과를 만든다. 목차 Bloom 다음의 과정을 거쳐 Bloom을 구현한다. 장면을 텍스처로 렌더링: 첫 번째 단계는 장면을 BackBuffer 대신 텍스처로 렌더링하는 것이다. 이를 통해 원래 렌더링된 이미지에 영향을 주지 않고 장면에 후처리 효과를 적용할 수 있다.임계값 적용: 다음으로 텍스처에 임계값을 적용하여 장면에서 밝은 픽셀을 식별한다. 이는 각 픽셀의 색상 값을 임계값과 비교하여 수행된다. 픽셀의 색상 값이 임계값보다 크면 밝은 픽셀로 간주되어 추가 처리된다.밝은 픽셀 추출: 픽셀 셰이더를 사용하여 다른 텍스처로 렌더링하여 장면에서 밝은 픽셀을 추출한..
[DirectX11] 104-105 Blur, Gaussian Blur
[DirectX11] 104-105 Blur, Gaussian Blur
2023.04.28DirectX 11에서 Blur는 이미지를 초점이 맞지 않거나 흐릿하게 보이게 하는 시각적 효과를 말한다. 이 효과는 종종 그래픽과 게임에서 필드 깊이를 시뮬레이션하거나 이미지의 가장자리를 부드럽게 하는 데 사용된다. Blur 효과를 생성하기 위한 다양한 기법이 있으며, 가장 일반적으로 사용되는 기법 중 하나는 Gaussian Blur다. 목차 Blur Gaussian blur는 가우스 함수로 이미지를 합성하여 작동하는 블러의 일종이다. 이 기능은 각 픽셀에 적용되는 흐림의 양을 결정하는 종 모양의 곡선을 가지고 있다. 픽셀이 주변 영역에 더 많은 픽셀을 가질수록 픽셀은 더 흐려진다. 가우스 블러 효과는 부드럽고 자연스럽게 보이는 흐림을 생성하기 때문에 종종 사용되며, 다양한 수준의 흐림을 달성하기 위해..
[DirectX11] 103 MRT(Multiple Render Targets)
[DirectX11] 103 MRT(Multiple Render Targets)
2023.04.27MRT(Multiple Render Targets)는 한 번의 추첨 통화에서 둘 이상의 렌더 대상에 렌더링할 수 있는 기능을 말한다. 기존 렌더링 파이프라인에서는 하나의 렌더링 대상(백 버퍼)만 사용하여 화면에 최종 결과를 표시한다. 그러나 복잡한 후 처리 효과를 구현하거나 지연된 렌더링 기법을 구현하거나 섀도 매핑을 수행하는 경우와 같이 여러 렌더 대상에 동시에 렌더링해야 하는 상황이 있다. 목차 MRT(Multiple Render Targets) MRT(Multiple Render Targets)는 한 번의 추첨 통화에서 둘 이상의 렌더 대상에 렌더링할 수 있는 기능을 말한다. 기존 렌더링 파이프라인에서는 하나의 렌더링 대상(백 버퍼)만 사용하여 화면에 최종 결과를 표시한다. 그러나 복잡한 후 처리 ..
[DirectX11] 099~102 Render Target, Post Effect(Color Tone)
[DirectX11] 099~102 Render Target, Post Effect(Color Tone)
2023.04.18DirectX11에서 Post Effect를 적용하여 장면을 새로운 텍스처로 렌더링하고, 새로운 셰이더 세트를 사용하여 효과를 적용한다. Post Effect는 Diffuse, Inverse, Greyscale, Saturation, Sharpness, Sephia, Lens Distortion, Interace, Blur, Vignette, Wiggle 등 적용하려는 효과에 따라 달라질 수 있다. 목차 Color Tone DirectX IA → VS → GS →SO → RS → PS → OM (RTV를 구하여 Texture에 사용) IA → VS → GS →SO → RS → PS (Post Effect 적용) → OM Shaders ColorTone.fx 생성 Framework Viewer DepthS..
[DirectX11] 096~98 Geometry Shader
[DirectX11] 096~98 Geometry Shader
2023.04.12Geometry Shader는 정점 셰이더(Vertex shader) 뒤와 픽셀 셰이더(Pixel shader) 앞에서 실행되는 셰이더 유형이다. 이것은 정점 셰이더 단독보다 더 복잡한 기하학적 조작을 가능하게 하며, 새로운 꼭짓점을 생성하거나 메쉬의 위상을 변경하거나 기하학에 다른 변환을 적용하는 데 사용한다. 목차 Geometry Shader Shaders Light.fx Billboard.fx Framework Viewer Billboard.h .cpp P BillboardDemo.h .cpp 렌더링 순서 DirectX9 vs. DirectX10 DirectX9 IA → VS → RS → PS → OM DirectX10 IA → VS → GS →SO(요즘은 잘 안 쓴다) → RS → PS → OM ..
[DirectX11] 095 Particle Editor
[DirectX11] 095 Particle Editor
2023.04.12DirectX11의 Particle Editor는 DirectX11 응용 프로그램에서 사용할 입자 효과를 만들고 관리하는 데 사용되는 소프트웨어 도구이다. 그것은 개발자들이 개별 입자의 행동과 모양을 제어함으로써 연기, 화재, 물, 폭발과 같은 복잡하고 역동적인 효과를 만들 수 있게 한다. 목차 Particle Editor 파티클 편집기에는 일반적으로 개발자가 파티클 시스템을 시각적으로 만들고 수정할 수 있는 시각적 편집기가 포함되어 있다. 일반적으로 크기, 색상, 불투명도 및 수명과 같은 입자 속성에 대한 제어를 제공하며 개발자가 입자 시스템의 동작 및 모양을 실시간으로 조정할 수 있다. 또한 DirectX11의 Particle Editor는 개발자가 입자에 이미지를 적용할 수 있는 텍스처 매핑 및 고..
[DirectX11] 089~94 Particle System
[DirectX11] 089~94 Particle System
2023.04.04Particle System은 입자라고 하는 작고 개별적인 시각적 요소를 시뮬레이션하고 렌더링하는 데 사용되는 그래픽 기술로, 서로 움직이고 환경과 상호 작용한다. 화재, 연기, 물, 폭발 등과 같은 현상의 사실적이고 역동적인 애니메이션을 만들기 위해 컴퓨터 게임 및 시각 효과에 일반적으로 사용된다. 목차 Particle System DirectX11에서는 GPU를 사용하여 계산 및 렌더링을 수행하는 파티클 시스템을 구현할 수 있다. DirectX11에서 파티클 시스템을 만드는 기본 단계는 다음과 같다. 입자 데이터를 저장할 Vertex Buffer를 생성한다. 여기에는 각 입자의 위치, 속도, 색상, 크기 및 기타 속성이 포함된다. 입자 시뮬레이션 및 렌더링을 처리하도록 셰이더 프로그램을 설정한다. 여..
[DirectX11] 085~88 Weather (Rain, Snow)
[DirectX11] 085~88 Weather (Rain, Snow)
2023.04.02전반적으로 DirectX11에서 기상 시스템을 생성하려면 예술적 비전과 기술의 조합이 필요하며 시뮬레이션하려는 기상 시스템의 물리 및 역학에 대한 깊은 이해가 필요하다. 올바른 도구와 전문 지식을 사용하면 멀티미디어 응용 프로그램의 전반적인 경험을 향상시킬 수 있는 매우 사실적이고 몰입감 있는 날씨 효과를 만들 수 있다. 목차 Weather DirectX11에서 날씨 시스템을 생성하기 위한 첫 번째 단계는 시스템의 물리를 정의하는 것이다. 예를 들어 비를 시뮬레이트하려면 파티클의 속도와 방향, 떨어지는 속도, 환경과 상호 작용하는 방식(예: 표면에 튀거나 바람에 날리는 것)을 정의해야 한다. 날씨 시스템의 물리학을 정의한 후에는 DirectX11을 사용하여 시각 효과를 만들 수 있다. 여기에는 일반적으로..
[DirectX11] 083~84 Billboard
[DirectX11] 083~84 Billboard
2023.03.28DirectX 11에서 빌보드는 항상 카메라를 향하고 있는 2D 이미지로, 3D 개체의 환영을 만든다. 빌보드는 폭발, 연기 또는 화재와 같은 입자 효과 등에 사용된다. 빌보드를 만들려면 이미지를 3D 공간에 배치하고 법선이 카메라의 보기 방향과 수직이 되도록 정렬한다. 이렇게 하면 위치나 방향에 관계없이 이미지가 항상 카메라를 향하게 된다. 그러면 빌보드가 적절한 크기로 조정되고 텍스처 쿼드로 렌더링된다. 목차 Billboard DirectX 11에서 빌보드는 항상 카메라를 향하고 있는 2D 이미지로, 3D 개체의 환영을 만든다. 빌보드는 폭발, 연기 또는 화재와 같은 입자 효과 등에 사용된다. 빌보드를 만들려면 이미지를 3D 공간에 배치하고 법선이 카메라의 보기 방향과 수직이 되도록 정렬한다. 이렇게..