본문 바로가기

D3D23

[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.
[DirectX3D / Graphics] 조명효과 (Ambient . Diffuse . Specular . Phong Reflection) D3D를 공부하며 조명효과를 배우기 시작하여 관련 내용을 정리하고자 합니다. 가장 기본적으로 사용되는 조명 모델인 Phong Reflection(이하 퐁 모델) 그리고 퐁 모델을 위해 필요한 기본 모델들에 대하여 알아보도록 합니다. 우선 퐁 모델을 위해서는 기본적인 3개의 모델이 필요합니다. Ambient Diffuse Specular Shaders 필터의 hlsl 파일의 PS 코드를 참조 합니다. float4 PS(PixelInput input) : SV_TARGET { //world space light float3 light = normalize(-float3(1, -1, 1)); // 빛의 방향 벡터 //world space normal float3 normal = normalize(input.N.. 2023. 6. 7.
[창작] DirectX11 3D 1주일 팀 프로젝트 "2인용 리듬+수영 게임" 3D 수업이 시작되고 약 한달이 경과하였습니다. 이 시점에 그간 배워온 내용으로 작게나마 프로젝트를 진행해 보는 기간이 있었습니다. 기간은 짧게 1주일로 정하여 3명의 팀원끼리 간단한 게임을 만들게 되었습니다. 일주일 간의 프로젝트 기간을 마치고 정리를 해보려 합니다. DAY 0. 우선 프로젝트 시작 전날은 3명의 팀원이 최우선적으로 어떠한 게임을 만들까 의견을 내는 날 이었습니다. 3D를 배우며 아직까지 지식이 충분하지 않기 때문에 만들어보고 싶은 게임은 장대하였으나....한정적인 기술만을 가지고 게임을 정해야했고 그로인하여 복잡한 로직이나 화려한 이펙트를 넣을 수 없었기에 아쉽지만 아주 심플한 게임 위주로 주제를 정하기로 했습니다. 우선 제일 먼저 제안된 게임은 볼링 게임 이었습니다. 간단히 구체 형.. 2023. 6. 7.
[DirectX3D] 레이 캐스팅 ( Ray Casting ) & 레이 트레이싱 ( Ray Tracing) (feat.충돌) 레이 캐스팅 ? 레이 캐스팅이란 빛(Ray)를 쏴서(Casting) 충돌한 물체의 표면을 감지하는 기술 입니다. 빛의 시작지점 부터 물체까지의 거리를 바탕으로 얼마나 가까이에 렌더링해야하는 지를 결정할 수 있습니다. 화면의 임의 위치에 모든 픽셀마다 카메라가바라보고 있는 방향으로 빛을 투사한 후 충돌체 까지의 거리를 구하여 충돌체 까지의 거리가 멀수록 가로 1픽셀 짜리 짧은 세로줄을 해당 합니다. 반대로 거리가 가까울 수록 가로 1픽셀 짜리 긴 세로줄을 해당 하여 그리는 방식으로 원근감이 있는 3D 느낌을 줄 수 있습니다. (즉, 멀수록 작아보이고 가까울 수록 커보이게 됩니다.) 위처럼 레이 캐스팅은 무한하게 뻗어있는 점들이 마치 선처럼 구성되어 있는 형태 입니다. D3D 에서 레이 캐스팅 관련 코드 예.. 2023. 5. 31.