728x90

게임프로그래밍 55

DirectX 11 스터디 노트 - 도형 만들어보기 (Create Geometry) + 인덱스 버퍼 + 버텍스 셰이더, 픽셀 셰이더

Vertex 구조체를 만들어 Vertex Data 를 구성하고, ID3D11Buffer 를 생성해서 ID3D11Device 의 CreateBuffer 함수로 VertexBuffer 를 만들어준다. void Game::CreateGeometry() { // VertexData { _vertices.resize(3); _vertices[0].position = Vec3(-0.5f, -0.5f, 0.f); _vertices[0].color = Color(1.f, 0.f, 0.f, 1.f); _vertices[1].position = Vec3(0.f, 0.5f, 0.f); _vertices[1].color = Color(0.f, 1.f, 0.f, 1.f); _vertices[2].position = Vec3(0..

DirectX 11 스터디 노트 - 장치 초기화 (Create Device)

DeviceAndSwapChain 생성 HRESULT hr = ::D3D11CreateDeviceAndSwapChain( nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, 0, nullptr, 0, D3D11_SDK_VERSION, &desc, _swapChain.GetAddressOf(), _device.GetAddressOf(), nullptr, _deviceContext.GetAddressOf() ); D3D11CreateDeviceAndSwapChain 함수 (디스플레이 어댑터와 렌더링에 사용되는 스왑 체인을 나타내는 디바이스를 만듭니다.) https://learn.microsoft.com/ko-kr/windows/win32/api/d3d11/nf-d3d11-d3d11..

MSB8020 Error v143에 대한 빌드 도구를 찾을 수 없습니다. 해결법

오류 MSB8020 v143에 대한 빌드 도구(플랫폼 도구 집합 = 'v143')를 찾을 수 없습니다. v143 빌드 도구를 사용하여 빌드하려면 v143 빌드 도구를 설치하십시오. [프로젝트] 메뉴를 선택하거나 솔루션을 마우스 오른쪽 단추로 클릭한 다음 "솔루션 대상 변경"을 선택하여 현재 Visual Studio 도구로 업그레이드할 수도 있습니다. 설치된 플랫폼 도구 집합과 프로젝트의 설정이 달라서 생기는 문제. 설치된 플랫폼 도구 집합으로 변경해주거나, 프로젝트 설정을 변경해서 해결해주면 됨. 프로젝트 속성 > 일반 탭으로 이동. 플랫폼 도구 집합 드롭다운 받스를 눌러서 변경. 이렇게 변경하고 다시 빌드 해보면 성공.

언리얼 vs 유니티 1편~4편 링크 모음

언리얼 vs 유니티 1편~4편 링크 모음 게임 프로그래머의 최대 고민, 언리얼 vs 유니티 (UE vs Unity) v2023.7 - 1편 https://blog.naver.com/sorang226/223151500289 게임 프로그래머의 최대 고민, 언리얼 vs 유니티 (UE vs Unity) v2023.7 - 1편 게임 클라이언트 프로그래머라면 한 번씩 고민하는 이슈가 바로 게임엔진 이슈인 것 같습니다. 과거에는 대... blog.naver.com 게임회사들은 "어떤"게임 엔진을 "왜"사용할까? 언리얼 vs 유니티 (UE vs Unity) v2023.7 - 2편 https://blog.naver.com/sorang226/223157738082 게임회사들은 "어떤"게임 엔진을 "왜"사용할까? 언리얼 v..

DXGI란? DXGI(DirectX Graphics Infrastructure) 개요

DXGI란? DXGI 는 DirectX Graphics Infrastructure 의 약어. 그래픽 요소들의 일부가 상대적으로 느리게 진화하는 것을 고려하여 하위 수준 작업과 DirectX 그래픽 런타임이 독립적으로 동작할 수 있도록 추상화 레이어를 제공하기 위한 것. DXGI는 향후에 공통 프레임워크를 제공하려 그래픽 구성 요소들을 다룰 수 있도록 함. DXGI 는 Microsoft Direct3D 10 부터 지원. 이전 버전까지는 이전 버전(DX9)의 Direct3D에서는 하드웨어 디바이스 열거, 렌더링된 프레임을 출력에 표시, 감마 제어 및 전체 화면 전환 관리와 같은 하위 수준 작업이 Direct3D 런타임에 포함되어 있었음. 이제 이러한 작업들이 DXGI에서 구현. DXGI의 목적은 커널 모드 ..

소수점 연산 오차 관련 (Epsilon, Approximately, IsNearlyEqual)

컴퓨터는 0과 1, 즉 2진수로 숫자를 처리. 실수의 소수점 숫자를 2진수로 정확히 표현할 수 없는 경우가 있기 때문에(비트가 무한히 반복) 소수점 연산을 할 때에는 미세한 오차가 발생할 수 밖에 없음. 예시를 보면 // C# using System; class Program { static void Main() { float num1 = 0.1f; float num2 = 0.2f; float sum = num1 + num2; Console.WriteLine("Sum: " + sum); } } // C++ #include int main() { float num1 = 0.1f; float num2 = 0.2f; float sum = num1 + num2; std::cout

DirectX 11 스터디 노트 메모. Device, Context (230812)

Direct3D 11에서 디바이스는 ID3D11Device 인터페이스로 표시 대부분의 애플리케이션은 하나의 디바이스만 만든다. 아래 둘 중 하나를 호출해서 설치된 하드웨어 드라이버 중 하나에 대한 디바이스를 만든다. D3D11CreateDevice D3D11CreateDeviceAndSwapChain D3D_DRIVER_TYPE 플래그를 사용하여 드라이버 유형을 지정 디바이스 컨텍스트는 파이프라인 상태를 설정하고 디바이스가 소유한 리소스를 사용하여 렌더링 명령을 생성하는 데 사용 Direct3D 11은 두 가지 유형의 디바이스 컨텍스트를 구현 하나는 "즉시 렌더링용"이고 다른 하나는 "지연된 렌더링용" 즉각적인 컨텍스트(ImmediateContext)는 드라이버에 직접 렌더링 즉각적인 컨텍스트를 가져오는..

DirectX11 스터디 노트 - 1

학습을 위한 기본 프레임워크 만들기 Visual Studio 새 프로젝트 Windows 데스크톱 애플리케이션 생성. 기본으로 생성된 코드를 정리해서 DirectX 게임 프로그래밍 학습에 사용할 프레임워크를 작성한다. 실행하면 빈 윈도우 창이 뜨는 것으로 준비는 끝. 자동으로 생성된 코드들을 필터를 만들어서 정리해준다. 프리컴파일드 헤더(Precompiled Header) 셋팅도 해줌. pch.cpp 파일 속성에서 "미리 컴파일된 헤더" > "만들기" 로 설정. pch.h 에 넣어서 공용으로 사용할 헤더와 선언들을 생성해서 모아준다. 여기까지 진행하고, 프로젝트 셋팅에서 출력 디렉토리 변경. $(SolutionDir)Binaries 로 수정. 이어서, 라이브러리를 추가하기 위한 설정. include 디렉터..

[UE] 간단한 입력 처리 C++ 구현 및 향상된 입력 시스템 활용

언리얼 엔진 5(Unreal Engine 5) 로 입력 처리를 C++ 로 구현해본다. 축 및 액션 매핑은 이제 폐기되었지만, 구버전으로 구현 해보고 향상된 입력 액션 및 매핑 컨텍스트로 전환까지 진행한다. Pawn 을 부모클래스로 한 새 클래스를 생성. 각 액션과 축 입력을 처리할 메소드 생성. cpp 코드의 SetupPlayerInputComponent 함수에서 축 입력과 액션을 바인딩 해주고 내용을 작성. 클래스를 상속받는 블루프린트를 만들고, 눈으로 확인하기 위해 Scene Component 아래에 Sphere 메시를 추가. C++ 클래스의 GameModeBase 도 블루프린트 클래스로 생성한 후, 월드 셋팅에서 기본 게임 모드로 설정. 디폴트 폰 클래스(Default Pawn Class) 를 앞에..

Unreal 엔진 2023.07.18

[UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 4편

2023.07.11 - [Unreal 엔진] - [UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 1편 2023.07.11 - [Unreal 엔진] - [UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 2편 2023.07.13 - [Unreal 엔진] - [UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 3편 [UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 4편 스터디 노트 시리즈 4편. 여기서 애니메이션 블랜드 스페이스로 애니메이션 블랜딩을 작업하고, AI Controller 를 만들고 내비메시를 생성해서 AI가 특정 규칙에 따라 움직이도록 만들 예정. 시작하기 전에, 애니메이션 디테일에서 "애니메이션 루프"를 켜줘야 애니메이션이 반복재생 됨...

Unreal 엔진 2023.07.13
728x90
반응형