월 44,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
구글링으로 도저히 해결이 안되어 질문 남깁니다 ㅠㅠ
사전작업 문제없이 진행했는데 , 클라이언트 pch.h파일에서 Enigine을 못불러오고 있습니다. 모든 설정 강의에서 나온대로 변경하고 진행했는데 왜 못불러 오는지 모르겠습니다.. 파일 위치가 문제가 있는것도 아닌거같은데..ㅠㅠ 구글링으로도 전혀 수정이 안되네요
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
DirectX 리뉴얼 강의만 들어도 괜찮을까요?
현재 C++과 언리얼로 만드는 MMORPG시리즈 part2 DirectX12를 수강중에 있습니다. 강의를 따라가는 것이 벅찬 감이 있는 와중에, 강의가 리뉴얼되고 있는 것을 알게 되었습니다. 강사님께서 리뉴얼하게된 배경도 알게 되었구요. 그렇다면 일단 DirectX 리뉴얼강의 부분만 듣고 part3으로 넘어가도 괜찮을까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
텍스쳐 맵핑 LNK2019 에러
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 루키스님 강의 마지막 부분에서 클라이언트 프로젝트를 빌드할 때 위 사진과 같은 에러가 발생합니다. 라이브러리 경로 다시 확인해보고, 코드 전부 복붙해서도 실행해봤는데 해결이 어렵습니다 ㅜㅜ 두번째 사진에서 texture->Init 부분 주석처리하면 일단 빌드는 됩니다. 혹시 속성에서 놓친게 있을까봐 사진 첨부하겠습니다. 감사합니다. \
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
렌더타겟과 버퍼 질문
안녕하세요 선생님.SwapChain클래스에서 두개의 버퍼를 만들었고, DescripterHeap의 Init에서 CreateRenderTargetView 함수를 호출했습니다. 질문 1. 버퍼는 화면을 출력하기 위한 리소스, RTV는 각 버퍼마다 GPU에게 명령을 내리기 위한 기안서라고 이해하면 될까요? 질문 2. 그렇다면 RTV 개수와 버퍼 개수는 동일한가요?버퍼, RTV 두 용어가 헷갈려서 질문글 남겨봅니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
ConstantBuffer 소멸자 if문 이중으로 사용하는 이유를 모르겠습니다
ConstantBuffer::~ConstantBuffer(){ if (_cbvBuffer) { if (_cbvBuffer != nullptr) _cbvBuffer->Unmap(0, nullptr); _cbvBuffer = nullptr; }} 위의 부분에서 이미 if (_cbvBuffer) 로 nullptr이 아니라는 걸 확인했는데 if (_cbvBuffer != nullptr) 로 한번 더 비교하고 동작해야하는 이유가 뭔지 모르겠습니다. 그리고 코드에서 ConstantBuffer PushData함수에서 assert 비교를 _currentIndex < _elementCount가 맞는거 같습니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
카메라 부모 설정 질문
안녕하세요 좋은 강의 잘들었습니다 최근 강의를 전부 수강하고 여러가지 시도를 해보고있는데 질문이 생겨 여쭤보려고합니다 1. 저는 카메라를 용 위쪽에 고정 시키고 싶습니다. 강의를 다시 돌려보며 Transform.h에 부모를 설정 할 수있는 기능이 있다는 것은 찾았으나 어떻게 적용 시켜야 할지 몰라 활용하지 못했습니다. 메인 카메라에게 어떤식으로 부모를 설정해 줄수 있을까요? 또한 설정한 뒤 카메라의 상세한 위치를 보기 좋게 미세 조정하려 한다면 어떤 방식이 좋을까요? 2. 제가 카메라가 아닌 용을 움직이고 싶어 이리저리 코드를 바꾸다가 테스트카메라스크립트에 있는 WASD 조작 코드를 TestDragon.cpp에 옮겨 용이 움직이는 것은 확인했으나 동작 원리를 명확히 파악하지 못했습니다. 처음 움직일 오브젝트의 Vector3 좌표를 구하는 Vec3 pos = GetTransform()->GetLocalPosition() 코드가 함수를 통해 좌표를 구한다는 것은 이해했으나 GetTransform이 용의 좌표를 가져오는 것인지 카메라 좌표를 가져오는 것인지 알수가 없었습니다. 기존 조작 코드를 TestDragon에 넣는 것으로 좌표 값이 카메라에서 용으로 바뀌었으나 명확히 이해하고 동작 시킨 것이 아니었습니다. GetTransform은 어떤 기준으로 오브젝트를 정해 좌표를 가져오는 것언지 궁금합니다. 또한 이런 방식이 아닌 기존의 코드를 유지하고 테스트카메라스크립트에서 용의 좌표를 받을 수 있는 방법이 있다면 알고싶습니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
struct MeshRenderInfo 저장에 관해서
안녕하세요 좋은 강의 잘봤습니다! 다름이 아니라 DirectX 강의를 바탕으로 포트폴리오를 제작하려 합니다. 그래서 Animation 강의 1:10:00 쯤에 디버깅 시간을 줄이려면 MeshData랑 Animator의 정보를 저장하려고 합니다 일단은 Animator 부분은 아직 이해가 덜 되고 콘솔창에 시간을 출력 해봤을 때 이 부분보다 MeshData 쪽이 시간이 많이 오래 걸려서 MeshData 부터 저장하고 불러오는 코드를 작성하려 합니다 처음엔 MeshData가 포함하는 Mesh, Matrial클래스 하위의 변수들을 전부 txt파일로 저장할까 하다가 두 클래스에 변수가 추가되면 txt파일 저장 함수도 수정해야되는 하드코딩이라 다른 방법을 구글링 해봤는데, POD도 나오고 직렬화 라이브러리 사용도 나오고 fwrite도 나오는데 이중에서 제가 원하는 대로 작동하는게 없네요ㅠ 어떻게 해야 MeshData를 저장 할 수 있을까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
Engine.lib를 찾을 수 없습니다.
올려주신 수업자료 압축풀고 그대로 실행 시켰는데 Engin.lib 를 찾을 수 없다고 나옵니다. 버전을 v142에서 v143으로 업그레이드 하긴 했는데 버전 문제 인가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
안녕하세요 최적화 관련 질문 드립니다.
우선 양질의 강의 감사합니다. 완강 후 추천해주셨던 "Directx12를 이용한 3D게임 프로그래밍 입문 - 프랭크 D.루나" 책을 보며 실습하는데 많은 도움이 되었습니다. 이제 언리얼이나 유니티를 접하기 전에 Directx를 이용해 포트폴리오를 만들고 싶습니다. (C언어에서 Python을 접하고 다시 C언어로 코딩하고 싶지 않은 느낌입니다.) 최적화 기법에 대해 좀 더 공부하고 구현해서 포트폴리오의 장점으로 부각시키고싶어 질문드립니다. 3가지 최적화 기법(오브젝트 및 터레인 LOD, Static Batching, 멀티 쓰레딩)을 강조하고싶습니다. 멀티 쓰레딩은 안되겠다 싶으면 포기할겁니다. 기법들의 난이도가 면접관 입장에서 포폴의 강점이 될 수 있는지 궁금합니다. "DirectX12를 이용한 3D게임 프로그래밍 입문" 책에서 Frame Resource(cmd_allocate 및 버퍼를 여러개 만들어 cmd_list가 끝나는것을 기다리지 않고 다음 프레임의 명령리스트를 미리 작성하는 것)와 같은 자잘한? 기법들의 명칭들을 알고싶습니다. 또 DX12를 이용해 포폴을 만들려면 추가적으로 어떤것들을 알아야하는지 궁금합니다. 마지막으로 IA단계를 지나 버텍스쉐이더 단계에 들어오면 버텍스 쉐이더에서 컨스턴트 버퍼를 이용하여 인덱스 버퍼를 결정하거나 수정하는것은 지원하는 기능이 없나요? 추가적으로 강의에서 말씀하셨었지만... 출시되어있는 게임의 클라이언트에서 리소스(메쉬, 텍스처 등등)를 추출해서 포폴을 만들고 유튜브에 올려도 수익창출만 없다면 문제가 없을까요? 강의 외적인 질문이 많아 죄송합니다. 답변 미리 감사드립니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
Frustum 평면 만드는 부분에서 생긴 질문입니다.
위 사진처럼 Front Plane을 만든다고 했을 때, 0 1 2 순서대로 넣어서 Plane을 만들게 되면 그 Plane의 노멀 벡터는 외적 오른손 법칙의 성질대로 위 사진처럼 나오게 된다고 알고 있습니다. 근데 영상 속 코드에선 오히려 0 2 1 순서가 아닌 0 1 2 순서로 되어 있어서 예상되는 노멀 벡터의 방향이 반대 방향으로 되어 있는데, 제가 뭔가 잘못 이해한 것 같아서 여쭤봅니다. 코드도 제대로 동작해서 뭔가 제가 잘못 이해한 것 같은데... 어느 부분에서 놓쳤는지 잘 모르겠습니다 ㅠㅠ - 아! 왼손 좌표계를 사용하니 반대로 동작하는 것까진 이해했습니다. 그럼 왼손 좌표계에선 왼손을 사용해서 노멀 벡터의 방향을 예측하고, 오른손 좌표계에선 오른손을 사용해서 노멀 벡터의 방향을 예측하는 건가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
애니메이션 관련 질문입니다.
1. bone frame에 저장되는 정보들은 to_root 정보들인건가요? 2. 애니메이션을 넣으려면 루트 본에 있는 vertex 위치가 아닌 본의 좌표계 기준으로 한 vertex 위치가 필요하기 때문에, 본의 좌표계 기준으로 vertex 위치를 얻는 오프셋 변환이 필요하다고 말씀하셨는데 오프셋 변환을 하는 부분은 코드 어디에 있나요? 3. g_final[threadIdx.x] = mul(g_offset[threadIdx.x], matBone); 위 코드는 단지 오프셋과 그 to_root 매트릭스의 조합처럼 보이는데, 이 수식이 어떤 원리로 Final_i를 나타내는 것 인가요? 영상을 찾아봐도 이해가 잘 가지 않아서 여쭤봅니다. 좋은 하루 보내세요
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
분명 mesh는 1개인데 삼각형은 두개가 그려지네요?
분명 mesh는 1개인데 삼각형은 두개가 그려지네요? mesh의 transform을 설정해주고 render를 하는게 두번이 반복돼서 오른쪽으로 밀린게 한번 그려지고 그 다음 위로 밀린게 한번 그려지는거 같은데 그렇게 생각하려니 이해가 가지 않는것이 CMD_LIST->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); CMD_LIST->IASetVertexBuffers(0, 1, &vertexBufferView); // Slot: (0~15) 은 Instancing에 사용됨 g_Engine->GetConstantBuffer()->PushData(0, &transform, sizeof(Transform)); g_Engine->GetConstantBuffer()->PushData(1, &transform, sizeof(Transform)); CMD_LIST->DrawInstanced(vertexCount, 1, 0, 0); 부분에서 이미 버퍼의 위치를 덮어쓴거 아닌가요? (라고 생각했습니다... PushData를 뜯어보기 전까진...) PushData역시 CommandQueue에 들어가는 것이기 때문에 RenderEnd로 그려지기 시작하면서 레지스터에 버퍼의 주소값을 바꿔주는것도 포함이 되는 것이겠네요. 그리고 비슷한 느낌으로 mesh->Render(); { mesh->SetTransform({ Vec4(0.5,0.5,0.5,0) }); mesh->Render(); } 이렇게 코드를 작성해봤었습니다. (Mesh의 Render가 호출 되는 부분은 이게 끝입니다.) 근데 영상에서 SetTransform을 두번 쓴 코드와는 다르게 이렇게 하니까 삼각형이 하나밖에 그려지지가 않네요...? 혹시 이런건 왜 그런건지 알 수 있을까요? 똑같이 트랜스폼 세팅되고 정점버퍼세팅됐는데...
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
강의를 만드실 때, 다른 API 대신 DirectX12를 선택하신 의도가 궁금합니다
Dx11은 드라이버에서 알아서 최적화도 해주고 gpu큐에 작업도 알아서 넣어주는 둥 스케줄링 기능도 있는 반면에 DX12는 프로그래머가 직접 작업을 할당하고 최적화도 직접하라고 low level API를 제공한 형태로 압니다. 그래서 프로그래머 실력에 따라 천차만별의 성능과 안정성을 보여주는 게 DX12이라 초보자가 이 강의를 보고 DX12 포폴용 게임을 만들면, DX11 버전보다 발적화에 VRAM leak 터지는 불안정한 게임을 만들 확률이 매우 높을 것이라 생각합니다. 거기에 배우는 것도 큰 장벽이 있습니다. 물론 이 강의 목적이 그래픽스 이론을 가르치기 위함인 것은 알고 있는데 그건 다른 API를 통해서도 가능합니다 근데 왜 DX12를 선택하셨나 궁금합니다~! 초보자가 깨닫지 못하는 선생님의 깊은 뜻이 있을까요? 예를 들어 GPU의 동작과 처리를 저수준까지 자세하게 가르치기 위함 같은 것이 있나요? (마치 초보자에게 파이썬 대신 C언어를 가르치는 것 처럼)
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
this->_cmdListptr_ 이 nullptr
안녕하세요 선생님 이제 장치 초기화 다 듣고 코드 하나씩 보면서 흐름을 이해 했습니다. 그리고 프로그램 실행해보려는데 cmdListptr이 nullptr이라면서 읽기 액세스 위반이라고 뜹니다 이런 오류형태를 한번 검색해 봤는데 null상태의 내부에 접근하려면 생기는 오류같더군요. cmdList가 왜 null로 설정이 되어있는지 모르겠습니다... CreateCommandList함수로 cmdList를 채워줬다고 생각하고있습니다. 강의 자료 코드랑 비교해 봐도 다른게 없어서 질문남겨봅니다.. 디버깅 없이 코드 실행하면 파란색 화면도 안나오고 몇초 뒤에 창이 꺼져버립니다...
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
directx12 충돌처리
directx12를 통해 프로그램 제작하고 있다가 궁금해서 질문합니다. 충돌처리를 하고싶은데 혹시 따로 다이렉트만의 충돌방법이 있을까요?
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
DirectX 자체엔진?과 추후 일정에 대해 질문드립니다!
유튜브에서 포트폴리오용으로 올리신 자체제작엔진(?)을 봤었습니다! 그래서 자체제작한 엔진도 공부해서 만들어볼 수 있으면 좋겠다 싶은데 이 강의 말고도 DirectX자료에 대해서 찾아봤는데 생각처럼 많이 나오진 않는거 같고 그래픽스 관련은 많아도 또 엔진을 제작하는 거는 자료를 찾기가 어려운 것 같아서 질문드립니다... 자체 제작 엔진은 WinAPI로 UI를 만들고 그걸 DirectX코드와 결합해서 만드는 것인가요?? 그리고 DirectX 리뉴얼 강의나 추후 UE5강의는 언제쯤 완성이 될까요..! 요즘 바쁘신건 알지만 많이 기다렸던 만큼 궁금해져서요ㅜㅜ 대강이라도 일정을 알려주시면 감사하겠습니다!
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
default.hlsli 파일에 관해서
안녕하세요!쉐이더 파일을 만드실때에 hlsl이 아닌 hlsli 로 만드신 이유가 궁금합니다.둘의 차이에 대해서도 궁금합니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
exe 파일이 만들어지지 않는 경우..
안녕하세요! 강의를 보면서 따라서 코딩을 하고 있는 도중 "CPP_DirectX\Output\Client.exe 를 열 수 없습니다." 라는 링크 에러가 생성되어 항상 그렇듯 다른 .exe가 켜져있는 줄 알고 작업관리자에서 확인해봐도 없었고 컴퓨터를 껐다가 켜도 똑같은 오류가 반복되었습니다. 결국 파일을 다운받아서 exe 파일만 옮겨보자해서 옮겼더니 바로 실행이 되었습니다. 코드를 수정해도 구동이 잘 되었습니다.. (원래 빌드하게 되면 exe 파일이 생성 되야 하는 것 아닌가요...?ㅜㅜ) 이런 경우는 어떤 환경일 때 생성이 되나요? DirectX 관련하여 이런 오류는 자주 등장하게 되나요? 아니면 혹시 제가 다른 작업도 하고 있어서 visual 2019 와 visual 2022를 번갈아 사용하게 되면서 다른 버전으로 솔루션을 열은 적이 있는데 이런 것 때문인가요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
insideTess가 1에서 2로 변할 때는 변화가 없고 3부터 변화가 있네요.
33:13에서 insideTess를 2로 바꿨을 때 삼각형이 늘어나지 않았지만 3으로 하니까 늘어나네요. 왜 그런 걸까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
Shadow RT이 SV_Target인가요?
// g_tex_2 : Shadow RT 이게 g_tex_2 텍스처 2번을 아까 우리가 셰도우 쉐이더에서 렌더 타깃으로 적어준 그 애을 사용해가지고 넘겨받아가지고 걔를 이제 사용할 것이라고 하셨는데 shadow.fx에서 target은 SV_Target 이거니까 Shadow RT이 SV_Target이고 SV_Target값을 lighting.fx에서 g_tex_2로 넘겨 받았다는 의미가 되는 건가요?