프로그래밍 공부

서울게임아카데미 교육과정 6개월 국비과정 113

카테고리 설명
  • 다양한 쉐이더의 Bluer효과를 적용할것 이다. Buffer를 통해 필요한 데이터를 전달하며, RenderTarget을 사용해 이미지를 구축하고. 해당 이미지를 통해 뷰포트에 대한 이미지를 재처리하여. 다양한 효과를 적용한다. 전에 작성하였던 Sepia와 GrayScale을베이스로 나머지를 전개해 나갈것 이다. RenderTargetScene구현 #pragma once class RenderTargetScene : public Scene { public: RenderTargetScene(); ~RenderTargetScene(); // Scene을(를) 통해 상속됨 void Update() override; void PreRender() override; void Render() override; voi..

  • 우리가 카메라로 화면을 비추는것. 화면을 2D리소스로 활용할 수 있다. 이러한 RenderTarget은 화면 뷰에 대한 재처리작업을 통해 더 효율적으로 어둡게 만들거나, 색감을 전체적으로 조정하거나 하는데 사용한다. 외곽선처리또한가능하다. 원래 FrameWork에 추가하여 수정해보자. 우선, RenderTager과 DepthStencil을 정의해주는 함수를 작성한다. #pragma once // RenderTarget 클래스 정의 class RenderTarget { public: // 생성자: 너비와 높이를 매개변수로 받아 기본값으로 초기화 RenderTarget(UINT width = WIN_WIDTH, UINT height = WIN_HEIGHT); // 소멸자 ~RenderTarget(); // ..

  • Trail방식을 활용하면서, UV좌표를 수정하여 애니메이션이 2D형태로 출력되게 해보자. 쉐이더를 먼저 설정한다. #include "../VertexHeader.hlsli" #include "../PixelHeader.hlsli" struct PixelInput { float4 pos : SV_POSITION; float2 uv : UV; }; PixelInput VS(VertexUV input) { PixelInput output; output.pos = mul(input.pos, world); output.pos = mul(output.pos, view); output.pos = mul(output.pos, projection); output.uv = input.uv; return output; } ..

  • 공격 시스템중, 체인라이트닝을 만들것 이다. Trail시스템을 사용하여 표현할것 이다. 일단, 객체가 Monster를 따라다니는 방식을 정의하자. #pragma once class Trail : public GameObject { public: Trail(wstring imageFile, Transform* start, Transform* end, UINT width); ~Trail(); void Update(); void Render(); void SetSpeed(float speed) { this->speed = speed; } private: void CreateMesh(); private: Mesh* mesh; Transform* start, *end; UINT width; float speed ..

  • 캐릭터에 무기를 추가할것 이다. 캐릭터에 무기를 추가하는 방법은 두가지정도 사용할 수 있는데, 사용하는 무기를 그때그떄 넣어주어서 동적으로 부여하는 방법 과 모든 무기를 캐릭터에 집어넣어 두고 사용할 경우에만 해당 무기를 활성화시키는 방법 이 두가지를 사용할 수 있다. 우리는 모든 무기를 캐릭터에 넣어두고 사용하게 할것이다. #pragma once class Weapon { public: Weapon(SkillData data, Transform* player) : data(data), player(player) {} virtual ~Weapon() = default; virtual void Update() = 0; virtual void Render() = 0; virtual void GUIRender..

  • 클래스 개요도 란, 코드의 객체 설계도와 같다고 생각하면 된다. 손으로 프로그램을동작시킨다면 어떻게 동작할까? 라는 생각으로 작성하면 쉽게 작성할 수 있다. 객체의 응용에서, 데이터의 주고받음에 따라 에니메이션을 다르게 송출해보았다. 이제. 몬스터의 객체 위에 HP바를 띄우고, 공격받을 때 마다 HP를 조절하여 표시하게 해보자. class ProgressBar : public Quad { public: ProgressBar(wstring frontImageFile, wstring backImageFile); ~ProgressBar(); void Render(); void SetAmount(float value); private: Texture* backImage; FloatValueBuffer* valu..