728x90

전체 글 932

유니티 에셋 스토어 라이선스 관련 자료 모음

유니티 에셋 스토어 라이선스(Unity Asset Store License) 관련 자료 모음. 에셋 스토어에 에셋을 나의 상업 게임에 이용해도 되나요? https://support.unity.com/hc/ko/articles/205623589-%EC%97%90%EC%85%8B-%EC%8A%A4%ED%86%A0%EC%96%B4%EC%97%90-%EC%97%90%EC%85%8B%EC%9D%84-%EB%82%98%EC%9D%98-%EC%83%81%EC%97%85-%EA%B2%8C%EC%9E%84%EC%97%90-%EC%9D%B4%EC%9A%A9%ED%95%B4%EB%8F%84-%EB%90%98%EB%82%98%EC%9A%94- Resolution 에셋 스토어에서 에셋을 구매하시면, 게임이나 어플리케이션에 사용..

DirectX 11 스터디 관련 글 스크랩 및 메모

인터넷 검색으로 찾아볼 수 있는 DirectX 관련. 포인터, C/C++ 기초 이해 필요. COM(Component Object Model) 이해 필요. DirectX 10과 11은 유사. 10에서 Compute Shader와 멀티 스레드 렌더링 관련 기능이 추가된게 11. DirectX 11부터 시작하면 되는데 DX10 샘플 코드는 도움 됨. DX11, DX12 간의 차이를 이해해야. 11, 12의 API이름이 거의 같음. 11의 기본적인 사항에서 무엇이 어떤 의도로 12에서 어떻게 변경되었는가를 이해해야. 학습 단계에서는 가능한 wrapper 클래스를 사용하지 말고 raw API를 사용해야. DX11 로 캐릭터 렌더링까지 해본 뒤 DX12 로 넘어가는 것이 좋음. DX11 이 어려울 것 같다고 DX9..

DirectX 11 스터디 - MeshRenderer 컴포넌트 (GameObject 완)

렌더링 관련 처리를 담당해줄 MeshRenderer 컴포넌트를 생성. GameObject 에 몰려있던 Device, DeviceContext를 모두 MeshRenderer 로 이동시켜주고 MeshRenderer 의 Render() 함수를 호출해서 렌더링 처리를 하게 해준다. 이제 GameObject 는 DirectX COM 객체를 가질 필요가 없어짐. class GameObject : public enable_shared_from_this { public: GameObject(); ~GameObject() {} void Awake(); void Start(); void Update(); void LateUpdate(); void FixedUpdate(); shared_ptr GetFixedComponen..

DirectX 11 스터디 - Camera 컴포넌트

Camera 컴포넌트를 생성해서 View, Projection Matrix 를 갱신하고, 갱신한 값을 셰이더에서 참조, 연산하도록 수정. 먼저 기존에 GameObject 에서 TransformData 를 갱신하던 코드. Transform클래스의 UpdateTransform 함수에서 World좌표계 변환 Matrix를 만들었다. void GameObject::Update() { _transformData.matWorld = _transform->GetWorldMatrix(); _constantBuffer->CopyDate(_transformData); } void Transform::UpdateTransform() { Matrix matScale = Matrix::CreateScale(_localScale..

스마트 포인터 노트 auto_ptr, unique_ptr, shared_ptr, weak_ptr

비야네 스트로스트룹 "디자인 패턴 RAII (Resource Acquisition Is Initialization)" "자원의 획득은 초기화다" == "자원 관리를 스택에 할당한 객체를 통해 수행" C++11 이전 auto_ptr 이 등장. 많은 문제가 있었음. 참조 : Why is auto_ptr being deprecated? https://stackoverflow.com/questions/3697686/why-is-auto-ptr-being-deprecated " auto_ptr을 직접적으로 대체할 수 있는(또는 어쨌든 이에 가장 가까운) 것은 unique_ptr입니다. auto_ptr은 할당될 때 소유권을 이전합니다. unique_ptr도 소유권을 이전하는데, codification of move..

DirectX 11 스터디 - GameObject 의 첫 컴포넌트 Transform

GameObject 의 Scale, Rotation, Translation 을 처리할 컴포넌트를 생성해서 코드를 모듈화 해본다. Component 클래스를 만들고, 이 클래스를 상속받아 Transform 컴포넌트를 생성해줌. 유니티의 그것과 동일한 네이밍. 동일한 기능을 만들어본다. Transform 클래스를 만들고, GameObject 가 들고있던 _localScale, _localRotation, _localPosition 을 옮겨줌. 관련 Get/Set 메소드들도 모두 만들어준다. 로컬좌표계의 SRT 변환을 처리해줄 행렬 Matrix _matLocal 을 생성해주고, 이 행렬을 활용해서 월드좌표를 계산할 메소드 UpdateTransform() 함수를 만들어준다. #include "Component...

DirectX 11 스터디 - 고유 물체를 정의할 GameObject 만들기

여기까지 개발한 렌더링 처리 객체인 Pipeline, 그리고 물체마다 고유한 값을 가질 수 있는 객체들을 모아서 GameObject 를 만들어본다. 방향성은, 유니티 엔진의 GameObject 스타일로 만들고, Transform 처리는 컴포넌트 형태로 만들어 붙여보는 순서로 진행. 한번에 몰아서 구현하던 Game 클래스에서, 물체마다 고유한 값을 가져야 하는 객체들을 모두 GameObject 로 옮겨서 구현. class GameObject { public: GameObject(ComPtr device, ComPtr deviceContext); ~GameObject() {} void Update(); void Render(shared_ptr pipeline); private: ComPtr _device; ..

DirectX 11 스터디 - 모듈화 (2), 렌더링을 책임질 Pipeline클래스 작성

앞에서 Geometry, VertexData 부터 Output Merger 의 BlendState까지 모두 모듈화 해서 DX COM객체를 캡슐화 했고, 이번엔 모듈화한 객체들을 가지고 Rendering Pipeline 을 실제 수행하는 객체를 작성해본다. 파이프라인에서 고유하게 존재하고 사용되어야 하는 모듈들과, 3D 물체마다 값/설정이 변경되어야 하는 모듈을 구분한다. 3D 물체마다 설정이 변경되어야 하는 객체들을 별도로 그룹화 해서 PipelineInfo 구조체로 묶어준다. 렌더링 파이프라인에 이 구조체를 기준으로 설정을 바꿔서 태워주면 새로운 물체를 그릴 수 있게 됨. PipelineInfo 는 아래 구성 요소가 포함됨. 여기서 ConstantBuffer는 3D 메시마다 필요할 수도, 필요하지 않을..

로지텍 버티컬 마우스 MX VERTICAL, LIFT 직접 체험해보러 다녀왔습니다 (+ MX Master 3S 체험)

회사와 집 모두에서 트랙볼 마우스를 사용했는데, 집에서 쓰던 트랙볼이 수명을 다 해서 일반 마우스를 오래 쓰다보니 손목에 피로가 좀 쌓이는 느낌이에요. 게임 개발자라는 직업 특성상 마우스도 많이 사용하는데, 트랙볼 마우스가 망가진 이후에는 그냥 아무 마우스 집히는 걸 쓰고 있어서 좀 신경을 덜쓴 것 같습니다. 그래서 이번엔 버티컬 마우스를 써볼까 합니다. 친구에게 추천받기도 했던 로지텍 MX VERTICAL, 그리고 LIFT 두 제품을 고려 해보고 있었습니다. 장비에 투자를 해야 게임 개발도 더 잘 되지 않을까 하는 그런 느낌적인 느낌으로. 두 제품 모두 저렴한 가격대가 아니었기 때문에, 무턱대로 사기보다는 직접 만져보고 사봐야겠다는 생각으로 근처 로지텍 매장을 찾아서 방문해봤습니다. 가깝고 차로 가기 ..

DirectX 11 스터디 - 모듈화 (1)

앞선 스터디 과정에서는 하나의 클래스에 DirectX 객체들을 모두 모아서 구현했었음. 한 클래스에 모아서 구현했던 객체들과 개념, 동작들은 아래와 같음. DirectX 핵심 객체 : Device, DeviceContext, SwapChain Render Target : SwapChain 에서 백버퍼를 가져와서 RenderTarget 생성 RenderBegin : 렌더타겟뷰 셋팅, 클리어. 뷰포트 셋팅. RenderEnd : 에서 SwapChain->Present 호출해서 백버퍼 고속복사로 화면 갱신. Geometry 데이터 생성 및 관리 Vertex Buffer, Index Buffer 생성 Input Layout 생성 및 설정 Vertex Shader, Pixel Shader Texture 로드, S..

728x90
반응형