본문 바로가기

공부259

[Skeleton] Skeleton.h & Skeleton.cpp 정리 캐릭터의 애니메이션 구현을 위하여 필요한 Skeleton에 대하여 정리 합니다. Skeleton 클래스의 .h & .cpp 코드 정리 및 각 코드에 대한 주석입니다. 해당 클래스가 사용되는 ASSIMP 프로젝트는 모든작업이 완료된후 정리할 예정 입니다. Skeleton.h #pragma once #define MAX_BONE 256 // 상수정의 최대값 256 class Skeleton { static ID3D11Buffer* bonesBuffer; // 정적 멤버 변수는 클래스의 모든 인스턴스에서 공유되는 변수입니다. // ID3D11Buffer 형식의 포인터입니다. // bonesBuffer라는 정적 멤버 변수를 선언합니다. public: Skeleton() {}; // 기본생성자만 정의. 구현되어있.. 2023. 6. 28.
[Animation] 키프레임(KeyFrame) 애니메이션 키프레임 애니메이션? 컴퓨터 그래픽스에서 주로 사용되는 애니메이션 기법 중 하나입니다. 키프레임 애니매이션 기법은 3D 모델의 움직임(동작)을 주요 프레임들로 구성 합니다. 중간 프레임들은 보간(interpolation)을 통하여 계산되어지고 자연스러운 움직임을 생성 합니다. 키프레임의 구성 키프레임 애니메이션은 다음과 같은 단계로 진행 됩니다. 1. 키프레임의 생성 3D 모델이 움직이는 동안의 주요 프레임을 정의 하는 단계입니다. 각 키프레임은 객체의 위치, 회전, 스케일 등을 포함하는 정보들을 가지고 있습니다. 이러한 키프레임은 애니메이션 디자이너에 의해서 만들어집니다. 2. 인터폴레이션(보간) 실행 키프레임 사이의 중간 프레임을 계산합니다. 보간(interpolation)기법을 사용하여 애니메이션의.. 2023. 6. 28.
[Graphics] 포워드 렌더링(Forward Rendering) & 디퍼드 렌더링(Deferred Rendering) 포워드 렌더링(Forward Rendering) 포워드 렌더링은 컴퓨터 그래픽스에서 사용되는 렌더링 기술 중 하나입니다. 전통적인 렌더링 기법이며 각각의 빛이나 그림자를 계산하는 대신 모든 빛과 재질에 대한 계산을 한번에 수행 합니다. 포워드 렌더링은 다음과 같은 단계로 진행됩니다. 1. Scene 그래픽 데이터 준비 렌더링할 객체의 정점 버퍼와 인덱스 버퍼를 생성하고, 재질 및 텍스처 정보를 설정 합니다. 2. 카메라 설정 뷰포트 설정, 카메라 위치와 방향 설정 등을 진행 합니다. 3. 그림자 계산 포워드 렌더링에서는 그림자를 계산하기 위해 텍스처 매핑이 사용될 수 있습니다. 그림자 맵을 만들고, 적절한 투영 및 텍스처 매핑 기법을 사용하여 그림자를 계산하게 됩니다. 4. 조명 계산 포워드 렌더링에서는.. 2023. 6. 27.
[Graphics] 그림자 매핑(Shadow Mapping) & 애트라크션(Acne) 그림자 매핑(Shadow Mapping) 그림자 매핑은 실시간 그래픽스에서 그림자를 생성하기위한 기술 입니다. 조명이 존재하는 3D 화면에서 빛을 가리는 물체의 그림자를 시뮬레이션 하는데 사용 됩니다. 그림자 매핑의 구현 방식 그림자 매핑은 크게 3단계의 방식으로 구현이 됩니다. 1. 그림자 맵(Shadow Map) 생성 빛의 위치에서 바라보는 시점의 가상 카메라를 설정 합니다. 카메라는 빛이 비추는 장면을 관찰하며, 각 픽셀의 "깊이(Depth)값"을 저장하는 텍스처인 "그림자 맵(Shadow Map)"을 생성합니다. 그림자맵은 "깊이버퍼(Depth Buffer)"이고, 깊이 값은 시점에서 가상 카메라까지의 거리를 나타냅니다. 2. 그림자 검사 장면을 그리기 전에 우선 "그림자 맵"을 사용하여 그림자 .. 2023. 6. 26.
[Graphics] 노멀 매핑(Normal Mapping) & 탄젠트 스페이스(Tangent Space) 노멀 매핑(Normal Mapping) 노멀 매핑은 표면의 디테일을 높이기 위하여 사용되는 기술입니다. 일반적으로 3D 모델의 표면은 균일한 빛 반사의 특성을 가지고 있지만 실제 객체는 표면의 디테일이 있고, 함몰 및 돌출의 부분들이 존재 합니다. 노멀 매핑은 이러한 디테일을 표현하기 위하여 사용되는 기술로 3D 모델의 표면의 법선(Normal)의 벡터를 조작하여 시각적으로 디테일한 표현을 추가합니다. 공식 및 상세내용 참조 사이트 LearnOpenGL - Normal Mapping Normal Mapping Advanced-Lighting/Normal-Mapping All of our scenes are filled with meshes, each consisting of hundreds or mayb.. 2023. 6. 25.
[Animation] 스키닝(Skinning) 애니메이션 스키닝 애니메이션? Skinning Animation은 3D 모델의 뼈대 또는 스켈레톤을 기반으로 하는 애니메이션 기술이며 3D 모델의 피부또는 외부 메쉬를 뼈대(Bone) 또는 스켈레톤(Skeleton)에 결합시키는 프로세스 입니다. 캐릭터 모델링에서 주로 사용되고 있으며, 캐릭터의 뼈대를 구성하는 복수의 뼈(또는 조인트)에 의해서 제어됩니다. 각 뼈는 변환 행렬을 가지고 있으며, 이런 행렬은 캐릭터의 뼈대에 따라 움직임을 계산하여 제어할 수 있으며 이를 통하여 모델이 움직일 때 피부가 자연스럽게 변형되어 애니메이션 효과를 만들 수 있습니다. 스키닝 애니메이션의 구성 스키닝 애니메이션의 주요한 구성은 다음과 같습니다. 1. 스켈레톤 또는 뼈대 모델의 움직임을 제어하는 뼈대의 구조 입니다. 일반적으로 스.. 2023. 6. 22.