DirectX1217

DirectX12에서 텍스트를 렌더링하는 2가지 방법 소개 안녕하세요. 오랜만에 강좌글이 돌아왔습니다 ..! 강좌라기보다는 방법론에 관한 글이라고 하는게 더 정확하겠군요. 이번 포스팅에서는 DirectX12에서 직접 사용자정의 폰트를 통한 텍스트를 출력하는 방법에 관하여 알아보겠습니다. 예를들어서 이런식으로요. 그러면.... 바로 시작하겠습니다..!! 1번째방법. 메쉬위에 텍셀좌표를 조절해서 그리기 이 방법은 우선, 직접 해야할것들이 많습니다. 대신 2번째방법보다 오버헤드가 훨씬 적으며, 좀더 세부적으로 글씨나 문자에 대하여 다룰수 있습니다. 이 방법은 우선 동적 정점버퍼를 가진 메쉬를 생성하는데에서 시작합니다. 1-1. 메쉬만들기 void BuildFont() { mFontData["original"] = TextFont::LoadFontData("fontda.. 2022. 8. 8.
방학에 할일 정리 해당 내용만 하자가 아니라, 최소 이거는 해놓자 입니다. [ 7월~8월 ] - Dx12 캐릭터 애니메이션 마무리 - DirectX12 UI & Font 프로젝트 완성시키기 : DirectX12기반으로 UI와 폰트 생성하는 프로젝트임. 이거 만들어놓으면 앞으로 Dx12게임엔진 만들때 매우 유용하게 사용될것임. Github주소 -> https://github.com/orangelie/Dx12UIFont.git GitHub - orangelie/Dx12UIFont: DirectX12-based user interface and font. DirectX12-based user interface and font. Contribute to orangelie/Dx12UIFont development by creati.. 2022. 7. 9.
사원수(Quaternion) 챕터 끝.... 사원수(Quaternion)을 이용한 키프레임 애니메이션 실습이 끝났습니다. 제 깃허브에도 커밋해놨습니다. 후.... 드디어... 대망의 마지막챕터인 "캐릭터 애니메이션"이 남았네요.. 이 챕터는 스키닝메시(skinned mesh)를 이용하는것같드라구요!! 아 참고로 주변광차폐는 좀 양이 많아서, 캐릭터애니메이션 끝내고 할예정!! 2022. 6. 29.
[물리엔진공부] 물리엔진을 위한 간단한 렌더링엔진 만들었습니다. 일단 이번에 물리시뮬 실습을 하는데, 저가 이전까지는 그냥 렌더링엔진 만들기귀찮아서, VPython으로 물리엔진공부했었는데, 이번에 아예 dx12기반으로 각잡고 만듦. 일단 이번에 만든 렌더링엔진의 주목적은, 물리엔진을 돌리는것과 간단하게 구현할수있어야하는것. 이기 때문에, 저는 진짜 엄청쉽게 만들수있도록 패턴을 설계함. 다음과같이 엄청간단히 위 게임을 만들수있었습니다. /* * * * Github: https://github.com/orangelie * // Copyright (C) 2022 by orangelie, Inc. All right reserved. * // MIT License * */ #include "SAMPLES/PhysicsEngine.h".. 2022. 5. 28.
[DirectX12] 노말맵핑 끝~ 쉽게 노말맵핑 비교하는걸 사진으로 찍었어요. 왼쪽이 노말맵핑 적용안한거고, 오른쪽이 노말맵핑 적용한거입니다. 차이가 느껴지시나요? 살짝더 불룩 튀어나와보여지는게 느껴지네용.... 다음은 그림자맵핑..... 그림자맵핑 살짝 흝어봤는데... 좀 빡쎌듯.. 2022. 5. 20.
[DirectX12] CCTV감시카메라, 물리시뮬레이터 2탄 만들었습니다. 오늘은 졸린관계로.. 영상만 올리고 빠지겠습니다.. 우선 CCTV만들어본거예요. 엄청 귀차니즘이 심해서 그냥 x축으로 회전시킨 평면을 판으로씀 ㅋㅋㅋ,...(크흠..) 저거 중간에보면 cctv가 여러개의 씬으로 짤라져서 보이는데, 그거는 pass 늘리면 해결되는문제임니다. 이거 응용하면 드론구현하는것도 쌉가능 이거는 물리시뮬레이터예용. 그냥 기능은 공 부딫치면, 충돌처리하고, 반응만들기(무중력상태라고 가정) 여기에 중력이나 관성같은 저항, 힘들 추가하면 좀더 완성도있어보이겠죵..? 그리고 볼록거울 구현한 예제도 있는데, 지금 너무 졸려서 바이바이~ 끝 ! 2022. 5. 19.
[ DirectX12 지형엔진 ] 일단 기본 프레임워크 제작끝.... 후.... 일단 기본적으로 dx11기반으로 진행하는 rastertek강의를 위한 dx12프레임워크 제작끝... 저가 대충 rastertek 지형엔진 강의 둘러봤는데, dx12로해도 상관없을것같음. 이번에 만든엔진은 책이나 인터넷안보고 아예 1부터 100까지 저의 머릿속내용으로만 코딩했어용. 실력좀 늘리려고 책이나 인터넷안보고 머릿속으로만 코딩해서 잘되가고 있는지는 모르겠네용... 그래도 아직까지는 오류없이 잘 동작하니까 굿..! 오늘한거 깃허브에 커밋하고 저는 잡니다.... 쓰으읍..하.... 다음은 그리드랑 카메라이동이네요... 카메라이동기법은 이미 알고있지만, rastertek강좌에서는 어떻게 구현하는지도 배울겸, 이부분은 그대로 rastetek강좌보면서하고, 그리드(Grid) 2022. 5. 4.
계산셰이더 어렵다... 깊이스텐실버퍼쪽은 아무것도 아니였네... 스레드랑 스레드그룹에 관한 개념은 이해가 갔지만, 이번에 실습중인 프로젝트의 매커니즘자체가 이해가 안감.... 흠.... 내 능지.. 괜히 마음만 급하네...ㅠㅠ.. 휴우.... 되도록이면 동생생일에 다렉12로 생일선물 만들어주려고 살짝 급하게 공부중인데,,,, (동생생일 5월말) 허..... 가능..??할까...?그때까지 최소 입방체맵핑까지는 공부해둬야 좀 선물같은 선물이될텐데.... 괜히 급하게해서, 이론공부도 못하고, 동생 생일선물 완성도도 떨어질듯...ㅠㅠ 2022. 4. 1.
DirectX12. 텍스쳐실습끝 혼합(blending)들어갑니다.....! 제목그대로 텍스쳐실습을 모두 맞추었습니다. 저기 네모난상자모형에 사용한 텍스쳐는 뭘까요?? 큭큭 몇주일~개월뒤에.. 공개합니다 ... (소소한 미래에 올릴 포스팅글의 떡밥) 힌트는 "원신 ㅋㄹㅌ ㅁㄷㅂㅇ에 사용할 텍스쳐" 입니다.. 드디어 텍스쳐단원을 탈출합니다...! 흠... 아직은 srv가 익숙치는 않아요. 하지만 dx12에서 어떤시스템으로 돌아가는지는 대충 알겠네요. 요약해서 여러개의 텍스쳐를 다루려면: 서술자힙 1개 만들고->서술테이블갯수를 렌더링할 텍스쳐갯수만큼 만들고, 셰이더에는 그냥 서술자힙의 갯수만큼만 Texture2D객체 올리면됨. 굿! 그리고, SamplerState객체는 Texture2D객체랑 아예 다르게관리함. 레지스터도 다르기때문에 그냥 별개의 메모리영역이라고 생각하면됨. 조만간 .. 2022. 3. 19.
DirectX11 공부 7주차. 멀티 텍스쳐링과 텍스쳐 배열 안녕하세요!! 오랜만에 dx11 공부가 돌아왔습니다. 저는 이제 dx12에서 텍스쳐를 거의끝마치고 혼합단계에 들어갑니다... 확실히 dx12로 텍스쳐 엄청 지지고볶고 dx11와서 공부하는데에... 와.. 이해가 너무 잘되더라구요. 예전같았으면은 그냥 그대로 따라했을텐데, 이번에는 대충 강좌글 흝어보고, 뚝딱뚝딱 알아서 만들어보았습니다. (사실 dx12만 보다가 dx11로 오랜만에 와서그런지 dx11초기화공정을 까먹어서 한번더 보고시작함. ㅎㅎ..) 일단 이번에 공부한 내용은 멀티텍스쳐링입니다. 여러개의 텍스쳐배열을 통해서 픽셀셰이더에서 텍스쳐배열로 불러온 텍스쳐들을 모두 합치는 기법이예요. 참고 https://www.rastertek.com/ RasterTek - DirectX 10, DirectX 11.. 2022. 3. 18.
빛&카툰셰이딩 실습 끝! 이번에 빛이랑 셰이더공부하면서 책에 끝에있는 연습문제중에서 카툰셰이더 구현문제가 있길래, 풀어보았습니다. 흠.... 처음에 어떻게 구현할까 책의 힌트를 봐가며, 고민해봤죠. [책에 적혀있던힌트] 카툰스타일조명의 한가지 특징은 한 색조에서 갑자기 다른 색조로 넘어간다는것이다. 흠.... 고민하다가, 분산반사율을 조정해야하나? 아니면 빛계산으로 구해진 평행광을 조정해야하나? 고민하다가 하나씩 다 넣어보니까 평행광->점광->점적광을 모두 계산한 빛에다가 카툰셰이딩을 지지고볶고해보았습니다. 실제 구현부분은 밑에 코드로 남겨놓겠습니다. 그냥 C++에서 일일이 DiffuseAlbedo를 조정하는것보다 hlsl셰이더쪽에서 모든 유형의 빛의 계산이 끝난뒤 한번에 계산하는것이 편하고 심플할것같아서 그렇게했습니다. 만들어.. 2022. 3. 10.
Model loader(모델 불러오는 프로그램) 만들었습니다. 기반은 예전에 정육면체만들었던 프로젝트위에다가 만들었습니다. 깃허브에도 올려놨어욧~ https://github.com/orangelie/DirectX12Study/tree/main/4.%202022-03-03%20(Model_Renderer) GitHub - orangelie/DirectX12Study: DirectX 12 Study & Developing GameEngine Application(Platform). DirectX 12 Study & Developing GameEngine Application(Platform). - GitHub - orangelie/DirectX12Study: DirectX 12 Study & Developing GameEngine Application(Platform).. 2022. 3. 3.
rastertek강좌에서 소개하는 프러스텀 컬링 기법이 의미하는 수학적 해석 안녕하세요! 이번에 rastertek강좌에서 소개하는 프러스텀 컬링기법에 사용된 수학적인 해석을 토론해보는 시간을 가져보도록하겠습니다. 저가 프러스텀컬링 기법을 검색해보니 많은 자료가 나왔는데, 그 중에서 이 기법에 관하여 rastertek강좌를 번역및 편집해주시는분이 보이지 않더라구요. 그래서 한번 포스팅올려봅니다. 우선 rastertek강좌를 보다오신분은 해당 링크에서 공부해오셨는지 확인해주시기 바랍니다. http://www.rastertek.com/dx11tut16.html Tutorial 16: Frustum Culling Tutorial 16: Frustum Culling The three dimensional viewing area on the screen where everything is .. 2022. 1. 22.
[3장] 좌표 변경 변환 문제풀이 | DirectX 12를 이용한 3D 게임 프로그래밍 입문 변환 28번 문제 풀이 일단 저는 밑에 문제를 풀어보았습니다. 최소값이되는 점 (1, 1)과 최대값이 되는 점 (3, 3)을 x축에 대하여 2단위 비례시킨 행렬을 구하라. 라는 생각으로 풀었죠. 풀이 우선 사각형의 중점을 원점으로 설정하기 위해, 사각형의 중점을 구해줍니다. \( 사각형의 중점의 좌표 ={(3, 3) / (1, 1)} / 2 = (2, 2) \) 이제 좌표 변경 변환을 수행합니다. 우선 저는 최소점좌표를 \( (min_{x}, min_{y}) \) 로 두겠습니다. 그리고 최대점좌표는 \( (max_{x}, max_{y}) \) 로 두겠습니다. 그리고 중점의 좌표를 \( (side_{x}, side_{y}) \) 로 두겠습니다. 그러면,, 이를 통해 좌표 변경 변환을 수행하면? 좌표 변경 .. 2021. 12. 16.
간단하게 DirectX 최신 버전 설치 & 개발 환경 세팅 간단하게 DirectX 최신 버전 설치 & 사용해보기 안녕하세요! 이번에는 DirectX의 최신버전을 설치하고 비주얼스튜디오에서 환경을 맞추어보도록 하겠습니다. 이 강좌는 간단하게 나중에 여러가지의 포스팅을 위해서 게시된 글입니다. 다운로드 DirectX의 최신버전은 Microsoft의 정식사이트에서 다운로드가능합니다. https://www.microsoft.com/ko-kr/download/details.aspx?id=35 Download DirectX 최종 사용자 런타임 웹 설치 관리자 from Official Microsoft Download Center 중요! 아래에서 언어를 선택하면 전체 페이지 내용이 해당 언어로 신속하게 변경됩니다. 네덜란드어독일어러시아어스웨덴어스페인어영어이탈리아어일본어중국어.. 2021. 11. 28.