분류 전체보기 (13) 썸네일형 리스트형 Rookiss님 강의) Deferred Shading 버그 해결법 목차 인사말 버그 현상 버그 발생이유 버그 해결법 최종 검증 인사말 이번 시간에는 Rookiss님의 언리얼MMORPG시리즈의 DirectX12파트에서 나오는 Deferred Shading작동 시 특정 위치에 따라 라이팅이 꺼졌다켜지는 버그에 대해서 해결해보려고 합니다. 버그 현상 클라이언트를 실행해보면 처음 시작했을때 겉보기에는 문제가 없어보입니다. 아주 정상적으로 작동하는것으로 보이죠. 문제점은 좀 위치를 옮기고 라이팅볼륨에 가까이가면 그때부터 라이팅이 이런식으로 꺼졌다켜지는 현상을 보실수있어요. 첫번째사진에 비해서 확실히 라이팅이 꺼져보이는것을 볼수있죠. 버그 발생이유 결론적으로 해당 버그는 카메라가 라이팅볼륨 내부에 들어감으로써 라이팅연산에 필요한 볼륨메쉬가 컬링되어 제대로 렌더링이 되지 않았던것입.. 원 박스 충돌 감지 알고리즘 목차 인사말 아이디어 1단계. 원의 위치가 박스에 들어가는지 판단하라! 2단계. 실제 원의 위치, 반지름과 박스의 크기, 위치를 이용하여 충돌하는지 감지하라! 테스트 인사말 이번에 루키스(Rookiss)님의 강의를 들으면서 실습하던중, 충돌 파트에서 제목과 같은 알고리즘이 중간에 살짝 제시됬는데 나에게는 크게 흥미가 생겨서 도전하게 되었다. 이 방법은 이틀정도 고민해서 완성한 알고리즘인데 실험단계라서 테스트케이스에 따라 약간의 오차가 있을 가능성이 있다. 아이디어 우선 이 알고리즘은 총 2단계로 나뉘게 된다. 앞서서 자세히 기술하기 전에 대략적인 흐름은 어떠하냐면 우선 박스를 중심으로 큰 박스 4개를 만든뒤, 이 큰박스사이에 원의 위치점이 들어가는지 테스트한뒤 좀더 자세히 들어가서 실제 원과 박스사이의 .. 주변광 Ambient Light 알고리즘 목차 인사말 주변광이 무엇인가? 주변광 알고리즘 인사말 해당 글은 [DoronFeinstein13] 책의 내용을 저의 방식대로 정리하고 재해석하였습니다. 해당 책에 오타가 많고, 설명이 매우 적어서 저에게는 중간중간에 겪는 문제들이 있었습니다. 이러한 문제들에 대한 해답과 정제된 내용이 여러분에게 도움이 됬으면 좋겠네요. 주변광이 무엇인가? 현실세계에서는 수많은 종류의 빛이 존재하며 산란광, 반사광 또 우리가 알아볼 주변광이 거기에 속하죠. 어떠한 빛이 물체를 때리면 해당 물체의 재질(Material)에 따라 특정 비율로 반사되거나 굴절되거나 물체 내부로 들어가 산란하는데 이때 여러경로로 나아가면서 다수의 물체를 때리면서 주변을 밝게 비추어주는 빛이 우리가 이번에 알아볼 주변광입니다. 우선 주변광은 그 .. 확률 기반 아이템 뽑기 알고리즘 목차 소개글 확률 기반 아이템 뽑기 알고리즘 내용 정리 소개글 확률에 기반하여 아이템을 뽑는 알고리즘에 관하여 이 글을 통해 알려드리고 싶습니다. 실제로 작동을 시켜보면 사전에 맞추어둔 확률에 매우 근사한 결과값을 얻으실 수 있으실거예요. 우선 이 알고리즘에 관한 내용은 예전에 어떤 글에서 읽었었는데 지금 찾으려니까 못찾겠네요.. 그때 당시에 저가 읽은바로는 그냥 의사코드도 없이 딱 이렇게저렇게 하면 된다, 이런식으로 이론만 설명이 되있긴했지만 이번에 제 주 언어인 C++로 변환한뒤 최적화까지 해놨으니 게임개발하시는분들은 참고하시면 좋겠습니다. 확률 기반 아이템 뽑기 알고리즘 위와 같이 한 아이템 뽑기상자에 일정한 확률을 가지는 여러종류의 아이템이 들어있습니다. 그러면 이 확률에 최대한 근사하여 아이템을.. [ MS샘플 심층분석 ] D3D12Fullscreen 목차 - 인사말 - 참조 - 솔루션의 구조 - D3D12Fullscreen Demo [] DXSample [] Win32Application [] D3D12Fullscreen @ 서술자힙 내용 구조도 - 부록: 의문점 - 부록: 마무리 인사말 이번에 분석해본 샘플은 DirectX12에서 안정적으로 어떻게 하면 전체화면과 더불어 렌더타겟 버퍼의 크기변환에 관하여 유연하게 전환할 수 있는지, 그 방법을 소개하는 데모이다. 우선 주관적인 난이도를 말하자면, 생각보다 쉽지는 않지만, 절대적으로 봤을때 어려운수준의 데모는 아니였다. 이 샘플도 나에게 큰 도움이 되었으면 한다. 참조 https://github.com/microsoft/DirectX-Graphics-Samples/tree/master/Samples/.. 갑자기 생각난 지형 렌더링 최적화 아이디어 목차 - 인사말 - 내용 - 부록A 인사말 우선 시작하기전에 해당 포스팅은 이론적으로 아직 검증을 못했지만, 언젠가 시도해볼 도전거리라고 생각이 들어 소박하게나마 메모하는 내용이다. 또한, 이 글의 모든 내용은 나의 머릿속에서 나와서 실제 구현했을때에는 오차가 분명히 발생할 수도있다. 내용 우선 초기화단계에서 지형을 쿼드트리나 옥트리로 여러개의 노드로 분할한다. 그러면 분할된 노드를 렌더링단계에서 탐색하게될텐데, 여기서 실질적인 렌더링될 대상의 선별이 진행될 것이다. 탐색할때에는 카메라 프러스텀의 수직시야각과 수평시야각을 각각구해서 프러스텀의 near위치에 존재한 평면의 네 꼭짓점과 far위치에 존재한 평면의 네 꼭짓점을 통해 일정한 방향과 원점을 가지는 반직선을 만든다. 그러면 이 반직선 4개를 모두쏴.. [ MS샘플 심층분석 ] D3D12HelloWorld 목차 - 인사말 - 참조 - 솔루션의 구조 - D3D12HelloTriangle - D3D12HelloBundle - D3D12HelloFrameBuffering - D3D12HelloConstantBuffers - D3D12HelloTexture - 부록: 마무리 인사말 이번에 MS의 DirectX12의 샘플 소스코드를 심층적으로 분석하는 카테고리를 만들어 첫 글을 쓴다. 개인적으로 이 활동과 글이 나의 좋은 성장요소가 되었으면 좋겠다. 또한, 최종적으로는 MS에서 샘플로 풀어둔 "MiniEngine"을 분석함으로써 그 동안 책과 일반적인 강의에서는 배울수 없었던 다양한 고급 렌더링기법에 관하여 자습하고자 한다. 우선 오늘 쓸 글의 내용은 MS에서 공개한 DirectX12 샘플프로젝트들의 골격과 디자인.. 물체를 설치하는 방법 (v2) 보호되어 있는 글입니다. [ 2D ] 두 점을 입력받아 특정 물체를 바라보도록 회전하는 방법 목차 - 최종 결과물 - 이론및 수식 만들기 - 의사코드 - 부록: 상용엔진에서 해당 알고리즘 사용하기 이번에는 2D상에서 두 점 A, B를 입력받아서 A가 B를 정방향으로 바라보도록 하는 방법에 관하여 연구했다. 또한, 그냥 바라보도록하는것에만 그치지 않고, 속도를 최대 약 4.2배이상 증가시키는 최적화 방법까지 연구했다. 이번 내용은 매우 쉽기때문에 간단하게 알아보고 바로 넘어갈려고 한다. 그러면 바로 포스팅을 시작하겠다. 최종 결과물 https://youtu.be/GpENMPo_rp0 이론및 수식 만들기 사실 수식자체는 되게 간단한 편이다. 이 글을 보는 인디게임개발자분들이나 2D게임에 관심이 많은 분들이 봤으면 좋겠다. 우선 나는 Y축회전행렬과 아크탄젠트의 성질을 이용했으며, 최적화또한 비슷한 맥.. 박상우의 연구 노트 보호되어 있는 글입니다. 이전 1 2 다음