DX118 [DirectX3D] 로딩씬(씬전환) Loading Scene 추가 프레임워크에서 씬(Scene)를 여러개 만들고 씬전환화면으로 로딩씬을 제작하게되었습니다. 추가전 1.프로그램 실행 > 2.게임입장상호작용 > 3.실제플레이Scene > 4.엔딩Scene 추가전 후 1.프로그램 실행 > 2.게임입장상호작용 > 3. 로딩씬 > 4.실제플레이Scene > 5.엔딩Scene 로딩씬에서는 게임실행에 필요한 데이터들이 세팅되는 과정을 시각적으로 볼수있도록 하였습니다. 메인 화면에서 게임으로 진입시 실행에 필요한 데이터들을 로드(Load)하는동안 생각보다 긴 시간이 필요합니다. 때문에 멈춰있는 화면이 없는것처럼 보이도록 하기위하여 로딩씬을 추가합니다. 메인 화면에서 게임입장 버튼 글릭시 바로 로딩씬이 실행됩니다. 로딩씬에서는 스레드(thread)를 사용.. 2023. 8. 21. [Animation] 애니메이션 블렌드(Animation Blend) 애니메이션 블렌드? 그래픽스에서 Animation Blend는 여러 개의 애니메이션 클립(Clip)을 조합하여 자연스러운 끊기지않도록 자연스럽게 연결된 애니메이션 효과를 만들어내는 기술입니다. 애니메이션 블렌드는 캐릭터 애니메이션과 같은 실시간 그래픽스 애플리케이션에서 많이 사용됩니다. 일반적으로 애니메이션 클립은 캐릭터의 다양한 동작을 나타나낸 동작 단위 입니다. 예를 들어 걷기, 뛰기, 점프 등의 각각 동작은 개별 애니메이션 클립으로 표현될 수 있습니다. 이러한 애니메이션 클립을 조합하여 보다 자연스러운 애니메이션을 만들어 낼 수 있습니다. 구현방식 애니메이션 블렌드는 크게 두 가지 방식으로 구현 됩니다. 1. Linear Blending (선형 블렌딩) 각 애니메이션 클립의 가중치(Weight)를 .. 2023. 7. 4. [Animation] 키프레임(KeyFrame) 애니메이션 키프레임 애니메이션? 컴퓨터 그래픽스에서 주로 사용되는 애니메이션 기법 중 하나입니다. 키프레임 애니매이션 기법은 3D 모델의 움직임(동작)을 주요 프레임들로 구성 합니다. 중간 프레임들은 보간(interpolation)을 통하여 계산되어지고 자연스러운 움직임을 생성 합니다. 키프레임의 구성 키프레임 애니메이션은 다음과 같은 단계로 진행 됩니다. 1. 키프레임의 생성 3D 모델이 움직이는 동안의 주요 프레임을 정의 하는 단계입니다. 각 키프레임은 객체의 위치, 회전, 스케일 등을 포함하는 정보들을 가지고 있습니다. 이러한 키프레임은 애니메이션 디자이너에 의해서 만들어집니다. 2. 인터폴레이션(보간) 실행 키프레임 사이의 중간 프레임을 계산합니다. 보간(interpolation)기법을 사용하여 애니메이션의.. 2023. 6. 28. [Animation] 스키닝(Skinning) 애니메이션 스키닝 애니메이션? Skinning Animation은 3D 모델의 뼈대 또는 스켈레톤을 기반으로 하는 애니메이션 기술이며 3D 모델의 피부또는 외부 메쉬를 뼈대(Bone) 또는 스켈레톤(Skeleton)에 결합시키는 프로세스 입니다. 캐릭터 모델링에서 주로 사용되고 있으며, 캐릭터의 뼈대를 구성하는 복수의 뼈(또는 조인트)에 의해서 제어됩니다. 각 뼈는 변환 행렬을 가지고 있으며, 이런 행렬은 캐릭터의 뼈대에 따라 움직임을 계산하여 제어할 수 있으며 이를 통하여 모델이 움직일 때 피부가 자연스럽게 변형되어 애니메이션 효과를 만들 수 있습니다. 스키닝 애니메이션의 구성 스키닝 애니메이션의 주요한 구성은 다음과 같습니다. 1. 스켈레톤 또는 뼈대 모델의 움직임을 제어하는 뼈대의 구조 입니다. 일반적으로 스.. 2023. 6. 22. [DirectX3D/ASSIMP] ASSIMP 구조 ASSIMP ? model importing library 입니다. Open Asset Import Library 줄여서 ASSIMP 라고 합니다. ASSIMP는 모든 모델의 데이터를 생성한 구조로 불러옴으로써 많은 종류의 모델 파일 포멧을 import(추출)이 가능합니다. ASSIMP가 모델을 로드하기만 한다면 데이터 구조에서 사용자가 원하는 모든 데이터를 얻어 올 수 있습니다. ASSIMP의 데이터구조가 import된 파일 포멧의 유형과 관계없이 동일하게 유지되기 떄문에 다양한 확장자의 파일 포멧들을 추상화 할 수 있습니다. 전체적인 모델을 import된 모든 모델(Object)의 씬(Scene)을 포함하고있는 Scene 객체에 로드합니다. ASSIMP는 노드의 모음을 가지게 되고 각 노드는 자신의 .. 2023. 6. 21. [자료구조] 함수포인터 함수 포인터 함수도 다른 변수들처럼 자신의 [주소]를 가지고 있습니다. 이 함수의 주소를 포인터 변수에 저장하여 사용할 수 있는 것을 함수 포인터 라고 합니다. [ 함수 포인터 예제 ] int (*f)(int, int); = 리턴타입(*포인터이름)(매개변수1, 매개변수2 / 단,매개변수없을시 () 또는 void); 위의 형태로 선언 할 수 있습니다. 위처럼 선언하였을때 함수의 주소값을 저장할 수 있는 [ f ] 의 이름을 가진 함수포인터가 만들어집니다. [ f ] 라는 이름의 포인터 안에는 함수의 [주소]를 저장 하여 사용 합니다. [ 함수 포인터 사용 예제 ] #include using namespace std; int add(int a, int b) { return ( a + b ); } int ma.. 2023. 5. 24. 이전 1 2 다음