묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[게임 프로그래머 도약반] DirectX11 입문
3D 입문 프로젝트 설정강의 마지막 삼각형이 안나와요
fx파일 로드랑 테크닉, 패스 갯수랑 모두 정상이고, draw 실행도 들어오는데 빨강 삼각형이 안뜹니다.. 그래픽 카드는 AMD 쓰고있어요. 강의자료 다운받은거로 해봐도 회색 화면만 뜹니다 ㅠㅠ
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
좌표계 변환 행렬 관련 문의드립니다.
안녕하세요, 이번 강의와 이전 강의(좌표계 변환 행렬)을 듣고, 좌표계 변환 행렬에서 '(B좌표계 기준) u,v,w의 성분'을 채우는 부분에 대해 제가 이해한 게 맞는지 확인차 문의드립니다.로컬 좌표계에서 월드 좌표계로 변환할 경우. 월드 좌표의 단위벡터 U,V,W 는 각각 U(1,0,0) , V(0,10), W(0,0,1) 이고, 이를 이용해 로컬 좌표계의 단위 벡터(u,v,w)의 성분을 보면u = ux*U + uy*V + uz*W v = vx*U + vy*V + vz*Ww = wx*U + wy*V + wz*W U,V,W가 위의 단위 벡터이므로, 좌표계 변환 행렬을 채울 때 '(B좌표계 기준) u,v,w의 성분'에 로컬 좌표계의 단위벡터를 그대로 채우면 된다. 또한 u,v,w는 로컬 좌표계의 Right, Up, Look 벡터이므로 이를 그대로 채우는 거라고도 할 수 있다.이번 강의의 약 21분 50초 즈음 내용. 로컬 좌표계가 월드 좌표계에서 Y축으로 45도 회전한 상태라면, 로컬 좌표계의 단위벡터도 월드 좌표계의 단위벡터 U,V,W에서 Y축으로 45도 회전했다고 볼 수 있으므로 y축 회전행렬을 적용한다.월드 좌표계로 변환하는 게 아닌 A->B 변환이라면, B좌표계 기준에서 A좌표계의 단위 벡터 u는 u = ux*U + uy*V + uz*W(여기서 U,V,W는 월드 좌표계의 단위벡터가 아님)인데 , 항상 u = (ux, uy, yz)라고 할 수 없으므로 '(B좌표계 기준) u,v,w의 성분' 을 채울 때 A좌표계의 단위벡터(혹은 Right, Up, Look 벡터)를 그대로 채울 수 없다. 예로 u = (2,2,2) / U = (1,-1,0) / V = (0,1,0) / W = (0,0,1) 이라면 u = 2U + 4V + 2W이고, uy == 4 라면 u = (2,2,2)가 성립되지 않는다.특히 3번은 틀린 듯 한데 제가 이해를 제대로 못 해서 맞다/틀리다를 판단하기가 어렵네요 ㅜ 질문에 대한 답변 외에도 표현상의 문제를 체크해주시는 것도 감사하겠습니다.
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
루키스님 질문 있습니다
1. 클래스 생성자 매개변수가 레퍼런스인 스타일은 Init()으로 데이터를 초기화 하는 스타일보다불편하다고 생각을 하는데(레퍼런스 때문에 헤더파일에 선언만 하는게 힘들다던지) 제 생각이 맞나요? 어떤 것이 표준에 가깝나요? 2. 저만의 게임 엔진을 구축하는게 목표라서 코드를 적으면서 했습니다만 난이도가 너무 높아서 좌절했습니다개인적으로 DirectX를 이해하는것보다 전체적인 소스 아키텍처가 더 어려웠습니다이 정도 소스 난이도는 프로그래머라면 쉽게 이해 가능한 수준인건가요? 아니면 어려운게 맞는건가요?그리고 게임 엔진을 만들려고 한다면 이 강의 이후 게임 엔진 아키텍쳐 책이나 디자인 패턴을 열심히 공부하는 방향이 맞을까요? 3. 루키스님의 소스를 참고해서 게임 엔진을 구축하고 그 엔진을 이용해서 간단한 게임을 만든다면저작권 부분이 어떻게 될지 궁금합니다 질문이 많아서 죄송합니다 좋은 강의에 항상 감사하게 생각하고 있습니다
-
미해결[게임 프로그래머 도약반] DirectX11 입문
포트폴리오
안녕하세요 루키스님!현재 언리얼 멀티플레이어 슈팅게임 프로젝트가 하나 있고 싱글 슈터 게임 프로젝트도 있습니다.제가 지원하고 싶은 회사가 directX3D 활용 능력을 봐서 언리얼 포폴을 어느정도 마무리하고 directX 를 다시 보는 중인데, 루키스님 강의를 듣고 간단한 게임(뱀서라이크류나 전투 정도 가능한) 포폴을 만들 수준이 될까요? 그게 안된다면 렌더러에서 캐릭터 애니메이션(WASD 점프) 정도만 할려고 합니다.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
Converter의 ReadMeshData에서 Material의 저장 여부
//Material Nameconst aiMaterial* material = _scene->mMaterials[srcMesh->mMaterialIndex];mesh->materialName = material->GetName().C_Str();하나의 메시가 여러 서브 메시를 포함하는 형태로 저장을 하게 되고, 그에 따라서 메시는 각 서브 메시에 따르는 머티리얼을 저장해야 하는데 해당 코드를 통해서는 마지막 서브 메시의 머티리얼만 저장하게 되는것이 아닌지 궁금해서 질문 드립니다.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
[2-4. 좌표계 변환] 제가 이해한게 맞는지 확인 부탁드려용!
항상 감사드립니다!강의를 들으면서 제가 이해한대로 내용의 핵심만 정리 해보았는데요.제가 이해한게 맞는지 확인 해주시면 정말로 감사드리겠습니다!1. 이렇게 이해한게 맞을까요?u... v... w... 들은 A좌표계의 단위 벡터들을 B좌표계 기준으로 분해한 성분들을 의미한다. 만약 A좌표계가 원점(0, 0, 0)이면, 단위 벡터 u = [1, 0, 0], v = [0, 1, 0], w = [0, 0, 1]일 텐데이런 기준이 되는 단위 벡터를 B좌표계의 시점에서 자신의 단위 벡터를 기준으로 표현하면각각 U = [ux, uy, uz], V = [vx, vy, vz], W= [wx, wy, wz]라는 말이다. 이때 ux, uy, uz같은 성분들은 B좌표계를 기준으로 A 좌표계의 단위 벡터 u의 각각의 성분으로 표현한 값이다.그리고 Qx, Qy, Qz는 B좌표계 중심점을 기준으로한 A좌표계의 중심점의 위치를 의미한다. 진짜 최종적으로 정리해서... 우리는 B좌표계 기준의 단위 벡터들 U, V, W를 A 좌표계의 단위 벡터로 표현한 성분 정보(ux, u...)들만있으면 A 좌표계의 어떤 위치들이라도 B 좌표계 기준의 위치 정보를 얻어내는게 가능하게 된다.Qx, Qy, Qz는 얻기가 쉽다. (다른 좌표계면 당연히 해당 좌표계의 위치 정보를 알고 있을테니)-----------------------------------------2. 만약 마지막 원소를 1이 아닌 0으로 바꿀 경우강사님께서 "A좌표계의 방향 벡터가 B좌표계에서는 어떤 값으로 표시되는지 알고 싶을 때 사용한다"라고 말씀하셨는데마지막 원소가 날아가버린다면 계산시 Qx, Qy, Qz정보가 날아가버린다는 의미이므로.A 좌표계에서의 방향 벡터를 B기준에서의 방향 벡터로 변환한다라고 봐도 무방할까요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
강의 20:30에서 GameObject.h을 pch.h에서 헤더로 선언하지 않은 이유?
안녕하세요 선생님, 강의를 듣다가 궁금증이 생겨 질문 남깁니다.강의의 20:30 부분에서 다른 클래스들과는 달리 GameObject 클래스는 왜 pch.h 파일에 헤더로 선언하여 사용하지 않는 것인지 궁금합니다.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
리소스를 관리하는데 shared_ptr를 써야되는가 RawPointer를 써야되는가 weak_ptr를 써야되는가?
한 GameObject 내부에서 선언되는 Parent, Children와 한 MeshRenderer 내부에서 선언되는 Mesh, Material 등등과 같은 리소스들은 각각 Scene과 ResourceManager내부에서 관리(생성, 파괴)되기 때문에 이런 관리해주는 클래스 에서만 shared_ptr로 생성해주고 다른 클래스 에서는 weak_ptr로 전해받았었습니다.그런데 문뜩 든 생각이 결국 다른 클래스에서 이런 객체들을 사용하기 위해 프레임마다 weak_ptr::lock을 사용하여 shared_ptr로 만들어서 사용할텐데 이러면 비용 부담이 너무 많이되어 배보다 배꼽이 큰 상황이 발생하는 것 같다는 생각이 들었고 이럴바엔 그냥 왠만한 클래스에선 리소스를 shared_ptr로 선언하고 사용한 후 관리해주는 클래스(Scene, ResourceManager)들에서 삭제될때 여기서도 동시에 shared_ptr를 지워버리는식으로 관리를 해주는게 더 좋을 것 같다고 생각을했는데 과연 옳은 생각인 건가요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
섹션 1. DirectX11 입문 (1주차) 기본 프레임워크에서요
DirectXTex_debug.lib 이 파일은 어떤 식으로 구하는 건가요?다른 파일은 DirectXTex_Desktop_2022.sln 파일을 빌드하면 만들어 지는데DirectXTex_debug.lib 이 파일은 찾을 수가 없어서 질문 드립니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
행렬 곱셈 질문 드립니다.
안녕하세요 루키스님. 질문 남깁니다. 쉐이더로 보내준 g_matWVP와 g_matWV를 사용하면 물체가 잘 나옵니다. 하지만, 두 행렬을 사용하지 않고 쉐이더 코드 안에서 직접 wvp, wv를 곱해서 사용하려고 하는데 물체가 나오질 않습니다. HLSL은 열중심이고, DxMath는 행중심 행렬이라 cbuffer안에 있는 값들도 row_major로 설정해주었습니다. 그런데도 물체가 나오질 않습니다.. 혹시 행렬 순서가 잘못되었나 싶어 P VW로 곱해봤으나 결과는 동일했습니다..
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
d3dx12.h파일이 include가 되지 않아요
분명 파일 넣어놨는데 include가 안된다는 오류가 계속 뜨는데 왜 이런지 아시나요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
강사님 강의자료를 pptx 파일 말고 다른 포멧으로 주실수 없나요
집에서 공부하는데 워드 프로그램이 없으니 고통스럽네요 볼려면 돈내야 하고 그냥 pdf나 그런것로 되어있으면 좋을텐데 다향한 포멧으로 배포 해주시면 감사 감사 할것 같습니다. 그럼 행복하세요
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
LosdShaderFromFile 매개변수 string(2)
삼각형 띄우기 31분 쯤 나오는 LosdShaderFromFile함수 작성시에 저는 string 헤더 추가하라고 오류가 뜹니다. (물론 추가 하는게 문제는 아닌데,) 선생님께서 올려주신 파일을 보니 별도로 추가 되어있지 않아서요,,,, 궁금해서 올려봅니다(너무 하찮은 질문이지만...ㅜㅜ ) 근데 using namespace std; 는 이미 pch에 저도 추가되어 있습니다...ㅠㅠㅠ선생님 파일을 받아서 열어보아도 저와 같이 오류가 뜹니다. 저는 현재 VS 2022를 쓰고 있습니다. VS 설정이나 기타 확장도구, 템플릿 등의 문제일까요? ㅜㅜ
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
답변을 안 주셔서 리마인드 성격의 인용글 올립니다.
확인 부탁드립니다.https://www.inflearn.com/questions/1115271/%EC%84%B9%EC%85%9810-rawbuffer%EC%9D%98-result%EB%B2%84%ED%8D%BC-%EC%83%9D%EC%84%B1%EC%8B%9C-%EC%A7%88%EB%AC%B8
-
미해결[게임 프로그래머 도약반] DirectX11 입문
안녕하세요 제가맞게 생각하는건지 모르겠습니다
항상 화면에서 보이는것은 원점을 기준으로 z축방향을 바라보고있기떄문에 사실상 카메라라는것은 존재하지않고 모든 물체에다가 뷰변환을 적용시켜서 , 카메라를 움직이는게 아닌 물체를 원점으로 끌고와서 그려주는것이 맞는건가요 ?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
D3D11CreateDeviceAndSwapChain이 실패합니다
안녕하세요 루키스님, 덕분에 좋은 강의 잘 듣고 있습니다.이 문제는 두번째 강의에서 직접 실습하다가 발생했습니다.D3D11CreateDeviceAndSwapChain 함수 실행 후에 hr에 0x887A0001가 담긴 것을 확인하고 검색해봤더니 공식 문서에 "애플리케이션에서 잘못된 매개 변수 데이터를 제공했습니다. 애플리케이션이 해제되기 전에 디버그하고 수정해야 합니다."라고 적혀있었습니다.그런데 저는 루키스 님의 코드와 완전히 동일하게 작성했으며 설정 역시 동일하게 했습니다. 또한 혹시 몰라서 그래픽 툴이 설치되어 있는지도 확인했습니다.프로젝트를 새로 만들고 잘못된게 있나 반복해서 원본이랑 비교 대조를 해봐도 동일한 증상을 보입니다. 반면에 수업자료 파일에 올려주신 솔루션파일은 문제 없이 작동합니다.제가 어떤 것을 놓지고 있는지 감이 안잡힙니다. 이런 에러가 발생하는 전형적인 이유가 무엇인지 궁금합니다. winmain 함수가 있던 파일만 아예 새로 작성하니깐 해결됐습니다. 아마 윈도우 핸들 부분을 잘못 건드렸던 것 같습니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
Terrain Heightmap 관련 질문입니다.
Terrain 실습을 완료하고 강사님께서 주신 텍스쳐 파일이 아닌 다른 곳에서 받은 파일을 적용해보니 Terrain의 edge 부분의 vertex가 비정상적으로 세팅되어 나옵니다. 제가 생각하기엔 terrain 셰이더 코드에서 localPos.y 연산 부분이 문제가 있는 거 같은데 height 값이 결국 텍스쳐 샘플하는 값이라 문제가 없어야 정상이라고 생각하여 도통 감을 잡지 못하겠습니다. normal 쪽은 단순히 면과 빛의 상호작용을 담당하니 Mesh에 직접적으로 연관이 없을 것입니다. 혹시 텍스쳐가 문제가 있을까 생각해보아서 포토샵으로 색상을 따봐도 딱히 튀는 값이 나오진 않네요. 혹시 강사님께서는 이 문제가 어떤 것에서 기인하는지 짐작가시는 바가 있으신가요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
엔진을 맵툴로 활용 할수있나요?
안녕하세요3D 포폴을 다렉으로한번 만들어보고싶은데 맵툴을 따로 만들지않고 언리얼이나 유니티엔진에서 모든 오브젝트를 불러와서 배치시킨다음에정보를 저장한다음 , 불러들여서 활용할수도 있나요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
LosdShaderFromFile 매개변수 string
삼각형 띄우기 31분 쯤 나오는 LosdShaderFromFile함수 작성시에 저는 string 헤더 추가하라고 오류가 뜹니다. (물론 추가 하는게 문제는 아닌데,) 선생님께서 올려주신 파일을 보니 별도로 추가 되어있지 않아서요,,,, 궁금해서 올려봅니다(너무 하찮은 질문이지만...ㅜㅜ )
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
섹션10 RawBuffer의 _result버퍼 생성시 질문
안녕하세요.섹션10 RawBuffer의 _result버퍼 생성시 BUFFER_DESC 설정 부분 질문 드립니다."B-14)+Viewport" 샘플 코드를 참조하였습니다. RawBuffer.cpp (줄: 120) 을 보면 아래와 같이 작성해주셨는데요void RawBuffer::CreateResult() { D3D11_BUFFER_DESC desc; _output->GetDesc(&desc); desc.Usage = D3D11_USAGE_STAGING; desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ; desc.BindFlags = D3D11_USAGE_DEFAULT; // UAV가 연결되려면, USAGE는 DEFAULT여야 함. desc.MiscFlags = 0; CHECK(DEVICE->CreateBuffer(&desc, nullptr, _result.GetAddressOf())); }desc.Usage 에 USAGE_STAGING 을 주셨는데, 아래 BindFlags 옆 주석으로는 "Usage 는 DEFAULT 여야 한다"고 적어주셔서 혼란스럽습니다. 그리고 BindFlags 에 USAGE_DEFAULT 를 주셨는데, 의도 된 값인지, 의도한 값이 아니라면 어떤 Flags 를 주어야 하는지 궁금합니다.감사합니다.