묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[게임 프로그래머 도약반] DirectX11 입문
Normal.fx파일에서 normalize
안녕하세요 제가 알기로는 output.normal = mul(input.normal, (float3x3)World);이렇게만 해줘도 월드 좌표에서의 단위벡터로 만들어 주는걸로 알고 있는데 GeometryHelper.cpp 파일에서 CreateSphere 메서드에서 v.normal = v.position; v.normal.Normalize(); Normal.fx 에서 normalize(input.normal) 위 1, 2 부분에서의 normalize를 안해도 별 차이 없지 않나요?혹시 차이가 있다면 어떤 부분에서 차이가 있을까요?아니면 제 개념이 틀렸을까요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
높이보정 식이 이해가 안됩니다
vector<VertexTextureData>& v = const_cast<vector<VertexTextureData>&>(_geometry->GetVertices());for (int32 z = 0; z < height; z++){ for (int32 x = 0; x < width; x++) { int32 idx = width * z + x; uint8 height = pixelBuffer[idx] / 255.f * 25.f; v[idx].position.y = height; // 높이 보정 }}이 부분을 계속 돌려봐도 이해가 안되는데 높이보정할 때 왜 저 식이 나오는건가요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
nullptr오류가 발생해요.
nullptr 오류가 왜 발생하는 걸까요? 코드는 복붙 해서 아마 다 같을 거에요.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
계층구조 질문있습니다.
탱크를 그릴떄 본매트릭스를 넘겨줘서 포지션을 이동시켜주는것처럼탱크의 노말도 본매트릭스를 이용하여 회전시켜주는게 맞지않나용?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
첫 강의 pch.h 작성 단계에서 LNK1104 오류가 납니다 ㅠ
pragma comment로 불러오는 다른 lib들은 다 에러 없이 넘어가는데요,정작 걱정했던 DirectXTex 들은 조용하지만LNK1104 'd3dcompiler.lib' 파일을 열 수 없습니다.저 d3dcompiler친구만 오류를 뿜뿜합니다ㅠ 이를 어쩌면 좋을까요 선생님😣
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
Normal Mapping / Assertion failed! 오류
Normal Mapping 강의에서 veiga.jpg를 제가 다운받아온 Stone.jpg로 바꾸고 디버깅해보니 이렇게 뜨네요크래시 난곳은 여기입니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
1>LINK : fatal error LNK1104: 'Engine.lib' 파일을 열 수 없습니다.
장치초기화 파트에서 제가 무언가를 놓친거 같습니다...클라이언트 프로젝트를 시작으로 놓고 하였는데 저런 에러가 뜹니다. 무엇이 문제일지 궁금합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
shared_ptr 과 헤더파일 관련하여 질문있습니다
Engin.h 에서 #pragma onceclass Engine{public: void Init(const WindowInfo& window); void Render(); void ResizeWindow(int32 width, int32 height);private: WindowInfo _window; D3D12_VIEWPORT _viewport = {}; D3D12_RECT _scissorRect = {}; shared_ptr<class Device> _device; shared_ptr<class CommandQueue> _cmdQueue; shared_ptr<class SwapChain> _swapChain; shared_ptr<class DescriptorHeap> _descHeap;};여기서 #include <memory>를 하지 않고도 shared_ptr이 컴파일이 가능한 이유가 뭔지 알수 있을까요...?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
질문있습니다.
질문1) D3D12_DESCRIPTOR_RANGE ranges[2] ={{ D3D12_DESCRIPTOR_RANGE_TYPE_CBV, 5, 0, 0, D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND }, // b0 ~ b4{ D3D12_DESCRIPTOR_RANGE_TYPE_SRV, 5, 0, 0, D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND } // t0 ~ t4}; CD3DX12_ROOT_PARAMETER rootParameters[1] = {};rootParameters[0].InitAsDescriptorTable(_countof(ranges), ranges, D3D12_SHADER_VISIBILITY_ALL); 와 같이 루트시그니처에서 테이블의 사용범위를 넓게잡아두고사용할때만 Shader 에서 buffer를 정의 ( ex :cbuffer WVP: register(b0 )해서사용해주고있는데 테이블힙의 메모리 낭비를 제외하면 성능에 큰 악영향이 있을까요?런타임에 터지거나 하는 오류는 현재 없는데 궁금해서 여쭤봅니다. 질문2)제가 이해한게 맞나 궁금해서 질문드립니다.질문1의 방식처럼 rootSignature 를 만들었다고 하였을때 ,SetGraphicsRootDescriptorTable 함수인자에 핸들값을 넣을때RootSignature 에서는 b0~b5 ,t0~t5 의 총10개를 사용한다고 서명했기떄문에 ,DX에서 읽을때 10개단위로 읽어주기 때문에 선두에 있는 handle 값만 넣어주는 방식이 맞나요?
-
미해결D3D12 프로그래밍 - 기초편
질문있습니다.
안녕하세요 공부하다가 몇가지 궁금한게 생겨 여쭤봅니다. 질문1) D3D12_DESCRIPTOR_RANGE ranges[2] ={{ D3D12_DESCRIPTOR_RANGE_TYPE_CBV, 5, 0, 0, D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND }, // b0 ~ b4{ D3D12_DESCRIPTOR_RANGE_TYPE_SRV, 5, 0, 0, D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND } // t0 ~ t4}; CD3DX12_ROOT_PARAMETER rootParameters[1] = {};rootParameters[0].InitAsDescriptorTable(_countof(ranges), ranges, D3D12_SHADER_VISIBILITY_ALL); 와 같이 루트시그니처에서 테이블의 사용범위를 넓게잡아두고사용할때만 Shader 에서 buffer를 정의 ( ex :cbuffer WVP: register(b0 )해서사용해주고있는데 테이블힙의 메모리 낭비를 제외하면 성능에 큰 악영향이 있을까요?런타임에 터지거나 하는 오류는 현재 없는데 궁금해서 여쭤봅니다. 질문2)제가 이해한게 맞는건지 모르겠습니다. 현재 영천님 의 코드처럼 pool 방식으로 디스크럽터를 넓게만들어두고 할당받는 방식으로 코드를 만들어보고있는데질문1의 방식처럼 rootSignature 를 만들었다고 하였을때 ,SetGraphicsRootDescriptorTable 함수인자에 핸들값을 넣을때그림에 빨간 화살표에 있는 선두에 있는 handle 값만 넣어주면RootSignature 에서는 b0~b5 ,t0~t5 의 총10개를 사용한다고 서명했기떄문에 ,DX에서 읽을때 10개단위로 읽어주기 때문에 10개가 모두 테이블에 바인딩되는 구조인가요?다음 오브젝트를 그릴때는 , 오프셋 10칸을 건너뛴 다음 b0 부터 할당받아서 테이블에 바인딩해주고
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
장치 초기화 nullptr이 자꾸 발견 되네요.
Engine.cpp 파일에서_device->Init();cmdQueue->Init(device->GetDevice(), swapChain, descHeap);swapChain->Init(info, device->GetDXGI(), _cmdQueue->GetCmdQueue());descHeap->Init(device->GetDevice(), swapChain);이부분에서 자꾸 하나씩 nullptr이 발견되네요. 처음엔 제가 틀리게 작성한 부분이 있겠지해서 swapChin에서 nullptr이 나와서 찾아보다가 나중엔 그냥 자료파일로 덮어쓰기를 했는데도 이번엔descHeap->rtvHeap이 nullptr이라는 오류 메시지가 나오네요. 강의자료를 복붙해도 나오는nullptr은 어떻게 해결해야 할까요 ㅠ
-
미해결[게임 프로그래머 도약반] DirectX11 입문
노트북에서 정점만 보이는 버그
데스크톱에서 잘 돌아가다가 노트북 쓸 일이 있어서 그 프로젝트 파일 그대로 노트북에 옮겨서 하려는데 오브젝트들이 점으로만 나타나고 그려지지 않아요.. 왜그런건가요? gpu문제인가요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
pch 에 문제가 생긴 것 같습니다!!!!!
미리 컴파일된 헤더로 설정해 놓은 pch.h 파일에서 유독 #include "Transform.h" 를 못 받아들이는 것 같습니다. 계속해서 "'Transform': 선언되지 않은 식별자입니다." 라는 오류가 발생하고 신기한 건 #include "Transform.h"의 위치를 윗줄로 옮기면 그 밑에서 include 해주는 헤더파일도 동일하게 못받아들이고 "선언되지 않은 식별자입니다" 라고 에러를 뱉고 있습니다. 이런 경우는 어떤 해결 방법이 있을까요?ㅜㅜㅜㅜㅜㅜㅜㅜㅜ
-
미해결[게임 프로그래머 도약반] DirectX11 입문
2주차 좌표계 변환 공부하다가 의문이 생겼습니다.
물체의 위치를 좌표계 변환할 때와 방향벡터를 좌표계 변환할 때 위치 벡터의 표현이 달라진다고 배웠습니다. 그런데 방향벡터는 실제 게임 상에서 어떤 것들을 표현하기 위해서 사용되는지 궁금합니다.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
그림자 관련 질문입니다.
강의 잘 듣고 하나씩 적용 해 보고 있습니다. 그런데, 그림자에 궁금증이 생겨서 질문드립니다. 최종적으로 적용하고, 이런 느낌으로 되었는데, 그림자 적용 범위가 좁은 것 같아서, 바운딩 스피어의 Radius를 넓히는 식으로 해봤지만 범위는 넓어져도 그림자 농도가 너무 옅어지거나, 수치가 커지면 거의 안 보이는 수준이 되던데, 혹시 해결 방법이 있을까요? 텍스처 크기만 늘린다고 되는 문제는 아닌 거 같아서 질문 드립니다.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
assimp 로 파일 저장후 로드할때 Release 모드로 하면 프로그램이 터집니다..
Assimptool 로 debug 모드인상태에서 파일데이터를 다시 저장한후 ,읽어드리면 정상적으로 작동하지만 , release 모드로 바꿔서 파일저장후 읽어드리면 메모리가 계속올라가면서 무한 대기상태에걸립니다. 혹시왜그럴까요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
DirectXTex_debug.lib 파일 문의
섹션 1. DirectX11 입문 (1주차) 기본 프레임워크에서 DirectXTex_debug.lib 파일을 구하기 위하여 DirectXTex_Desktop_2022 솔루션을 Visual Studio 2022에서디버그 모드로 빌드를 해도 파일이 보이지 않습니다. 빌드할 때 빌드 구성(Configuration)을 ‘Debug’로 설정하고, 플랫폼을 ‘x64’ 로 선택 후 빌드하였습니다.빌드 과정에서 에러는 없었구요. DirectXTex_debug.lib 이 파일은 어떻게 얻을 수 있나요.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
용 모델에 분명 Diffuse 텍스쳐가 있는것같은데 왜 적용이 안되나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 리소스를 보면 groundColor라고 디퓨즈텍스쳐가 있는데 왜 적용이 안되는건가요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
안녕하세요 질문있습니다
for (int i = 0; i < vmesh.size(); ++i){_shader->SetPipelineState();core->GetCmdList()->IASetVertexBuffers(0,1,&_v_mesh[i]->GetVertexView());core->GetCmdList()->IASetIndexBuffer(&_v_mesh[i]->GetIndexView());_transform->Update();core->GetTableHeap()->BindTexture(_texture->GetCpuHandle(), SRV_REGISTER::t0);core->GetTableHeap()->CommitTable();core->GetCmdList()->DrawIndexedInstanced(_v_mesh[i]->GetIndexCount(), 1, 0, 0, 0);} DX11 버전에서 제공해주신 모델 탱크 를 로딩하려고Assimp 를 사용하였는데 , vmesh 사이즈가 12이라12번 계속 반복해주는 코드를 작성하였는데 _v_mesh[0] 번째 정보만 바인딩되는데 문제가뭘까요..
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
DirectX11 강의 질문
안녕하세요 완강하고 질문드립니다. 루키스님 말씀대로 모든걸 다 이해하기보다는 개념적인 부분은 개념으로 듣고 많은 부분들을 들을 수 있어 감사합니다. 그래도 아직 부족함을 느끼고 어려운 개념들이 너무 많아서 DirectX 11 강의도 볼 까 고민중인데 이 강의랑 비슷한 맥락으로 진행되는지 궁금합니다. 차이가 있다면 어떤차이가 있는지, 해당강의를 들을것을 추천하시는지도 궁금합니다.