묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨게임 엔진 만들기 - Directx11와 imgui를 이용하여 기반 구조 만들기 (PART1)
혹시 영상이 안되는 이유가 있을까요?
혹시 영상이 안되는 이유가 있을까요? Members-Only Contents 라고 뜨네요
-
미해결[게임 프로그래머 도약반] DirectX11 입문
Model.cpp에서 ReadMaterial()의 SpecularTexture 부분 질문입니다.
node = node->NextSiblingElement(); if (node->GetText()) { wstring texture = Utils::ToWString(node->GetText()); if (texture.length() > 0) { wstring textureStr = Utils::ToWString(node->GetText()); if (textureStr.length() > 0) { auto texture = RESOURCES->GetOrAddTexture(textureStr, (parentPath / textureStr).wstring()); material->SetSpecularMap(texture); } } }이렇게 강의에서 코드가 되어있습니다. 중간에 texture랑 textureStr를 if문으로 체크하는 부분이 중복으로 들어가는거 같아서 질문드립니다.node = node->NextSiblingElement(); if (node->GetText()) { wstring textureStr = Utils::ToWString(node->GetText()); if (textureStr.length() > 0) { auto texture = RESOURCES->GetOrAddTexture(textureStr, (parentPath / textureStr).wstring()); material->SetSpecularMap(texture); } }위 코드처럼 Diffuse Texture와 Normal Texture과 동일하게 하나를 지우고 작성해도 상관없는 부분인가요??
-
미해결[게임 프로그래머 도약반] DirectX11 입문
노멀매핑 자료
노멀매핑 자료 ppt는 없나요? 자료다운로드 받으면 프로젝트 소스 코드 밖에없는거같습니다
-
미해결[게임 프로그래머 도약반] DirectX11 입문
셰이더 인텔리센스 문제
이거 인텔리센스 문제 해결하는 방법이 따로 있을까요? 빌드 실행 잘 되는데계속 빨간줄이 뜨니까 거슬려서 여쭤봅니다
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
#include d3dx12.h 추가했지만 오류
#include d3dx12.h 추가했지만 오류가 나서 파일 안에 들어가보면 #include "d3d12.h" 인식을 못하는데 어떤 파일들을 어디에 추가해야하나요??? p.s EnginePch.h부분에 #include <windows.h> #include <tchar.h> 이 부분은 왜 인식을 못하는걸까요..?
-
해결됨DirectX Raytracing Programming
MeshObject 공용 사용 방법
CGame::CreateGameObjectAsBox에서 "meshobject를 공용으로 쓰도록 한다."는 주석이 있는데, 실제로 디버깅해보면 오브젝트마다 새로운 메쉬오브젝트를 할당하는거 같습니다.각 게임 오브젝트가 메쉬 오브젝트를 공용으로 사용하도록 바꿔도 렌더링이 잘 안되는데, 이건 BLAS Instance는 결국 하나니까 TLAS에 존재하는 Instance는 하나만 생기게 돼서 그런건가요?맞다면 핸들이 참조하는 pBLAS(D3D 리소스)는 공용으로 사용하고, 게임 오브젝트가 들고있는 BLAS 핸들(CreateBLAS가 반환하는 BLAS_INSTANCE*)을 오브젝트마다 다른걸 들고 있으면 되는걸까요? 계속 바꿔가면서 시도해보는데 잘 안되네요ㅠ
-
해결됨DirectX Raytracing Programming
BuildBLAS 할당 리소스 사이즈
BuildBLAS함수에서 pBlasInstance->pBLAS = m_pResourceBinBLAS->Alloc(info.ScratchDataSizeInBytes);이렇게 하고 있는데 info.ResultDataMaxSizeInBytes 맞지 않나요?감사합니다.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
4강 삼각형띄우기 오류관련 질문있습니다
삼각형 띄우기 4강에서 40분까지 강의를 듣고 똑같이 실행했는데 이런 오류가 납니다void Game::LoadShaderFromFile(const wstring& path, const string& name, const string& version, ComPtr<ID3DBlob>& blob){ const uint32 compileFlag = D3DCOMPILE_DEBUG | D3DCOMPILE_SKIP_OPTIMIZATION; HRESULT hr = ::D3DCompileFromFile( path.c_str(), nullptr, D3D_COMPILE_STANDARD_FILE_INCLUDE, name.c_str(), version.c_str(), compileFlag, 0, blob.GetAddressOf(), nullptr); CHECK(hr);} 이 코드 CHECK(hr)부분에서 걸리고 0x8876086c 오류코드가 나옵니다 코드는 전부 동일한데 도무지 문제를 모르겠어서 질문드립니다! 빌드도 잘 됩니다
-
해결됨DirectX Raytracing Programming
ConstnatBufferPool관련 질문
안녕하세요. 강의 잘 듣고 있습니다.CConstantBufferManager.cpp -> CONSTANT_BUFFER_PROPERTY에서 enum값의 사이즈인 sizeof(CONSTANT_BUFFER_TYPE_RAY_TRACING)가 아니라 버퍼 구조체의 사이즈인 sizeof(CONSTANT_BUFFER_RAY_TRACING)를 저장해야 하는거 아닌가요?이후에 다른 타입들을 추가할땐 구조체 사이즈를 넣는데, 레이트레이싱은 다른지 궁금해서 여쭤봅니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
LNK1104 error, DirectXTexD.lib 파일을 열 수 없습니다.
같은 위치에 있는 DirectXTex.lib파일은 에러가 안나는데 디버그용파일만 에러가 나오네요. 계속해서 파일위치 확인했지만 찾을 수가 없어 qna남깁니다.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
64.애니메이션 강의의, AssimpTool 에서 FBX 애니매이션 데이터를 옮길 때의 강의 오류가 있는 것 같습니다.
문제는 해결했지만, 강의에 큰 오류가 있는 것 같아, 강의를 듣는 분들에게 공유하는 것이 좋다 생각돼서 글을 작성했습니다. 강의의 Transform 코드가 미흡하다 생각해서, [LH, row_major, 요우->피치->롤] 을 전제로 하는 Transform ( Vec3, Vec4, Matrix3x3, Matrix4x4, Quaternion ) 을 다른 교재(이득우저 게임수학) 를 참조하여, 강의 코드에 적용해서 공부하고 있었습니다. 문제없이 잘 진행되다, 65.애니매이션 #2 에서 AssimpTool 로 FBX를 변환한 데이터를 애니매이션 진행할시, 로테이션이 반대로 되는 문제가 있었습니다. 이틀에 걸려 문제 원인을 찾았는데, 원인 코드는 아래와 같습니다 (강의 코드의 AssimpTool 프로젝트의 Utils 파일의 Converter.cpp 의 내용) /*std::shared_ptr<asAnimationNode> Converter::ParseAnimationNode(shared_ptr<asAnimation> animation, aiNodeAnim* srcNode){ std::shared_ptr<asAnimationNode> node = make_shared<asAnimationNode>(); node->name = srcNode->mNodeName; uint32 keyCount = max(max(srcNode->mNumPositionKeys, srcNode->mNumScalingKeys), srcNode->mNumRotationKeys); for (uint32 k = 0; k < keyCount; k++) { asKeyframeData frameData; bool found = false; uint32 t = node->keyframe.size(); // Position if (::fabsf((float)srcNode->mPositionKeys[k].mTime - (float)t) <= 0.0001f) { aiVectorKey key = srcNode->mPositionKeys[k]; frameData.time = (float)key.mTime; ::memcpy_s(&frameData.translation, sizeof(Vec3), &key.mValue, sizeof(aiVector3D)); found = true; } // Rotation if (::fabsf((float)srcNode->mRotationKeys[k].mTime - (float)t) <= 0.0001f) { aiQuatKey key = srcNode->mRotationKeys[k]; frameData.time = (float)key.mTime; frameData.rotation.x = key.mValue.x; frameData.rotation.y = key.mValue.y; frameData.rotation.z = key.mValue.z; frameData.rotation.w = key.mValue.w; found = true; } */ ==>> 위 코드에서, Quaternion 로테이션을 전치하기 위해, x, y, z 의 부호를 거꾸로 하는 코드가 필요합니다. 수정한 제 코드에는 아래와 같습니다 frameData.rotation.X = -key.mValue.x; frameData.rotation.Y = -key.mValue.y; frameData.rotation.Z = -key.mValue.z; frameData.rotation.W = key.mValue.w; 저렇게 코드를 수정하니, (LH, row_major) 를 전제로 하는 Transform 코드에서 잘 작동하더군요. 물론 강의의 DirectX::SimpleMath 를 바탕으로 만들어진 Transform 을 사용하면 아무 문제 없습니다.제가 SimpleMath를 제대로 이해하지 못해서, 어떻게 강의 코드가 잘 작동하는지를 이해하지는 못했고, 여전히 의문이 남습니다. 강의에서도 FBX 데이터는 RH 를 전제로 만들어졌고, 강의는 LH 를 전제로 하기에, AssimpTool 에서 본 트랜스폼 데이터를 변환할 때에, 아래 강의 코드인 Converter::ReadModelData 에서,bone->transform = transform.Transpose();트랜스폼을 전치합니다. Converter::ReadKeyframeData 에서도, if (findNode == nullptr) 에서도transform = transform.Transpose();로 전치를 하는데,앞서 제가 수정했던 else (애니매이션 데이터가 있는 부분) 에서는 전치 (rotation을 거꾸로 전환하는 코드)가 누락됐습니다. 정리하면, 강의의 일부 코드에서는, RH -> LH 를 위한 전치(로테이션 거꾸로) 코드가 있는데, 일부 코드에서는 전치 코드가 없는데도, 강의 코드는 잘 작동한다는 겁니다. 아무튼 제 문제는 해결됐습니다. 강의를 보다 혼동하실 분들이 제 글을 참고했으면 좋겠네요. 제 코드를 담은 깃허브 링크도 공유합니다https://github.com/HeeTaeKim996/Learning_DirectX11_3D
-
미해결[게임 프로그래머 도약반] DirectX11 입문
SkyDemo에서 카메라 입력이 작동하지 않는 문제
SkyBox 실습에서 화면에 텍스처 렌더링까지는 잘 되는데, 문제는 실행했을 때 WASD 입력을 넣어도 카메라가 움직이질 않습니다. 회전 행렬이 잘못 적용되어서 텍스처가 함께 이동하는 건가 해서 Update에 아래와 같이 회전을 직접 줘봤는데, 이 때는 카메라 회전이 되어 하늘이 움직이는 것처럼 잘 보입니다. _camera->GetTransform()->SetRotation(Vec3(0, _rotation, 0)); _rotation += 0.25f * DT; 제공해주신 A-34)+SkyBox에서 다른 데모는 카메라 입력이 잘 되는데, SkyDemo만 동일한 문제가 발생했습니다. 마찬가지로 카메라 입력이 먹히질 않습니다. 중단점을 찍고 디버깅을 해봐도 InputManager::Update()와 CameraScript::Update()가 매 프레임 정상적으로 호출되고 있었습니다.혹시 SkyDemo의 특정 초기화 순서나 렌더링 파이프라인 설정이 다른 데모와 달라서 입력 이벤트 처리에 영향을 주는 건 아닌지 궁금합니다.아직 해결하지 못해서 질문을 올립니다..
-
미해결[게임 프로그래머 도약반] DirectX11 입문
섹션6. DirectX 11 3D 입문 강의부터 렌더링이 안됩니다
섹션6. DirectX 11 3D 입문 강의부터 렌더링이 안됩니다. 해당 강의의 삼각형이 렌더링되지 않습니다. 혹시 제 실수일까 하여 강의 자료를 다운받아 시행해봐도, 렌더링이 되지 않네요.. (이전까지의 강의들에서는 잘 됐습니다)해당 강의부터 파이프라인을 직접 만들어사용하지 않고, effects11.lib 을 사용하는데, 그부분에서 특정 GPU 가 읽어드리지 못하는 것이 아닌가 생각을 하고 있지만 확실하지가 않네요..혹시 이 문제를 해결하셨거나 원인을 찾으신 분이 계시다면, 답변 부탁드리겠습니다..
-
미해결D3D12 프로그래밍 - 기초편
CommandList의 GraphicsCommandList 변경이유
코드를 따라가다 보니 기존엔 ID3D12CommandList를 사용하던걸 ID3D12GraphicsCommandList로 바꾸신 부분들이 있으신데 혹시 특별한 이유가 있을까요?
-
해결됨D3D12 프로그래밍 - 기초편
[25:13] Virtual Interface 와 COM Interface간의 차이가 궁금합니다.
안녕하세요. 먼저 좋은 강의 감사드립니다.해당 강의 부분에서 pDebugController 변수를 Virtual Interface라고 말씀하셨는데,COM Interface와 차이가 있는지 궁금합니다!다른 COM 인터페이스 변수들에 대해서 디버깅으로 값을 확인해봐도 pDebugController처럼 IUnknown을 상속받고 가상함수 테이블을 가리키는 포인터가 있으므로 동의어라고 봐도 될까요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
텍스처와 UV 강의 관련해서 문의드려요
섹션 2. DirectX11 입문 (1주차)텍스처와 UV강의를 수강하면서 코드를 실행했는데요이미지가 강의 내용과 다르게 보입니다어느 부분이 잘 못 되었을까요?소스 코드 상에서 다른 부분은 없는것 같은데요... 사각형은 강의 내용과 동일하게 그려집니다 {_vertices.resize(4);// 13// 02_vertices[0].position = Vec3(-0.5f, -0.5f, 0.f);_vertices[0].uv = Vec2(0.f, 1.f);// _vertices[0].color = Color(1.f, 0.f, 0.f, 1.f);_vertices[1].position = Vec3(-0.5f, 0.5f, 0.f);_vertices[1].uv = Vec2(0.f, 0.f);// _vertices[1].color = Color(1.f, 0.f, 0.f, 1.f);_vertices[2].position = Vec3(0.5f, -0.5f, 0.f);_vertices[2].uv = Vec2(1.f, 1.f);// _vertices[2].color = Color(1.f, 0.f, 0.f, 1.f);_vertices[3].position = Vec3(0.5f, 0.5f, 0.f);_vertices[3].uv = Vec2(1.f, 0.f);// _vertices[3].color = Color(1.f, 0.f, 0.f, 1.f);} struct VS_INPUT{float4 position : POSITION;// float4 color : COLOR;float2 uv : TEXCOORD;};struct VS_OUTPUT{float4 position : SV_POSITION;// float4 color : COLOR;float2 uv : TEXCOORD;};// IA - VS - RS - PS - OMVS_OUTPUT VS(VS_INPUT input){VS_OUTPUT output;output.position = input.position;// output.color = input.color;output.uv = input.uv;return output;}Texture2D texture0 : register(t0);Texture2D texture1 : register(t1);SamplerState sampler0 : register(s0);float4 PS(VS_OUTPUT input) : SV_Target{float4 color = texture0.Sample(sampler0, input.uv);return color;// return input.color;// return float4(0, 1, 0, 0);}// float4 main( float4 pos : POSITION ) : SV_POSITION// {// return pos;// }
-
미해결[게임 프로그래머 도약반] DirectX11 입문
frame간 보간에 대해서 질문이있습니다.
영상에서는 ModelAnimator의 update함수에서keyframeDesc의 sumtime을 갱신해줄 때 다음과 같은 코드로 작성되었는데.shared_ptr<ModelAnimation> current = model->GetAnimationByIndex(keyframeDesc.animIndex); if (current) { float timePerFame = 1 / (current->frameRate * _keyframeDesc.speed); if (_keyframeDesc.sumTime >= timePerFame) { keyframeDesc.sumTime = 0; //keyframeDesc.sumTime - timePerFame; // 0 keyframeDesc.currFrame = (keyframeDesc.currFrame + 1) % current->frameCount; keyframeDesc.nextFrame = (keyframeDesc.currFrame + 1) % current->frameCount; } keyframeDesc.ratio = (keyframeDesc.sumTime / timePerFame); } 이 부분에서 _keyframeDesc.sumTime = 0;이런식으로 sumTime을 0으로 하는것보다,keyframeDesc.sumTime = keyframeDesc.sumTime - timePerFame;처럼 계산 후 남는 값을 넣어주는 것이 더 정확하지 않을까요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
자료 pptx가 아닌 pdf
안녕하세요! 자료를 pptx가 아닌 pdf 형식으로도 제공해주실 수 있을까요
-
미해결[게임 프로그래머 도약반] DirectX11 입문
어디에 좀더 집중해야하나 고민입니다
게임프로그래머를 꿈꾸는 학생입니다Directx를 공부하면서 선형대수학을 공부를 병행하고 있습니다 성형대수를 공부하면서 드는 생각은 성형대수을 깊게 공부해도 의미가 없을 듯한 느낌을 받아서 질문드립니다.이 시간에 좀더 엔진공부를 하거나 아니면 알고리즘 공부를 해야하나 싶습니다강사님께서는 어떻게 생각하시나요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
CameraPosition 질문있습니다
V행렬의 41,42,43 의 값은 -(월드 좌표계 기준 카메라의 위치) 값을 반환하는게 아니라 (카메라 좌표계 기준 원점의 위치)를 반환하는 것 아닌가요?카메라가 회전하지 않고 원점과 rotation이 같다면 괜찮겠지만카메라가 회전할 경우에는 단순히 -로 값은 반전 시켜서는 (월드 좌표계 기준 카메라 위치)를 얻을 수 있는게 아닌 -(카메라 좌표계 기준 원점의 위치)를 얻게 되어서 예상과 다른 결과를 얻게 되는게 아닌가 싶어서 질문 드립니다