728x90

게임제작 108

DirectX 11 그래픽스 스터디 초급 과정 정리 노트

DirectX SDK의 API를 활용해서 GPU에 일을 시키는 방법을 구체적으로 이해 하는 것이 중요. GPU에 일을 시키려면 코드상으로 어떤 핵심 객체들이 필요한지 DX도구를 개념적으로 이해해야 함. 그래야 DX가 아닌 OpenGL, Vulkan, Metal 등 다른 RHI(Render Hardware Interface) 를 보더라도 이해할 수 있음. 필수/중요 객체와 메소드 ID3D11Device : 필요한 서브 객체들을 생성하는데 사용하는 최상위 객체. ID3D11DeviceContext : 최상위 객체인 Device로부터 생성한 서브 객체들을 설정하고 연결하는데 사용하는 Bridge성격의 객체. Context(문맥)어휘대로 이해하면 좋다. IDXGISwapChain : 접두어 DXGI~(Graph..

텍스쳐 타일링 시 반복 패턴 숨기기 (Hide repetation pattern on Tiling Texture)

터레인 등의 타일링 텍스쳐 제작 시 반복 패턴이 눈에 띄게 보이는 부분을 자연스럽게 숨겨주는 테크닉. 원본 튜토리얼 동영상은 언리얼 엔진의 머티리얼 에디터로 설명. 이해력을 돕기 위해 유니티 셰이더 그래프로 실습. 언리얼 엔진의 머티리얼 에디터나, 유니티 엔진의 셰이더 그래프나 노드는 비슷하기 때문에. 타일링 텍스쳐는 MEGASCANS 에서 Wild Grass 를 검색해서 적절한 것을 활용. https://quixel.com/megascans/ 핵심은, 2개의 타일링 텍스쳐를 준비해서 하나에 ColorTint 를 주고 MacroVariation 텍스쳐로 선형 보간 처리하는 것. 여기서 사용한 Macro Variation Texture 는 아래 링크에서. https://dev.epicgames.com/co..

DirectX 11 스터디 - GameObject 의 첫 컴포넌트 Transform

GameObject 의 Scale, Rotation, Translation 을 처리할 컴포넌트를 생성해서 코드를 모듈화 해본다. Component 클래스를 만들고, 이 클래스를 상속받아 Transform 컴포넌트를 생성해줌. 유니티의 그것과 동일한 네이밍. 동일한 기능을 만들어본다. Transform 클래스를 만들고, GameObject 가 들고있던 _localScale, _localRotation, _localPosition 을 옮겨줌. 관련 Get/Set 메소드들도 모두 만들어준다. 로컬좌표계의 SRT 변환을 처리해줄 행렬 Matrix _matLocal 을 생성해주고, 이 행렬을 활용해서 월드좌표를 계산할 메소드 UpdateTransform() 함수를 만들어준다. #include "Component...

DirectX 11 스터디 - 모듈화 (2), 렌더링을 책임질 Pipeline클래스 작성

앞에서 Geometry, VertexData 부터 Output Merger 의 BlendState까지 모두 모듈화 해서 DX COM객체를 캡슐화 했고, 이번엔 모듈화한 객체들을 가지고 Rendering Pipeline 을 실제 수행하는 객체를 작성해본다. 파이프라인에서 고유하게 존재하고 사용되어야 하는 모듈들과, 3D 물체마다 값/설정이 변경되어야 하는 모듈을 구분한다. 3D 물체마다 설정이 변경되어야 하는 객체들을 별도로 그룹화 해서 PipelineInfo 구조체로 묶어준다. 렌더링 파이프라인에 이 구조체를 기준으로 설정을 바꿔서 태워주면 새로운 물체를 그릴 수 있게 됨. PipelineInfo 는 아래 구성 요소가 포함됨. 여기서 ConstantBuffer는 3D 메시마다 필요할 수도, 필요하지 않을..

DirectX 11 스터디 - 모듈화 (1)

앞선 스터디 과정에서는 하나의 클래스에 DirectX 객체들을 모두 모아서 구현했었음. 한 클래스에 모아서 구현했던 객체들과 개념, 동작들은 아래와 같음. DirectX 핵심 객체 : Device, DeviceContext, SwapChain Render Target : SwapChain 에서 백버퍼를 가져와서 RenderTarget 생성 RenderBegin : 렌더타겟뷰 셋팅, 클리어. 뷰포트 셋팅. RenderEnd : 에서 SwapChain->Present 호출해서 백버퍼 고속복사로 화면 갱신. Geometry 데이터 생성 및 관리 Vertex Buffer, Index Buffer 생성 Input Layout 생성 및 설정 Vertex Shader, Pixel Shader Texture 로드, S..

유니티 덕분(?)에 핫해진 고도 엔진(Godot Engine)을 간단하고 빠르게 알아보자

유니티 엔진(Unitye Engine) 덕(?)분에 고도 엔진(Godot Engine)이 요즘 주변에서 많이 언급되고 있습니다. 어제 유니티의 새 가격 정책이 공개된 여파인 것 같습니다. (아래 링크) (유니티 엔진 새로운 요금 정책! 다운로드 수만큼 돈 내라? https://blog.naver.com/sorang226/223210350857 유니티 엔진 새로운 요금 정책! 다운로드 수만큼 돈 내라? 좀, 아니 많이 충격적입니다. 유니티로 개발한 게임에서 발생한 다운로드 수만큼 수수료를 더 지불하라니요... blog.naver.com 저도 아직 제대로 사용해 보진 않은 엔진인데요. 이번 기회에 조금 알아보면서 수집하고 정리한 내용들, 빠르게 공유해 봅니다. 이름의 유래부터, 무료인지 유료인지, 사용 언어..

행렬(Matrix) 스터디 - 실습 및 SimpleMath for DirectXMath

DirectX 행렬식 계산 편의를 위해 DirectXTK 의 DirectXMath 랩핑 모듈이 필요. SimpleMath.h/.cpp/.iln 파일들. 아래에서 다운로드 받을 수 있음. https://github.com/microsoft/DirectXTK/blob/3b3fd6cfc962c7ffdd03c311a6f6d6364ce96b0a/Inc/SimpleMath.inl SimpleMath.h 를 보면 아래와 같이랩핑한 DirectX 하위 클래스들을 확인할 수 있음. 여기서 Vector 시리즈와 Matrix 가 앞에서 학습한 행렬 수식과 관련된 클래스들. Matrix 메소드를 보면 앞에서 다뤘던 역행렬, 전치, Translation, Scale, Rotation 행렬 생성 시리즈들을 모두 볼 수 있음. 해..

행렬(Matrix) 스터디 - 개요, 기초, SRT(Scale, Rotation, Translation) 변환 행렬

행렬에 대한 스터디 노트 항등행렬 (Identity Matrix) 주어진 행렬과 곱했을 때 아무 변화도 주지 않는 정사각 행렬. 역행렬 Inverse Matrix) 곱했을 때 항등행렬이 되는 역할을 하는 행렬. 우측 상단에 -1 로 표기. 전치행렬 (Transpose Matrix) 원래 행렬의 행과 열을 바꾼 새로운 행렬. 우측 상단에 T 로 표기. (Transpose) 직교행렬 (Orthogonal Matrix) 행렬의 행끼리 또는 열끼리 서로 수직(직교)하고 크기가 1인 행렬. (직교행렬의 역행렬은 전치행렬과 같다) A 1x4 행렬과 B 4x4 행렬의 곱셈 C[1,1] = A[1,1]*B[1,1] + A[1,2]*B[2,1] + A[1,3]*B[3,1] + A[1,4]*B[4,1] C[1,2] = A..

게임 엔진(Game Engine) 목록 2023.09.12

게임 엔진 목록 Unity Engine Unreal Engine Godot Kilowatt Cocos 2D Lumberyard Libgdx Construct Stencyl GameMaker Studio CryEngine Marmalade Phaser GameSalad Buildbox 유니티 에셋 스토어 링크 https://assetstore.unity.com?aid=1011lvz7h 에셋스토어 여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다. assetstore.unity.com

DirectX 11 스터디 - 렌더링 파이프라인 기초 핵심 정리

먼저 렌더링 파이프라인 기본 스테이지 순서 (중간중간 세부 스테이지는 스킵) IA > VS > RS > PS > OM Input-Assembler Stage Vertex Shader Stage Rasterizer Stage Pixel Shader Stage Output-Merger Stage 아래 3가지가 명령을 내리는 핵심. D3D11Device D3D11DeviceContext DXGISwapChain (DXGI (DirectX Graphics Infrastructure) : 기술 발전 속도가 느리거나 고전적인 요소들을 모아둔 기반 인터페이스.) Device 는 객체를 생성할 때 주로 사용. DevieContext 를 생성한 객체를 활용해서 명령을 내릴 때 주로 사용. SwapChain 은 전면/후면..

728x90
반응형