[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
Shader::Init을 할 때 마지막 줄 DEVICE->Create...State(&m_PipelineDesc, IID_PPV_ARGS(&m_PipelineState)); 여기에서 desc세팅까지는 성공적으로 다 되는데 이 줄에서 state가 세팅되지 않고 NULL값으로 그대로 남아있습니다. 혹시 몰라서 오타 검사나 프로젝트 속성이 다른지 체크했는데 이상 없었습니다. [코드] [로컬 데이터] (추가) 엔진.h의 멤버들은 정상적으로 초기화 되고 올려주신 파일을 실행했을 때는 정상적으로 작동하였습니다. Shader에서 문제가 있는거 같은데 코드상 차이는 안보입니다. 올려주신 코드내용을 복붙해도 같은 문제가 발생합니다. 가끔씩 shader->Update()에 들어가기 전에 엑세스 위반 오류가 생깁니다
언리얼 엔진 소스 코드를 살펴보다 회전이동 행렬 코드에서 헷갈리는 부분이 있어 질문드립니다. 책에선 언리얼 엔진은 z->x->y순서로 회전행렬을 곱한다고 되어있는데, 그러면 언리얼은 행 기준 행렬을 사용하기 때문에 z(yaw) * x(roll) * y(pitch) -> 순서로 곱해야 하는데 이 결과가 언리얼 엔진 소스코드의 결과와 달라서 너무 혼동이 옵니다.. 저 결과가 나오려면 x(roll)->y(pitch)->z(yaw)순서로 곱해야하고, x,y,z축 회전행렬이 이렇게 돼야 저 결과와 같아지는데, x축과 y축 회전 행렬이 행 기준 행렬이 아닌 열 기준 행렬로 돼있고, z축 회전 행렬만이 행 기준 행렬로 돼있어 너무 혼동이 옵니다.. DX는 z->x->y순서로 곱해야 하고, 모두 행 기준 행렬인걸로 알고 있는데, 저 코드는 왜 다르게 나오는 건가요??
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 현장강의를 들어야 수업을 따라갈 수 있을것같아요 ㅠ
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
dynamic_cast는 다운 캐스팅할 때 실행 시간에 타입을 검사하기 때문에 상대적으로 안전하지만 동작 속도가 static_cast보다 상대적으로 느리다고 알고 있습니다. 반대로 static_cast는 다운 캐스팅할 때 사용할 수 있지만, 실행 시간에 타입을 검사하지 않기 때문에 위험하고요. 이에 궁금한 점이 생겨서 다음 질문을 드립니다. 실제 현업에서는 dynamic_cast의 안전성을 포기하고 속도를 향상하기 위해 static_cast로 교체하는 경우가 있나요? 그러한 경우가 있다면, 프로그래머가 실수해서 잘못 캐스팅 경우를 방지하기 위해 어떻게 대응하나요? (수업에서 명시된 열거체으로만 검사하면, 열거체가 수정되거나, 프로그래머가 잘못된 열거체를 지정하는 경우, 문제가 생길 소지가 있어보입니다.)
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
UI 강의 22:16에서 실행을 했을 아래와 같이 오류가 발생 하네요.. { Button* ui = new Button(); ui->SetSprite(GET_SINGLE(ResourceManager)->GetSprite(L"Start_Off"), BS_Default); ui->SetPos({ 200, 200 }); uis.push back(ui); } ui->SetSprite 부분을 //처리할 경우 오류가 안나는 걸로 봐서는 여기서 뭔가 잘못된 것 같은데 아무리 찾아도 안나오네요..
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
안녕하세요 유니코드 특수문자를 출력시킬 때 일부 특수문자( Ballot Box with X )가 ?로 출력이 되고 있습니다 레지스트리 편집기에서 chcp를 새로 설정해주기도 하고 인코딩을 새롭게 해서(유니코드 65001) 저장도 하고 문자 그림 대신 유니코드 번호를 적어도 봤지만('\u2612') 여전히 해결되지 않고 있습니다 다른 해결방법이 있을까요?
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
안녕하세요 해당 강의 보면서 Sprite와 Unity에서의 Atlas 관련해서 궁금한게 있습니다. BitBlt을 사용해서 Sprite 하나씩 그려주고 있어서 나중에 CPU, GPU에게 부담이 갈 수 있는 상황이라 가정하면 Unity에서의 Atlas처럼 한번에 묶어서 처리하도록 만들게 될텐데 여기서 궁금한게 Atlas라는게 여러개의 Sprite들을 다시 하나의 Texture로 만드는 과정일까요? 그리고 이렇게 Atlas같은 기능을 활용하면 CPU, GPU에게 덜 부담을 주게 되는건 알겠는데 메모리 상으로는 여러 Sprite로 묶은 Texture를 만들어야하니까 메모리적으로는 불이익을 볼 수 있는걸까요?