묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
Point Light 질문입니다
VS_PointLight 의 VS_OUT에 있는 pos가 SV_Position으로 되어있으니,PS_PointLight에서의 input.pos 범위는 -1~1이 되어야하지 않나요?그래서 왜 Resolution으로 나눠주는건가 하고 디버그 해보니 0~ 1920 범위로 나오더라구요... 왜그런가요
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
27:28 관련 질문입니다
자기 자신을 기준으로 하는 행렬에서 루트를 기준으로 하는 행렬로 변환하기 위해서는 "루트까지 부모의 월드를 곱한다" 라고 말씀해주셨는데,"부모의 월드"라는게 잘 이해가 가지 않습니다. 월드 행렬이 왜 개입하는건가요 ? 루트까지 부모의 SRT를 곱한다가 맞는 것 아닌가요 ??만약 루트까지 부모의 월드 행렬을 곱한다면 그냥 자기 자신의 월드 행렬이 나오지 않나요 ? 이해가 잘 가지 않아 질문드립니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
다른 모델 로드했을 경우 텍스처 일그러짐
항상 좋은 수업 감사드립니다.다름이 아니라 드래곤 모델 뿐만 아니라 다른 모델도 로드해보았더니 텍스처가 잘 입혀지는 부분이 있고 잘 입혀지지 않은(일그러지는 현상) 부분도 있는데 왜 이런 현상이 발생하는 것일까요? 제 프로젝트도 그렇고 수업자료 예시도 그렇고 똑같이 텍스처가 일그러지게 그려지네요 그리고 다른 모델을 로드할 때 텍스처 이름을 바꾸거나 FBXLoader에서 텍스처들의 이름을 받아올때 이름을 가져올 수 없거나 이상한 이름이 로드되는 경우가 있던데 이러한 상황에서는 어떻게 해결할 수 있을지 궁금합니다. 위 사진에서 오른쪽 상단과 같이 일그러지게 렌더링이 됩니다.
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
17:10 퀴즈에 관련된 질문입니다
퀴즈의 내용은 LeftFoot의 월드 행렬은 어떻게 구하는가 ? 입니다.해당 퀴즈를 보고, 왜 인지는 모르겠지만 갑자기 햇갈리는 부분이 생겨서 질문 드립니다.만약 계층 구조가 Root| +-- Parent| +-- Child 이런식으로 되어있다고 가정했을 때, child의 월드 행렬을 구하고 싶다면child_L X parent_W 이렇게 해도 되고, child_L X parent_L X root_L 이렇게 해도 되는건가요? 만약 저렇게해서 된다면 child_L X parent_W X root_W를 하면 child는 parent와 root의 하위 객체라는 뜻이니까 이렇게 해도 child의 월드 행렬이 나오나요 ?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
VertexBuffer와 InstanceBuffer 구별법
저희가 만든 VertexBuffer는 StartSlot을 0번에 바인딩 하고 InstanceBuffer는 StartSlot을 1번 바인딩 한 다음에 따로 파이프라인에게 두 버퍼중에 어떤게 VertexBuffer이고 어떤게 InstanceBuffer인지 알려주지 않아도 되는 이유는 Shader쪽에서 InputLayouut읆 만들때 InstanceBuffer일 경우 강제로 1번 슬롯에 바인딩 될 것 이라고 만들어 줘서 그런건가요? Shader쪽 코드를 좁 분석해 보니까 InputLayout을 생성할때 지정자 이름에 "INST"가 들어가면 InputSlot을 강제로 1로 변환해주는 부분이 있어서요제가 생각한게 정답이 맞는지 궁금합니다
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
ReadModel 에서 메모리 누수가 감지 되는데 이유를 모르겠습니다.
CRT 라이브러리를 활용하여 위 사진처럼 메모리 누수가 뜨고 있는 걸 확인했습니다. 찾아보니 ReadModel 함수에서 발생하였고 bone->parentIndex = file->Read<int32>(); 에서 누수가 나는걸 확인했습니다. 저 부분을 주석 처리하면 누수가 나지 않음을 확인했고, kachujin 외에 dragon, tower 등 다른 fbx 파일들도 예외 없이 저 부분에서 누수가 났는데 계속 찾아보고 고민해봤는데도 왜 crtdbg 에 메모리 누수로 잡히는지 이해가 안됩니다. Read 함수 구현 부분 입니다. 너무 궁금해서 처음으로 질문 남겨봅니다.. !
-
미해결[게임 프로그래머 도약반] DirectX11 입문
4강 삼각형 띄우기 LoadShaderFromFile() 함수
LoadShaderFromFile(L"Shaders.hlsl", "VS", "vs_5_0", _vsBlob); 에서 "VS" 부분에서 E0434 "std::string &" 형식(const 한정 형식 아님)의 참조를 "const char [3]" 형식의 값으로 초기화할 수 없습니다. 오류가 뜹니다해결방법을 모르겠습니다
-
미해결[게임 프로그래머 도약반] DirectX11 입문
사전에 들어야 할 강의
강의마다 계속 "WinAPI 강의에서 배웠다" 라고 말씀을 하시면서 진행을 하시는데, 혹시 해당 강의 보기전에 WinAPI 강의를 사전에 봐야했던건가요 ?
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
T-Pose Local에서 Animation-Pose Global로 변환
애니메이션 강의를 듣던 도중 T-Pose의 Global->Local 행렬에서 Animation-Pose의 Local->Global 행렬을 곱해주어 Vertex의 좌표를 애니메이션 기준으로 바꾸어 주는 부분이 이해가 가지않아 질문드립니다.가장 마지막줄인 invGlobal이 T-Pose의 Global->Local 행렬이고 tempAnimBoneTransforms[b]가 Animation-Pose의 Local->Global 행렬인데 저 두 행렬에 어떠한 상관관계도 없다고 생각되는데 단지 이렇게 곱해주기만 한다고 해서 T-Pose의 Global이 어떻게 Animation-Pose의 Global로 변환이 될 수 있나요?제가 이러한 의문을 제기하는 이유은 두가지 입니다.1. 두 행렬이 동일한 Bone을 기준으로 변환이 되는 행렬들이라고 해도 Animation-Pose에서는 그 Bone이 움직여서 만들어진 행렬이기 때문에 동일한 좌표계라고 생각할수 없다.2. 지금까지 T-Pose의 Local->Global 또는 Animation-Pose의 Local->Global로 변환이 되는 행렬들은 전부 자신과 부모간의 계층구조에 의해서 좌표값이 상대적으로 구성된 아이들이였는데 사진에서 나온 InvGlobal과 tempAnimBoneTransforms[b]는 계층관계도 있지 않습니다.글이 길어서 죄송합니다 계속 생각해봐도 잘 이해가 가지 않아 질문드립니다.ㅜ
-
미해결[게임 프로그래머 도약반] DirectX11 입문
프레임워크설정
기본 프레임워크 설정 부분이 하나도 이해가 안가요.. 그냥넘어가도 되는 부분인가요..?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
전체화면 전환에 대해서
alt+enter 또는BOOL fullscreen;_swapChain->GetSwapChain()->GetFullscreenState(&fullscreen, nullptr);_swapChain->GetSwapChain()->SetFullscreenState(!fullscreen, nullptr);과같이 전체화면 전환시 프로그램이 멈추는데이것저것 다해봐도 해결이 안되네여..
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
애니메이션의 BlendData를 쓰는 과정에 대해서
애니메이션 파트의 ReadSkinData()함수를 통해 blendIndices, blendWeights를 쓰는 과정에서 질문이 있습니다.아래 ReadSkinData() 함수는 보시는 바와같이 사용하는 모든 Mesh를 순회하며 그 Mesh 속에서 연관된 Bone을 또 하나하나 전부 순회하는 과정에서 그 Bone에 영향을 받는 Vertex에 blendIndices, blendWeights를 쓰도록 구성이되어 있는데 그렇다면 서로 다른 Mesh에서 동일한 Bone과 연관되어 있다고하면 똑같은 Vertex를 두번 이상 갱신하게 되는 건가요? 만약 이게 아니라면 애초부터 하나의 Bone이 2개 이상의 Mesh와 연관이 될 수가 없나요?전자가 성립한다면 BlendData가 수치상으로는 문제가 없지만 동일한 값을 할당하는 것을 몇번 더 반복해야되는 경우가 생길수도 있어서 궁금해서 질문 드립니다
-
미해결[게임 프로그래머 도약반] DirectX11 입문
vertex shader, rasterize 질문입니다
vertex shader를 처리할때 _vertexBuffer에 들어있는 꼭짓점을 받아서좌표를 변환하는 과정으로 이해했습니다. ia과정에서 나오는 결과물이 mesh라고 하셨는데이부분에서 약간 혼동이 있는 것 같습니다. 제가 생각한 바로는, IA과정 에서는아직 mesh가 그려지진 않았고, 각 점들과 layout, 그 점들로 무엇을 그릴지에 대한 정보가 있는 상태입니다(삼각형). vertexshader에서 좌표계 처리를 하고rasterize과정에서야 점들끼리 잇고 보간을 합니다.(렌더링 범위 지정) 이후 PS과정에서 shaderResource와 uv값을 이용해서실제 색을 칠하는 과정 (수치적으로)을 거친 후에 output merge과정에서 indexBuffer를 참조하여 backBuffer에 실제 렌더하는 과정을 거친후에 고속 복사를 하여 렌더링을 완료하게됩니다. 해당 렌더링 프로세스를 제가 잘못이해한 것인지 궁금합니다.(결과적으로 IA작업에서, 꼭짓점 뿐만 아니라 꼭짓점 사이의 EDGE에 대한 정보도 이미 전부 가공된 채로 VS에 넘어가는것이었나에 대해 궁금합니다.. mesh는 꼭짓점 사이의 edge도 그려져 있지 않나요?)
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
skybox 강의 중 에러
안녕하세요, skybox 강의 듣는 도중에 다음과 같은 에러가 발생합니다.SceneManager 에서 물체를 하나씩만 scene->AddGameObject() 해보면 각각 잘 나오는데 둘다 add하면 에러가 발생합니다.샘플코드는 잘 작동하고, 이전 챕터까지도 이상이 없어서 코드가 잘못됐나 싶어서 여러차례 훑어보고 복사붙여넣기 해봐도 안됩니다.짐작가시는 부분이 있으시다면 말씀 주시면 감사하겠습니다.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
다렉 수업 전에 들어야 할 수업들이 있나요?
안녕하세요제가 미리보기 강의들을 보다가 수업 방식도 마음에 들었고 미리보기 예제 코드를 다운 받기 위해서 그냥 바로 수업 신청을 했습니다. 근데 초반에서 지속적으로 전에 수업에서 다 배웠다고 많은 부분들을 그냥 넘어가셔서 제가 이해가 잘 가지가 않습니다. 혹시 배우지 못했던 부분만을 따로 빼서 저렴하게 강의를 올리실 의향이나 아니면 제가 따로 공부하고 와야 할 부분을 알려주실 수 있을까요? 좀 많이 당황스럽습니다.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
1주차 복습 질문
1분 50초 쯤에 SwapChain으로 고속 복사가 발생한다고 말씀 해주셨는데검색을 해서 자료를 찾아보면 DXGI_SWAP_EFFECT_FLIP_DISCARD대신에 DXGI_SWAP_EFFECT_FLIP_DISCARD를 통해서 스왑체인을 만드신 이유가 궁금합니다. 찾아보니까 전자의 경우 말 그대로 플리핑이 일어나서 복사가 필요없고 후자의 경우 복사가 발생하는 정도까지 얕게 파악을 했는데 루키스님의 DX를 공부할 때 숲을 보는 느낌으로 '그냥' 후자를 사용하신건지 궁금합니다
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
Texture 샘플링 관련해서 질문이 있습니다
PixelShader 구간에서 Texture를 Sampling 해주는 과정에서 질문이 있습니다.예를들어 Quad(사각형)을 렌더링하는 경우 Quad의 각 정점4개에 Texture의 양 끝 UV좌표들 (0, 0), (1, 0), (0, 1), (1, 1)을 대응시켜 Shader에 넣어준다고 치면, 저는 이 Quad를 이루고 있는 Vertex의 수만큼 VetexShader, PixelShader들을 통해서 렌더링이 된다고 알고 있었습니다.하지만 처음에 넣어준 정점 4개의 부분 말고도 그 4개의 정점 사이사이들(ex)(0, 0.3) or (0.4, 0.8))에 있는 VertexBuffer에 넣어주지 않은 정점도 다 Texture의 UV와 일치하게 렌더링 되더군요.파이프라인에서 VertexBuffer에 넣어주지 않은 정점까지 Shader 작업을 하진 않을거 같아서 원래 알고 있던대로 정점의 개수만큼 파이프라인이 돌아간다면 이걸 제가 알고있던 개념에 적용시켜 생각해봤을때 Vertex의 개수에 맞게 Shader렌더링이 4회 되지만 그 내부의 PixelShader 부분에서 정점의 UV좌표들 사이사이를 매꿔주는 부분이 존재하고 이로인해 각 정점들뿐만 아니라 그 사이사이의 빈 곳들도 알맞게 렌더링이 됬다 라고 생각이 되는데 이게 맞을까요?만약 제 생각이 잘못됬다면 어떻게 넣어준 4개의 UV좌표만을 가지고 Texture를 전부 Sampling하나요?
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
DepthStencilView에 대해서
오늘 DepthStencil을 통해 오브젝트의 깊이를 판정해서 앞에 있는게 뒤에있는것을 가리면서 그리는 방법을 배웠습니다 그런데 궁금한점이 OutputMerge 단계에서 이 정해준 DepthStencilView의 옵션을 통해 랜더링이 된다고 지정만해주고 앞에 있는 물체가 뒤에 있는 물체를 가려준다는 알고리즘은 넣지 않은거 같은데 자동으로 잘 가려 주더군요 이런건 DX 내부 파이프라인에서 알아서 해결해주는 부분인건가요? 만약 그렇다면 오브젝트마다 주어진 Transform 데이터와 카메라의 Transform, View, Projection 데이터를 통해 파이프라인에서 0~1 사이의 깊이값을 각 픽셀마다 매핑해놨다가 그려주는 방식을 취하는 건가요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
코드 C2259 'PixelShader': 추상 클래스를 인스턴스화할 수 없습니다.
오류의 문제를 못 찾겠습니다 어떻게 해야 하나요 ?
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
DirectX 3D에 대해 질문이 있습니다
DX 3D를 배우면서 원초적으로 궁금한점이 생겼는데 저희는 지금 Vertex를 표현할때 x, y, z좌표를 사용해 도형을 표현해주는데 x, y 좌표는 모니터의 x, y 픽셀과 대응되기 때문에 자연스럽게 렌더링 시킬수 있다고하지만 z좌표는 도대체 어떻게 렌더링이 되는 건가요? 이건 DX 파이프라인에서 알아서 설정해주는 건가요?입력되는 데이터에 z좌표 하나를 추가로 넣어주는것 외에는 아무것도 하지 않았는데 어떻게 도형이 3D처럼 렝더링시킬 수 있는건가요?