⭐ DirectX
[DirectX11] 013~014 Camera
[DirectX11] 013~014 Camera
2023.01.11목차 Camera D3DXMATRIX *D3DXMatrixLookAtLH D3DXMATRIX *D3DXMatrixLookAtLH( D3DXMATRIX *pOut, CONST D3DXVECTOR3 *pEye, CONST D3DXVECTOR3 *pAt, CONST D3DXVECTOR3 *pUp ); zaxis = normal(At - Eye) xaxis = normal(cross(Up, zaxis)) yaxis = cross(zaxis, xaxis) xaxis.x yaxis.x zaxis.x 0 xaxis.y yaxis.y zaxis.y 0 xaxis.z yaxis.z zaxis.z 0 -dot(xaxis, eye) -dot(yaxis, eye) -dot(zaxis, eye) 1 Cross -> 외적 htt..
[DirectX11] 012 Grid
[DirectX11] 012 Grid
2023.01.10목차 Grid Grid Vertex Count = ( width + 1 ) * ( height + 1 ) Index Count = ( width) * ( height ) * 6 GridDemo 코드 10_World.fx 코드는 이전글과 동일 GridDemo.h 더보기 #pragma once #include "Systems/IExecute.h" class GridDemo : public IExecute { public: virtual void Initialize() override; virtual void Ready() override {} virtual void Destroy() override; virtual void Update() override; virtual void PreRender() ove..
[DirectX11] 011 Index
[DirectX11] 011 Index
2023.01.10목차 Index Index를 활용한 사각형 그리기 0 1 2 2 1 3 순서로 그린다. IndexDemo 코드 10_World.fx 코드는 이전글과 동일 IndexDemo.h 더보기 #pragma once #include "Systems/IExecute.h" class IndexDemo : public IExecute { public: virtual void Initialize() override; virtual void Ready() override {} virtual void Destroy() override; virtual void Update() override; virtual void PreRender() override {} virtual void Render() override; virtua..
[DirectX11] 010 World
[DirectX11] 010 World
2023.01.09목차 World World에 3개의 사각형 출력 후 크기 조절하기 및 위치 이동하기 World.fx 코드 10_World.fx 더보기 matrix World; matrix View; matrix Projection; uint Index; struct VertexInput { float4 Position : Position; }; struct VertexOutput { float4 Position : SV_Position; }; VertexOutput VS(VertexInput input) { VertexOutput output; output.Position = mul(input.Position, World); output.Position = mul(output.Position, View); output...
[DirectX11] 009 World Matrix
[DirectX11] 009 World Matrix
2023.01.08목차 World Matrix View Projection 행렬 4x4 행렬Identity1 0 0 00 1 0 00 0 1 00 0 0 1 World.fx 코드 08_World.fx더보기matrix World;matrix View;matrix Projection;struct VertexInput{ float4 Position : Position;};struct VertexOutput{ float4 Position : SV_Position;};float4 VS(VertexInput input) : SV_Position{ // float4의 위치(=input.Position)에 W V P를 곱하여 output.Position 반환 VertexOutput outpu..
[DirectX11] 008 User Interface
[DirectX11] 008 User Interface
2023.01.07목차 User Interface 파이프라인 Vertex -> IA -> VS -> RS -> PS -> Pixel IA (Input Assembler)스테이지를 이용해 렌더링 데이터 세팅VS(Vertex Shader)W, V, P. 정점의 위치 변환. NDC 공간의 사용.RS(Rasterization Shader)정점을 픽셀로 바꿔준다. 픽셀로 채워주는 과정PS(Pixel Shader)한점 한점을 어떻게 처리할 것인가? 픽셀 하나하나를 처리하는 과정. 색을 결정하는 과정에 쓰인다. User Interface UserInterfaceDemo.h더보기#pragma once#include "Systems/IExecute.h"class UserInterfaceDemo : public IExe..
[DirectX11] 006~007 사각형 띄우기
[DirectX11] 006~007 사각형 띄우기
2023.01.06목차 Vertex Buffer 세팅 디바이스 구조 기초 두르기 순서 왼손 좌표계의 경우 시계 방향으로 감긴다. 반면에 오른손 좌표계의 경우 반시계 방향으로 감긴다. DX9 - 왼손 좌표계Unreal, Unity - 왼손 좌표계 DX10, 11, 12, GL - 오른손 좌표계이지만 기존의 컨벤션을 유지하기 위해 왼손 좌표계 방식으로 코팅을 한다. 사각형 출력하기 07_Rect.fx더보기struct VertexInput{ float4 Position : Position;};struct VertexOutput{ float4 Position : SV_Position;};VertexOutput VS(VertexInput input){ VertexOutput output; out..
[DirectX11] 001~005 DirectX11 기초, NDC 좌표계
[DirectX11] 001~005 DirectX11 기초, NDC 좌표계
2023.01.04목차 DirectX11 기초 파이프라인 Vertex(정점) -> IA -> VS -> RS -> PS -> Pixel IA(Input Assembler)스테이지를 이용해 렌더링 데이터 세팅VS(Vertex Shader)정점의 위치 변환. NDC 공간의 사용.RS(Rasterization Shader)정점을 픽셀로 바꿔준다. 픽셀로 채워주는 과정PS(Pixel Shader)한점 한점을 어떻게 처리할 것인가? 픽셀 하나하나를 처리하는 과정. 색을 결정하는 과정에 쓰인다. NDC(Nomalized Device Coordinates) 좌표계 NDC(Nomalized Device Coordinates) 좌표계란?3D 물체가 Projection(=투영 변환)을 거쳐 2D 공간에 변환되면서 가지게되는..
[DX11] D3D11 TEXTURE ADDRESS
[DX11] D3D11 TEXTURE ADDRESS
2022.09.13D3D SAMPLER STATE 텍스처의 칼라를 추출해 uv 좌표에 대응하는 작업. 텍스처의 픽셀 사이를 처리하는 방식은 아래와 같다. TEXTURE ADDRESS D3D11 TEXTURE ADDRESS D3D11_TEXTURE_ADDRESS_WRAP 텍스처 좌표를 반복 D3D11_TEXTURE_ADDRESS_MIRROR 인접한 이미지를 반복 D3D11_TEXTURE_ADDRESS_CLAMP 텍스처 끝 부분의 픽셀 늘어남 D3D11_TEXTURE_ADDRESS_BORDER 경계색을 설정 D3D11_TEXTURE_ADDRESS_MIRROR_ONCE CLAMP + MIRROR samplerDesc.Filter D3D11_FILTER_ MIN 축소 필터 MAG 확대 필터 MIP MIN과 MAG의 레벨 차를 사..
[DirectX11] 별찍기
[DirectX11] 별찍기
2022.08.171 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 #include "framework.h" ID3D11Buffer* ObStar::fillVertexBuffer = nullptr; ID3D11Buffer* ObStar::vertexBuffer = nullptr; void ObStar::CreateStaticMember() { VertexPC* Vertex; Vertex = new VertexPC[5 * 3]; for (UINT i = 0; i GetDevice()->CreateBuffer(..
[DirectX11] 렌더링 파이프라인
[DirectX11] 렌더링 파이프라인
2022.08.11렌더링 파이프라인 화면상 출력을 연결된 구조파이프라인() : 이전 단계의 출력이 다음 단계의 입력으로 이어지는 형태 -> 입출력이 맞물려 있다. IA 입력조립기 정점, 정점을 가지고 그릴 모양 등을 정하는 단계. IA 입력조립기(Input Assembler) 정점, 정점을 가지고 그릴 모양 등을 정하는 단계. VS 정점셰이더(Vertex Shader) 공간 변환shader -> gpu를 통해 연산이 가능.hlsl 사용 RS 레스터라이저(Rasterizer) 픽셀화정점, 정점을 가지고 그릴 모양 등을 정하는 단계. PS 픽셀셰이더(Pixel Shader) OM 출력병합기(Output Merger) Merger -> 합병
[WinAPI] 포물선 충돌 및 마찰계수 설정
[WinAPI] 포물선 충돌 및 마찰계수 설정
2022.08.11Bullet.cpp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 #include "stdafx.h" Bullet::Bullet() { arrow.SetWorldPos(Vector2(2000.0f, 2000.0f)); arrow.scale.x ..