728x90

게임 개발 자료 79

감마(Gamma), 선형(Linear) 컬러 스페이스 관련 자료 스크랩

유니티 - sRGB, Linear, Gamma 컬러 스페이스 https://rito15.github.io/posts/unity-srgb-linear-gamma-color-space/ 감마(Gamma) and 선형(Linear) Color Space 에 대해 http://rapapa.net/?p=3406 UNDERSTANDING GAMMA CORRECTION https://www.cambridgeincolour.com/tutorials/gamma-correction.htm [데브루키] Color space gamma correction https://www.slideshare.net/agebreak/color-space-gamma-correction [Unity] 그래픽스 / 색공간 https://docs..

텍스쳐 타일링 시 반복 패턴 숨기기 (Hide repetation pattern on Tiling Texture)

터레인 등의 타일링 텍스쳐 제작 시 반복 패턴이 눈에 띄게 보이는 부분을 자연스럽게 숨겨주는 테크닉. 원본 튜토리얼 동영상은 언리얼 엔진의 머티리얼 에디터로 설명. 이해력을 돕기 위해 유니티 셰이더 그래프로 실습. 언리얼 엔진의 머티리얼 에디터나, 유니티 엔진의 셰이더 그래프나 노드는 비슷하기 때문에. 타일링 텍스쳐는 MEGASCANS 에서 Wild Grass 를 검색해서 적절한 것을 활용. https://quixel.com/megascans/ 핵심은, 2개의 타일링 텍스쳐를 준비해서 하나에 ColorTint 를 주고 MacroVariation 텍스쳐로 선형 보간 처리하는 것. 여기서 사용한 Macro Variation Texture 는 아래 링크에서. https://dev.epicgames.com/co..

유니티 셰이더&이펙트 입문 책 메모 (Unity Shader&Effect Book for Beginner)

Shader 와 Effect 관련 추천 서적 메모. 주변 TA님께 조언을 구해서 추천받은 책들이라 정리해봅니다. Packt 의 Shader 관련 서적들 https://www.packtpub.com/search?query=shader Search | Packt Subscription Search over 7,500 Programming & Development eBooks and videos to advance your IT skills, including Web Development, Application Development and Networking subscription.packtpub.com 원서 : Unity 5.x Shaders and Effects Cookbook 번역서 : 유니티 5.x S..

수직 동기화 관련 자료 수집, DirectX SwapChain::Present()

VBlank (vertical blank) https://learn.microsoft.com/en-us/windows/win32/api/dxgi/nf-dxgi-idxgioutput-waitforvblank IDXGIOutput::WaitForVBlank (dxgi.h) - Win32 apps Halt a thread until the next vertical blank occurs. learn.microsoft.com DXGI(DirectX Graphics Infrastructure) 프레젠테이션 https://learn.microsoft.com/ko-kr/windows/win32/direct3ddxgi/d3d10-graphics-programming-guide-dxgi#presentation DXGI ..

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..

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; ..

728x90
반응형