DirectX10 [DirectX3D] 뷰행렬을 사용한 회전(CreateLookAt()함수사용) 기존에는 몬스터가 플레이어를 추적할때 플레이어 방향으로 각도를 맞추어 줄 수 있도록 X축과 Z축의 두개축을 가지고 atan2f() 함수를 사용하여 Y축의 회전 각도를 보간하였습니다. 기존의 방식은 평변을 기준으로 계산하기때문에 3개의 축을 한번에 계산하기는 조금 번거로웠습니다. 하지만 행렬과 CreateLookAt() 함수를 사용하여 X,Y, Z 3개의 모든축의 회전 각도를 보간할수 있는 방법을 정리하고자 합니다. [사용 예시] 아래의 코드는 플레이어객체(player)가 항상 타겟(boss)을 향하고 있도록 회전시키는 코드입니다. Matrix M = Matrix::CreateLookAt(player->GetWorldPos(), boss->root->GetWorldPos(), Vector3(0, 1, 0).. 2023. 9. 14. [DirectX3D] 로딩씬(씬전환) Loading Scene 추가 프레임워크에서 씬(Scene)를 여러개 만들고 씬전환화면으로 로딩씬을 제작하게되었습니다. 추가전 1.프로그램 실행 > 2.게임입장상호작용 > 3.실제플레이Scene > 4.엔딩Scene 추가전 후 1.프로그램 실행 > 2.게임입장상호작용 > 3. 로딩씬 > 4.실제플레이Scene > 5.엔딩Scene 로딩씬에서는 게임실행에 필요한 데이터들이 세팅되는 과정을 시각적으로 볼수있도록 하였습니다. 메인 화면에서 게임으로 진입시 실행에 필요한 데이터들을 로드(Load)하는동안 생각보다 긴 시간이 필요합니다. 때문에 멈춰있는 화면이 없는것처럼 보이도록 하기위하여 로딩씬을 추가합니다. 메인 화면에서 게임입장 버튼 글릭시 바로 로딩씬이 실행됩니다. 로딩씬에서는 스레드(thread)를 사용.. 2023. 8. 21. [DirectX3D] RTT구현(미니맵만들기) D3D11 에서 RTT(Render To Texture)구현하기 RenderTarget 클래스 생성하기(h) #pragma once class RenderTarget { protected: // 화면(이미지)의 가로 세로 크기 변수 int width, height; //protected에 있는 이유는 ResizeScreen으로만 크기변경하려고 //I(인터페이스)D3D(도구)11(넘버링) 인터페이스 ID3D11Texture2D* rgb; // 일반 텍스처 데이터 ID3D11Texture2D* depth; // 깊이값 텍스처 데이터 //파이프라인 결합할때 타겟으로 쓸 인터페이스 /* 기존에 Direct3D11 클래스에서 백버퍼로도 쓰였음(실질적자원담당) 프로그램실행시 싱글톤 생성하면서 만들어지고, Resiz.. 2023. 8. 16. [Graphics] 텍스처에 그리기 RTT(Render To Texture) Render To Texture ? 렌더투텍스처(Render To Texture)(이하 RTT)를 의미합니다. 3D 그래픽스에서 매우 유용한 기술로, 장면을 렌더링(Rendering)하고 그 결과를 텍스처(Texture)로 저장하는 방식입니다. 다양한 그래픽스 기법과 효과를 구현하기 위하여 사용되며, 렌더링 결과를 다른 객체의 텍스처로입혀 사용하거나 후처리 효과를 적용하는 등의 용도로 사용됩니다. 일반적으로 3D의 화면을 렌더링할때 화면에 직접 출력되도록 보여집니다. RTT를 사용하면 렌더링 결과를 프레임 버퍼가 아닌 텍스처로 저장하고 이후 이 텍스처를 다른 객체의 텍스처로 적용시키겨나 쉐이더(Shader)에 사용하여 다양한 시각적 효과를 구현할 수 있습니다. 예를들어 3D환경에서 배경의 이미지텍스처를 .. 2023. 8. 7. [CS] 컴퓨트 쉐이더(Compute Shader) 컴퓨트 쉐이더? 컴퓨트 쉐이더는 그래픽 처리장치(GPU)에서 병렬 계산을 수행하기 위한 프로그램 유닛 입니다. 기존에는 그래픽 렌더링 파이프라인에서 정점(Vertex), 픽셀(Pixel)등을 처리하기 위한 버텍스 쉐이더(VS. Vertex Shader)와 픽셀 쉐이더(PS , Pixel Shader)가 주로 사용되었으나, 컴퓨트 쉐이더는 그래픽 처리(렌더링파이프라인) 외의 일반적인 계산에 GPU를 활용하기 위해 도입되었습니다. 즉, 그래픽스와 별도로 사용이 가능 합니다. 컴퓨트 쉐이더는 주로 GPGPU(아래의 링크를 참고)작업을 수행하는 데 사용됩니다. [CS] GPGPU GPGPU ? GPGPU는 "General Purpose Computing on Graphics Processing Unit" 의 약.. 2023. 7. 11. [Animation] 스키닝(Skinning) 부분 정리 스크닝 애니메이션 개념 정리 [Animation] 스키닝(Skinning) 애니메이션 스키닝 애니메이션? Skinning Animation은 3D 모델의 뼈대 또는 스켈레톤을 기반으로 하는 애니메이션 기술이며 3D 모델의 피부또는 외부 메쉬를 뼈대(Bone) 또는 스켈레톤(Skeleton)에 결합시키는 프로세 rhksgml78.tistory.com Shader 에 추가된 코드 부분 matrix SkinWorld(float4 indices, float4 weights) // 상위 Shader 파일 { matrix transform = 0; //영행렬 transform += mul(weights.x, Bones[(uint) indices.x]); transform += mul(weights.y, Bones[.. 2023. 7. 4. 이전 1 2 다음