directx
[DirectX11] 071~73 Get MultiBones
[DirectX11] 071~73 Get MultiBones
2023.03.15DirectX 11에서 Multibones는 스켈레탈 애니메이션을 구현하는 데 사용되는 기술이다. 스켈레탈 애니메이션은 3D 모델의 뼈대와 관련된 것으로, 모델이 움직이는 동안 뼈대가 움직이며 모델을 변형시킨다. Multibones는 여러 개의 뼈대를 사용하여 더욱 자연스러운 애니메이션을 만들어낸다. 이를 통해 모델의 각 부분에 대해 다양한 뼈대를 지정할 수 있으며, 더 복잡한 동작을 만들어낼 수 있다. 목차 Get Multibones DirectX 11에서 Multibones는 스켈레탈 애니메이션을 구현하는 데 사용되는 기술이다. 스켈레탈 애니메이션은 3D 모델의 뼈대와 관련된 것으로, 모델이 움직이는 동안 뼈대가 움직이며 모델을 변형시킨다. Multibones는 여러 개의 뼈대를 사용하여 더욱 자연스..
[DirectX11] 070 OBB(Oriented Bounding Box) collision
[DirectX11] 070 OBB(Oriented Bounding Box) collision
2023.03.14DirectX11에서 OBB (Oriented Bounding Box) 충돌 검사는 다른 물체와의 충돌을 감지하는데 사용되는 방법 중 하나이다. 이를 위해 OBB의 충돌 분리 축(the separating axis) 이론이 사용된다. OBB는 충돌 검사를 수행하기 위해 일반적으로 모델의 경계 상자로 사용된다. 이 상자는 일반적으로 물체의 모양에 맞게 회전할 수 있다. 이러한 OBB의 충돌 검사는 OBB의 축을 기준으로 수행된다. 목차 OBB(Oriented Bounding Box) collision Shader Framework Objects Collider.h .cpp UnitTest Objects ObbCollisionDemo.h .cpp 생성 Main.h .cpp OBB 충돌 - 분리축 이론 OBB..
[DirectX11] 069 Collider
[DirectX11] 069 Collider
2023.03.13글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자입니다 목차 Collider Shader Framework Objects Collider.h .cpp UnitTest Objects ObbRaycastDemo.h .cpp 생성 Main.h .cpp Collider Collider.h 더보기 #pragma once struct Ray { Ray() : Position(0, 0, 0), Direction(0, 0, 0) { } Ray(Vector3& position, Vector3& directio..
[DirectX11] 068 Unprojection - 2D 좌표를 3D 좌표로 변환
[DirectX11] 068 Unprojection - 2D 좌표를 3D 좌표로 변환
2023.03.132D 공간을 3D 공간으로 변환한다. 가까운면(근면)부터 거리가 먼면(원면)까지 방향을 구한 다음, 그것을 이어주는 선을 TrytoIntercept에 넣어주면 해당 삼각형의 위치가 나온다. 마우스의 위치를 2D로 변환한 좌표를 활용하여 삼각형을 그려 3D 좌표로 변환한다. 목차 Unprojection - 2D 좌표를 3D 좌표로 변환 Shader Framework Environment Terrain.h .cpp Viewer Viewport.h .cpp UnitTest Terrain GetRaycastDemo.h .cpp 생성 Main.h .cpp Terrain Terrain.h 더보기 #pragma once class Terrain { public: typedef VertexNormal TerrainVe..
[DirectX11] 067 Projection
[DirectX11] 067 Projection
2023.03.09목차 Projection IA -> VS -> RS -> PS -> OM VS (World, View, Projection 조정) RS (vp) NDC 공간 z(깊이)는 0~1인 이유는? (카메라) 뒤쪽은 없다. 고로 음수는 쓸 일이 없다. Perspective 원근 투영: 가까울수록 크고, 멀수록 작다.Orthographic 직교 투영: Projection 과정 = 3D 정점 → W, V, P → 2D Unprojection 과정 = 2D → W, V, P → 3D 정점 Picking이란?마우스 클릭 위치에서 far위치로부터의 거리를 활용하여 Unprojection Shader Framework Viewer Viewport.h .cppUnitTest Projection Pro..
[DirectX11] 066 3D 공간에서 충돌체 선택하기
[DirectX11] 066 3D 공간에서 충돌체 선택하기
2023.03.08글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자입니다 목차 3D 공간에서 충돌체 선택하기 3D 공간에서 충돌체 선택하기 3D 공간을 2D 공간으로 변환 2D 공간을 3D 공간으로 변환 IA → VS → RS → PS → OM IA VS WVP(World, View, Projection) RS Vp(뷰포트 변환) PS OM Viewport Demo Context.h에서 만든 class Viewport* viewport; 사용. ViewportDemo.h 더보기 #pragma once #incl..
[DirectX11] 064~65 Bone 위치에 충돌체 삽입하기
[DirectX11] 064~65 Bone 위치에 충돌체 삽입하기
2023.03.06컴퓨팅 셰이더(Compute Shader)는 그래픽 렌더링에 주로 사용되는 정점 및 픽셀 셰이더와 같은 다른 유형의 셰이더와 달리, Compute Shader는 더 유연하고 다용도적으로 설계되어 있다. 목차 Animation Instancing Shader RawBuffer.fx GetAnimationBone.fx Framework Model ModeAnimator.h .cpp Objects Collider.h .cpp Renders Buffer.h .cpp Render2D.h .cpp UnitTest DirectCompute RawBufferDemo.h .cpp GetAnimationBoneDemo.h .cpp Instancing InstancingFrameworkDemo.h .cpp Main.h .c..
[DirectX11] 063 Compute Shader - GetAnimationBone 구현하기
[DirectX11] 063 Compute Shader - GetAnimationBone 구현하기
2023.03.06Compute Shader는 DirectX 11의 도구로 GPU 상에서 복잡한 연산을 수행할 수 있으며, 애니메이션의 경우 Compute Shader를 사용하여 Skeletal Animation System에서 Bone의 변환을 효율적으로 계산할 수 있어 CPU 오버헤드를 최소화하면서 실시간 애니메이션을 구현할 수 있다. 목차 Compute Shader - GetAnimationBone 구현하기 컴퓨팅 셰이더(Compute Shader)는 그래픽 렌더링에 주로 사용되는 정점 및 픽셀 셰이더와 같은 다른 유형의 셰이더와 달리, Compute Shader는 더 유연하고 다용도적으로 설계되어 있다.Compute Shader에서는 GPU 상의 여러 스레드(multiple threads)에 걸쳐 복잡한 연산..
[DirectX11] 062 Texture Buffer
[DirectX11] 062 Texture Buffer
2023.03.03글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자입니다 목차 Texture Buffer Shader RawBuffer.fx Framework Render Buffer.h .cpp Render2D.h .cpp 생성 UnitTest DirectCompute RawBufferDemo.h .cpp Main.h .cpp fx Render2D.fx 더보기 #include "00_Global.fx" #include "00_Light.fx" cbuffer CB_Render2D { matrix View2D; ..
[DirectX11] 061 Thread Group, SV_GroupID
[DirectX11] 061 Thread Group, SV_GroupID
2023.03.02DirectX 11에서 Thread Group은 GPU 상에서 함께 실행되는 셰이더 호출의 집합을 의미한다. Thread Group은 GPU 상에서 비그래픽 처리를 허용하는 그래픽 파이프라인의 프로그래밍 가능한 단계인 컴퓨팅 셰이더에 사용된다. 목차 Thread Group DirectX 11에서 Thread Group은 GPU 상에서 함께 실행되는 셰이더 호출의 집합을 의미한다. Thread Group은 GPU 상에서 비그래픽 처리를 허용하는 그래픽 파이프라인의 프로그래밍 가능한 단계인 컴퓨팅 셰이더에 사용된다. Thread Group은 세 가지 값, 즉 각 차원을 따르는 그룹의 스레드 수(thread group dimensions), 그룹의 스레드 수(thread group size) 및 총 스레드 그..
[DirectX11] 060 Compute Shader
[DirectX11] 060 Compute Shader
2023.02.28DirectX 11에서 컴퓨팅 셰이더(compute shader)는 그래픽 처리 장치(GPU)에서 실행되는 셰이더 프로그램의 한 종류로, 그래픽을 렌더링하는 대신 범용 계산을 수행하도록 특별히 설계되었다. 목차 Compute Shader DirectX 11에서 컴퓨팅 셰이더(compute shader)는 그래픽 처리 장치(GPU)에서 실행되는 셰이더 프로그램의 한 종류로, 그래픽을 렌더링하는 대신 범용 계산을 수행하도록 특별히 설계되었다. 컴퓨팅 셰이더(compute shader)는 물리 시뮬레이션, 이미지 처리, 데이터 처리 등과 같은 매우 다양한 작업에 사용될 수 있다. 독립적으로 사용하거나 정점 셰이더, 픽셀 셰이더, 지오메트리 셰이더와 같은 다른 셰이더 프로그램과 함께 사용할 수 있다. 컴퓨팅 셰..
[DirectX11] 059 Raw Buffer
[DirectX11] 059 Raw Buffer
2023.02.28DirectX 11에서 Raw Buffer는 특정한 해석이나 형식 없이 바이트 시퀀스를 저장하는 데 사용되는 버퍼 객체의 유형을 가리킨다. 단순히 그래픽 처리 장치(GPU)가 유연한 방식으로 접근할 수 있는 메모리 블록이다. Raw Buffer를 사용하면 미리 정의된 형식으로 제한되지 않고 저장되는 데이터의 형식과 구조를 정의할 수 있다. 목차 Raw Buffer DirectX 11에서 Raw Buffer는 특정한 해석이나 형식 없이 바이트 시퀀스를 저장하는 데 사용되는 버퍼 객체의 유형을 가리킨다. 단순히 그래픽 처리 장치(GPU)가 유연한 방식으로 접근할 수 있는 메모리 블록이다. Raw Buffer는 일반적으로 CPU와 GPU 사이 또는 GPU 내의 서로 다른 셰이더 단계 사이에 전달되어야 하는 임..