728x90

분류 전체보기 518

5. Constant Buffer

Constant Buffer# 상수 버퍼 활용 예제는 조금 바뀐게 많으므로 업데이트한 파일의 전체 소스를 첨부함.# mathHeader_L.h은 그냥 만든게 아까워서 쓰는 것일뿐이니 D3D수학 라이브러리의 내용을 쓰는 것이 좋다.VS.hlsl //상수 버퍼 cbuffer cb0 { float4Color : packoffset(c0); floatfTime : packoffset(c1.x); }; //정점 쉐이더 반환값 구조체 struct VS_OUTPUT { float4 Position : SV_Position; // vertex position float4 ColorChange : COLOR0; // vertex diffuse color }; //정점 쉐이더 VS_OUTPUT VS(float3 p : P..

4. Primitive Type

Primitive Type # 여러가지 Topology 타입을 소개하기 위한 예제이지만 이후에는 이미지 디버깅 용도로 사용하게 된다. # 상수 버퍼를 사용하는 예제에서의 쉐이더를 쓰면 선이 안 나오니 주의. 그래서 상수 버퍼 예제를 이 다음으로 옮겼다. 샘플 업데이트sample.h #pragma once #pragma comment(lib, "TLib.lib") #include "zCore.h" #include "mathHeader_L.h" namespace Lypi { class Sample : public zCore { // 버텍스 버퍼 및 레이아웃 ID3D11Buffer* m_pVertexBuffer; //정점 버퍼 인터페이스 ID3D11InputLayout* m_pVertexLayout; //정점..

3. VertexBuffer, IndexBuffer

Vertex Buffer 일단 아래와 같은 쉐이더 파일을 라이브러리 혹은 샘플 폴더에 만들자. # 쉐이더 코드는 txt로 적어도 아무런 상관이 없다. # 구문 강조 기능을 위해서 확장자를 hlsl로 했다면 설정에서 빌드에서 제외를 해주는 것이 정신건강에 이롭다. # 픽셀 쉐이더에서 하얀색으로 지정했다. VS.txt float4 VS(in float4 p : POSITION) : SV_POSITION { return p; } PS.txt float4 PS(in float4 p : SV_POSITION) : SV_Target { return float4(1.0f, 1.0f, 1.0f, 1.0f); } # 아래와 같이 코드를 작성하면 화면에 사각형이 그려진다. #쉐이더 파일의 경로에 주의할 것. #T를 누르면..

유클리디아 2-10 공략

문제 힌트 1. 마름모는 네변의 길이가 모두 같은 사각형이다. 2. 마름모의 두 대각선은 서로를 수직이등분한다. 1-2공략 참고 해답 L목표 E목표 동시달성 자와 컴퍼스만을 이용한 작도 풀이 L목표 E목표 풀이 1. 선분AC를 긋는다. 2. 선분BD를 긋는다. - 선분AC와 BD의 교점E를 찍는다. 3. 선분AB와 점E를 잇는 수선을 긋는다. - 선분AB와 수선의 교점F가 생겼다. 4. 점E를 중심으로 하고 선분EF를 반지름으로 하는 원E를 그린다. 자와 컴퍼스만을 이용한 작도 풀이 1. 선분AC를 긋는다. 2. 선분BD를 긋는다. - 선분AC와 BD의 교점E를 찍는다. 3. 점E를 중심으로 하고 선분AE를 반지름으로 하는 원E를 그린다. - 원E와 선분AD의 교점F가 생겼다. 4. 점A를 중심으로 하고..

2. Timer, Input, Write

# Timer : 게임내 시간을 측정하는 기능 # Input : 키 입력을 받는 기능 # Write : 화면에 간단한 텍스트를 띄우는 기능.# 타이머와 입력한 키에 대한 정보를 텍스트로 띄어주는 내용.# 여기까지 1차적인 라이브러리 내용이다. DxTimer.h #pragma once #include "stdHeader_L.h" namespace Lypi { class DxTimer { private: LARGE_INTEGER m_liFrequency; //초당 주파수 LARGE_INTEGER m_liCurTime; //현재 프레임에서의 시간 LARGE_INTEGER m_liBefTime; //이전 프레임에서의 시간 LARGE_INTEGER m_liBef1sTime; //1초전 시간 float m_dGam..

1. 윈도우 띄우기

# 아무 기능 없이 윈도우만 띄우는 기능까지만 들어간 라이브러리. # 헤더파일의 DX관련 헤더와 라이브러리는 참조하기 쉽게 위치를 옮겨놨다. # 실질적인 기능은 zCore파일에서 정의된다. stdHeader_L.h #pragma once #define DIRECTINPUT_VERSION 0x0800 #define _CRT_SECURE_NO_WARNINGS #pragma warning( disable:4005) //매크로 재정의 에러 띄우지 않기. //#define _DISABLE_EXTENDED_ALIGNED_STORAGE //메모리 자동 정렬 사용 안함? #pragma region //헤더 파일 및 라이브러리 파일 추가 #include #include //Windows Runtime C++ Templa..

0. Sample Main

# 이 카테고리의 포스팅에는 코드만 있을 뿐 코드에 대한 자세한 설명은 모두 생략되어 있다. 나아중에 시간이 나거나 필요하면 추가할지도... # 라이브러리를 실행시키기 위해 만든 main용 프로젝트.# 현재 특별한 내용은 없음.# Init(), Frame(), Render(), Release()는 기본적으로 정의하는 메소드로 약속한다. sample.h #pragma once #pragma comment(lib, "TLib.lib") #include "zCore.h" namespace Lypi { class Sample : public zCore { public: bool Init(); bool Frame(); bool Render(); bool Release(); public: Sample(LPCTSTR..

유클리디아 2-9 공략

문제 해답 L목표 달성 E목표 달성 풀이 L목표 풀이 1. 직선A에서 주어진 점C에 대한 수선을 그린다. - 직선A와 C의 교점D가 생겼다. 2. 점C를 중심으로 하고 선분CD를 반지름으로 하는 원C를 그린다.E목표 해설 1. 직선A 위의 임의의 점D를 중심으로 하고 선분CD를 반지름으로 하는 원D를 그린다. 2. 직선A 위의 임의의 점E를 중심으로 하고 선분ED를 반지름으로 하는 원E를 그린다. - 원D와 E의 교점C와 F가 생겼다. 3. 점C와 F를 잇는 직선CF를 긋는다. - 직선A와 직선CF의 교점G가 생겼다. 4. 점C를 중심으로 하고 선분CG를 반지름으로 하는 원C를 그린다. 해설 L목표 해설 : 생략E목표 해설 # 직선A에서 C로 수선을 올린다. (2-6공략의 E목표 해설 참조) # 직선A와..

유클리디아 2-8 공략

문제 해답 L목표 달성 E목표 달성 풀이 L목표 풀이 1. 주어진 두 점A, B를 잇는 직선을 긋는다. 2. 선분AB에 대해 점B에서 수선을 긋는다. E목표 풀이 1. 원A위의 한 점C와 선분CB를 반지름으로 하는 원C를 그린다. - 원A와 C의 교점D가 생겻다. 2. 점B를 중심으로 하고 선분BD를 반지름으로 하는 원B를 그린다. - 원C와 원B의 교점 E가 생겼다. 3. 점B와 E를 잇는 직선BE를 긋는다. 해설 L목표 해설 : 생략 E목표 해설 2-6 공략의 E목표 해설 참고

유클리디아 2-7 공략

문제 힌트 해답 L목표 달성 E목표 달성 풀이 L목표 달성 1. 직선A 위의 임의의 점A와 주어진 점B, 직선A 위의 임의의 점C에 대한 각의 이등분선을 그린다. E목표 달성 1. 직선A 위에 있지 않은 임의의 점C를 중심으로 하고, 선분CB를 반지름으로 하는 원을 그린다. (점B는 주어진 점) - 직선A와 원C의 교점D가 생겼다. 2. 점D와 C를 이은 직선을 긋는다. - 직선CD와 원C의 교점E가 생겼다. 3. 점E와 점B를 이은 직선을 긋는다. 해설 L목표 해설 : 생략E목표 해설 1. 선분ED는 원C의 지름. 선분BD는 주어진 직선A와 점B를 포함하는 원C의 현. 2. 각ECD는 선분ED가 원의 지름이므로 180º ∴ 각EBD는 90º ∴ 삼각형EDB는 직각삼각형. 3. ∴ 직선EB와 직선A는 직..

반응형