3D 첫날이다 기본적인 프로젝트 생성을 진행했다. FrameWork 솔루션에 두개의 폴더를 생성한다. Client폴더에 마법사 프로젝트를 생성한다. Client 프로젝트의 출력 디렉토리를 bin폴더로 설정해주고 기본 포함 디렉토리 또한 추가해준다.  MainApp 생성관련함수 만들어주고 Client.cpp에서 헤더추가(추가포함디렉토리 설정) MainApp 클래스 update의 역할을하는 Tick함수와 R
Client 프로젝트 이제 각 프로젝트별로 namespace정의를 사용할것이기때문에 편하게 사용하기위해 매크로를 정의해서 사용 1.엔진 프로젝트에 Defines 폴더에 Engine_Macro 생성 2.Engine_Defines.h 에 매크로 include #de
렌더 비긴과 : 렌더링하기위한 준비작업비긴과 엔드 사이 : (백퍼버에) 객체들을 그린다. (당장화면에 보이지는 않음)렌더 엔드 : 렌더링의 마무리.(실제 보여주는 동작) (백버퍼를) 뷰포트(윈도우에) 출력에 해준다. (Present)함수렌디 비긴안 장치객체의 Clear
오늘은 오브젝트 매니저를 구현1.오브젝트매니저 Free 구현오브젝트 매니저에 할당된 객체들을 Free를통해 해제해줘야함멤버변수로 m_iNumLevel에 Reserve에서 인자를 받아서 메버 변수에 넣어줌Free에서 반복문을통해 m_iNumLevel만큼 반복문을 통해 해
원형객체를 추가하는 부분까지 했음1.Add_GameObject를 호출해서 객체를 추가해보자오브젝트 매니저의 Add_GameObject 함수우선 복제하기위한 원형을 Find_Prototype함수를 호출원형의 클론함수를 호출(리턴값은 복제된 오브젝트)이제 복제된 객체를 m
엔진안의 열거체를 클라이언트 디파인으로 이동MainApp의 셋업레벨의 인자로 레벨로고를 생성할때 인자로 장치를 전달해줘야하는데 장치를 전달해줄 방법이 없음각 레벨의 NativeConstruct에서 현재 레벨에 사용할 객체(플레이어 , 몬스터 ,건물, 지형) 들을 생성할
[플레이어] 라는 객체를 생성할 때 필요한 정보 객체의 위치, 회전, 크기 (상태) 텍스쳐, 메시(플레이어를 그리기위한 리소스) 콜라이더 (충돌을 위함) 네비게이션. (이동을 위함) 텍스쳐를 텍스쳐에 보관하는것은 그릴때마다 텍스쳐를 가져와야하므로 불합리 할수있음 [
트랜스폼 컴포넌트에 월드행렬을 넣을수있게하고 복제해서 객체에 넣어준다.01 . 엔진 - 트랜스폼 컴포넌트 구현엔진의 컴포넌트 필터에 트랜스폼 클래스를 추가해준다namespace,ENGINE_DLL,생성자등 기본 틀을 잡아준다.컴포넌트객체이기때문에 복사생성자를 통해 복제
직접 정점들을 정의하기위한 정점들의 부모 정의01 . VI 버퍼엔진에 vi 버퍼 구현멤버변수 m_pVB - 정점들을 보관할 수 있는 메모리m_iStride 정점의 길이m_iNumVertices 정점의 갯수Vi 버퍼를 부모로 VI버퍼\_렉트도 구현해주자.NativeCo
왜 뷰스페이스 변환을 하는가?렌더링 파이프라인을 학습하는건 - 3차원공간상에 3D로 표현되는 모든 정점들을 표현하기위함(3차원에있는 정점들을 2차원으로 바꿔서 보여주자)3차원 공간에 오브젝트가 있을때 이 공간의 어느 부분을 화면에 보여줘야할까?모니터에 보여지는 장면은
투영 변환행렬이 3차원에 있는 점들을 2차원의 점으로 바꾸기 위한 행렬은 아니다. 2차원으로 변환하는 연산을 하기전 사전연산을 하기위한 연산이다 -> 카메라의 시야 각도를 내가 원하는 대로 설정하기 위함(60도 맞춰서 있는애들을 90도에 맞게 늘인다) 실제 투영은 90
실행 흐름을 따라가봄
카메라를 만들기전 기존의 만든 트랜스폼 클래스에대한 처리를 해줌엔진의 트랜스폼 클래스객체의 월드공간상에서의 상태를 표현한다.1행 : 라이트, 2행 : 업 , 3행 : 룩 ,4행 : 포지션(월드공간으로의 변환, 월드공간에서의 상태를 표현)월드 객체를 각 객체의 선언해도되
플레이어 몬스터 추적 Chase_Target();몬스터의 위치를 얻어온다\_float3 vPosition = Get_State(STATE_POSITION);몬스터에서 플레이어를 바라보는 방향벡터를 구한다\_float3 vChase = pTranseform->Get_
레벨로딩클래스의 Native함수는 실제 게임내에 출현할 객체의 본사본을 생성한다.어제한것 로직1.씬을 바꾸자2\. 사전에 로딩,레벨로딩, 레벨게임플레이 클래스를 만들었다.3\. 레벨로딩안에서 특정조건을 만족하면 레벨로딩으로 넘어갈 수 있도록 처리하였다. 사전에 레벨\_
타임매니저와 로딩추가 타임매니저파일은 엔진에 로딩은 클라이언트에 복사 >타임매니저 클래스 -타이머 Cbase 상속해주고 GameInstance를 통해 접근할 수 있게 해주자. 타임매니저를 타이머로 변경해주고 싱글톤 해제. (기존은 타이머를 딱 하나밖에 사용하
어제한것 1.플레이어 클래스 제작 2.플레이어의 원형 객체를 생성(로더 클래스에서) 3.레벨_게임플레이 안에서 플레이어를 복제해서 레이어에 추가 4.플레이어의 텍스쳐 컴포넌트 추가 5.텍스쳐 컴포넌트는 한장 or 여러장이든 보관할 수 있는 형태로 제작 6.텍스처 컴포
카메라의 이동카메라프리의 부모 카메라는 게임오브젝트를 상속받아 생성되었다.게임오브젝트는 컴포넌트를 보유할수있게 만들었음으로 트랜스폼 컴포넌트를 보유하게 해주자이때 카메라의 DESC와 트랜스폼이 같은 기능을 가지니 동기화되도록 만들어주자.카메라 클래스에 트랜스폼 컴포넌트
카메라 회전좌우회전을 구현할때 회전축을 Y축으로할것인지 업벡터 기준으로 할것인지 결정해야한다(게임 컨셉의 문제)축을 Y축으로 두고 세번째인자는 타임델타에 \* 마우스 무브를 곱해주자.카메라위치의 값을 0으로 수정하자.상하회전은 카메라의 Right축을 기준으로 회전하게
m_pGraphic_Device->SetRenderState(D3DRS_CULLMODE,D3DCULL_CCW) \-> 시계 방향으로 그려진 모든것들을 그린다.CCW를 CW로 하면 반시계방향을 그린다.NONE은 무조건 그린다.(앞 뒷면이 모두 그려진다)m_pGraphic
조명 >방향성광원 방향성관원 - 내게임 전역에 미치는 광원 , 빛연산을 위해선 빛의 방향벡터가 필요하고 방향벡터가 매우 높은 위치에있기때문에 모든 객체의 방향벡터가 비슷하다. 레벨게임플레이에 ReadyLight 함수를 선언하고 네컨에서 호출해주자. 광원 구조채인
조명 - 스펙큘러스펙큘러는 정반사광원에 의한 반사를 의미한다.빛이 들어왔을때 정해진 방향으로만 반사이 반사된 반사벡터와 내 시선벡터의 각도를 계샌해서 보이는지 안보이는지를 판별한다.이를 이용해 하이라이트를 표현할 수있다.물체마다 하이라이트 색이다르기 때문에 객체마다 따
지형위에 플레이어 띄우기엔진 프로젝트의 트랜스폼 클래스에서 새로운함수를 만들자(지형위에 올리는 기능)void Stand_OnTerrain(class CVIBuffer_Terrain pVIBuffer,\_matrix pTerrainWorldMatrix)\-위치정보를 받아
스카이박스카메라를 어느방향으로 돌려도 하늘이 보여야함 -> 큐브로 많이 구현함큐브 안에서 큐브를 바라봄 후면출력 반시계로 해줘야한다.반구를 사용하는방법도있으나 정점이 많이 들어가서 프레임드랍이 심함VIBuffer_Cube 구현VIBuffer_Rect를 복사해서 만들자.
피킹화면을 클릭했을때 우리는 니어를 클릭한것니어 - 카메라 를 하면 하나의 방향벡터(레일)을 구할수 있다. 레일과 겹치는 지형을 클릭한것이되는것.D3DXIntersectTri() 삼각형과 방향벡터가 충돌하는지 하는지를 검사해주는 함수.방향벡터는 위치를 가지지않음 레이p
피킹네컨에서는 공간을 확보해놓는 작업만한다.m_pVerticePos정점의 정보를 보관해두기위해 정점의 갯수만큼 동적할당해 놓는다.부모에서 한번해 할려고했는데 순서가 안맞는다.그냥 값 채울때 m_pVerticePos와 m_pIndices에 값 채워넣어주자.Get_Poly
UI게임오브젝트에 UI클래스를 추가한다.(몬스터 클래스를 복사해서 이름을 바꿔주자)3D화면이라도 2D로 화면을 띄어야하는경우를 UI로 처리하자.애초에 정점을 찍을때 윈도우상의 좌표로찍으면 이는 모든 행렬을 무시해버린다.근데 이는 창을 마우스로 끌고 움직이는 같은 이동이
알파 블렌드의 문제점알파테스트는 이펙트가 가려지지는 않는다.3- 0.3 7 - 0.7z버퍼값이 더작은것이 그려진다!알파 블렌드가 켜져있으면 알파값이 0이면 실제 그려져야하는 이미지가 아닌 배경이 그려지고 깊이값은 빨간 네모의 0.3만 초기화되서 이미지가 짤리는 경우가
빌보드버퍼가 카메라를 바라봐야한다.뷰스페이스 변환을 하기위한 카메라의 월드 변환의 역행렬을 이용뷰스페이스 변환행렬의 회전행렬의 역을 적용해주자.뷰스페이스 변환을 위한 회전변환에 역변환을 빌보드를 먹이고싶은 객체에게 적용해주면 카메라를 바라보게된다.이펙트에 빌보드 적용L