전체 글 119

01_셋팅 및 02_Vertex

셋팅 더보기 총 3분류로 나뉘어 지고 UnitTest 솔루션에서 실제로 작업해서 출력하는 코드를 작성하고 실행 VertexLine2Demo.h 더보기 #pragma once #include "Systems/IExecute.h" class VertexLine2Demo : public IExecute { public: virtual void Initialize() override; virtual void Destroy() override; virtual void Update() override; virtual void PreRender() override {}; virtual void Render() override; virtual void PostRender() override {}; virtual voi..

DX_Collider [3 / 3] OBB 충돌

OBB(Object Oriented Bounding Box) 의 이론과 설명 코드는 아래 사이트에서 참고 하면 되고 kwaksh2319.tistory.com/46 OBB(Object Oriented Bounding Box) Collision OBB충돌을 이해하기 위해서 조금 시간이 걸리긴 했지만 외국 사이트 내용이 생각보다 쉽지 않아서 국내 블로그를 전전하다가 굉장히 설명이 잘되있는곳을 알게 되었습니다. 링크:http://www.gingaming kwaksh2319.tistory.com 쓰는 목적은 다음과 같다 1. 실시간 그림 크기에 맞는 바인딩 박스 2. 회전하든 상관 없이 중심점과 중심점 기준으로 바인딩 박스 영역 충돌 코드 더보기 Collider.cpp 내용물 추가 //그림끼리 충돌 판정 bool..

DX_Collider [2 / 3] AABB 충돌

AABB(Axis Aligned Bounding Box) 충돌 관련해서 간단하게 애기하면 박스와 박스 끼리 충돌 하는 방법중 하나인데 간단하게 축과 축끼리 부딫치면 충돌 한다는 판정이다. 그림으로 간단하게 보면 B1, B2 박스가 각각의 위치에서 해당 위치에서 각각의 X, Y좌표가 동시에 겹쳤을때 충돌 하는 방법이다 물론 장점과 단점이 존재한다. 장점 . 간단한 계산방식으로 인한 충돌처리 단점 . 회전축 사용시 박스 관련 계산이 없으므로 박스 크기가 커질수도 작을수도 있다. 즉 간단한 충돌 처리할땐 요 방법이 좋지만 회전이 들어가면 박스가 오브젝트에 맞지않게 커질수 있어 문제가 생길수가 있다. Collider.cpp, h 수정 더보기 헤더파일 #pragma once class Collider { publ..

DX_Collider [1 / 3]

Collider.cpp는 우선 총 3단계 나눠서 진행할 예정.... 수학을 더럽게 못해서 원리 및 이해를 하고선 쓸 예정 우선 1단계는 간단하게 캐릭터 및 오브젝트에다가 박스 형태로 감싸는 선을 그려줄 예정 그림으로 간단하게 정의 하면 이런 형태 Collider.cpp 더보기 #include "stdafx.h" #include "collider.h" Collider::Collider() : bDrawColliderColor(false) { shader = new Shader(L"Bounding.fx"); CreateBuffer(); D3DXMatrixIdentity(&world); // 쉐이더 파일에 있는 변수 정의 sWorld = shader->AsMatrix("World"); sView = shade..

DX_카메라 시점변환

간단하게 키보드 입력에 따라 카메라의 시점을 바꿔주는 방법 S00_Test . cpp 더보기 #include "stdafx.h" #include "S00_Test.h" #include "Viewer/Following.h" //그림 불러오기 #include "Object/Background.h" #include "Object/Move.h" S00_Test::S01_AABB(SceneValues * values) : Scene(values) { //카메라에 대한 정보를 받아옴 camera = values; //파일경로 wstring shaderFile = L"Effect.fx"; background = new Background(shaderFile); Ply = new Move(Vector2(0.0f, 0...

Matrix 함수

회전 함수에도 두종류로 나뉘어 지는데 1. 오일러 회전 D3DXMatrixScaling(); //크기 D3DXMatrixTranslation(); //위치 D3DXMatrixRotationX(); // x축 회전 D3DXMatrixRotationY(); // y축 회전 D3DXMatrixRotationZ(); // z축 회전 D3DXMatrixRotationYawPitchRoll() // 3개의 축 회전 D3DXMatrixRotationAxis() // 임의축 기준을 잡고 회전 여기서 문제는 이 회전 함수들은 하나의 축을 계산하기 때문에 '짐벌락' 현상이 일어난다. 짐벌락 현상 이란? 더보기 정상적인 각도 90도 회전 각도 (짐벌락 현상) 간단히 애기하면 하나의 3개의 축을 돌리는게 아닌 하나의 축으로 ..

DirectX/보충 2020.12.27

DX_Move

여태 까지 Prinny 라는 클래스로 화면을 띄웟다면 이제는 상속 받아서 추가 기능들을 연습 해볼 예정으로 전 게시글에 올렸던 Keyboard 연장선 으로 생각 하면 된다. Move.cpp 더보기 #include "stdafx.h" #include "Move.h" Move::Move(Vector2 position, Vector2 scale) :Prinny(position, scale) { } Move::~Move() { } void Move::Update(Matrix& V, Matrix& P) { Vector2 position = animation->Position(); if (Key->Press('D')) { moveSpeed += 300.0f * Time::Delta(); animation->Rota..