본문 바로가기

프로그래밍/DirectX

(8)
범프 매핑 (Bump Mapping) 노멀 매핑, 법선 매핑이라고도 부른다. 물체의 입체감이 있는 것처럼 보여주기 위해 각 픽셀마다 법선을 정의해주는 기법이다. 법선맵은 보통 접선공간이라고 부르는 Tangent Space에 저장한다. 노멀 텍스처에 저장되어 있는 법선 맵을 법선 벡터로 변환해서 사용한다. 법선벡터 XYZ = 법선맵RGB * 2 - 1 탄젠트 공간은 정점의 법선벡터(Z축)를 기준으로 해서 만든 좌표축을 얘기한다. 탄젠트 공간에서는 법선벡터, 즉 Normal이 Z축이 되고 텍스쳐의 UV 중 U나 V 중 하나를 가져와 X축으로 삼는다. 그리고 외적을 이용해서 세번째 축을 구하는데 이렇게 구한 축을 종법선(Binormal)이라고 한다. 법선맵이 항상 파란 이유 파란색이면 b 채널을 얘기한다. 이것은 법선의 z이고 z의 방향은 표면의..
DirectX11 자원 (Resource) Direct3D 11의 자원은 버퍼(Buffer), 텍스처(Texture)로 나뉜다. 이 자원들은 ID3D11Resource라는 단일 공통 기반 클래스를 상속받는다. 이러한 구조는 자원이라는 것이 결국 파이프라인에 연결할 수 있고 입력 또는 출력에 쓰이는 메모리 블록이라는 것을 보여준다. 모든 메모리 자원의 생성은 ID3D11Device 인터페이스로 만든다 모든 자원 생성 메서드는 세개의 매개변수를 받는다 1.. Resource Description : 자원 생성에 관한 모든 옵션을 지정하는 구조체이다. 생성된 자원의 원하는 특성들을 정의하는데 쓰인다. 용도 명세 (Usage Specification) : 자원을 어떤 용도로 사용할 것인지 나타낸다. enum D3D11_USAGE { D3D11_USAGE..
DirectX 11 기초 Device (ID3D11Device) : 셰이더 프로그램 객체, 자원, 상태 객체, 질의 객체 등의 생성을 위한 여러 메서드들을 제공 Device Context (ID3D11DeviceContext) : Device로 생성한 자원이나 셰이더 객체, 상태 객체를 파이프라인에 묶는 데 쓰인다. 렌더링 파이프라인과 계산 파이프라인의 실행을 제어하는 수단을 제공하고, Device로 생성한 자원을 조작하는 수단도 제공한다. Immediate Context : 파이프라인에 직접 연결되는 통로. 하나의 응용 프로그램은 단 하나의 Immediate Context만 사용할 수 있다. Device가 생성될 때 함께 만들어진다. Deferred Context : 주 렌더링 스레드 이외의 2차적인 스레드들이 보낸 일련의 명..
3D 애니메이션 이론 2 Animation Methods as Data Compression Techniques 가장 많이 쓰는 방법은 오브젝트 표면에 애니메이션 컨트롤용의 작은 포인트를 잡아주는 것이다.이렇게 하면 많은 양의 데이터가 잠재적으로 들어있는 애니메이션을 만들 수 있다 Joint는 직접적으로 조종되는 오브젝트다. 그리고 bone들은 심플하게 joint들 사이의 빈공간에 위치하게 된다. Joint Index는 애니메이션 데이터 구조 내의 Joint를 나타내기 위해 사용된다ex) Child Joint는 지정된 인덱스의 부모 Joint를 참조한다Skinned 메쉬에서 정점은 인덱스로 바인딩된 Joint를 나타낸다 Joint 구조체는 Joint의 이름, 부모 Joint의 인덱스, Inverse bind pose가 들어간다B..
Directx11 렌더링 파이프라인 Swap Chain : 렌더링된 내용물을 창에 표시하는데 쓰이는 실제 버퍼들을 추상화한 것 렌더링 파이프라인 입력 조립기 (Input Assembler)정점 셰이더 (Vertex Shader)덮개 셰이더 (Hull Shader)테셀레이터 (Tessellator)영역 셰이더 (Domain Shader)기하 셰이더 (Geometry Shader)래스터라이저 (Rasterizer)픽셀 셰이더 (Pixel Shader)출력 병합기 (Output Merger) 1. 입력 조립기 (Input Assembler) : 자원들로부터 입력 자료를 읽어 들여서 파이프라인의 이후 단계들이 사용할 정점들을 긁어모으는 작업을 담당한다. 취합한 정점들과 기본도형(Primitive) 연결성 정보를 다음 단계로 넘겨준다. 2. 정점 ..
3D Animation 이론 1 SRT - Scale, Rotation, Translation Skinning 장점 : 정점의 뼈 가중치를 갖는 메쉬가 비선형 방식으로 구부러진 것 처럼 부드럽게 변형되는 것 처럼 보일 수 있다-> 더 자연스러워 보여진다 프레임 구조에는 bone 구조, 메쉬 구조, bone과 메쉬 정점의 관계를 가지는 데이터들이 있다 메쉬 데이터는 노말, 텍스쳐 좌표와 같은 다른 데이터와 함께 루트 프레임에 상대적인 정점의 배열로 구성된다 정점의 pos는 주로 pose나 rest pos에 있다애니메이션 메쉬는 주로 쉐이더에서 렌더한다 Frame TransformationMatrix는 애니메이션 배열을 사용하는 Render Cycle로 채워져 있다 애니메이션 컨트롤러 오브젝트나 함수를 이용해서 Transform을 계산하고..
Rasterizer 래스터화기 단계의 처리 공정기하 자료를 렌더 타겟에 저장하기에 적합한 이미지 기반 자료로 효율적으로 변환하는데 필수적이다입력된 기본 도형이 처음 처리되는 연산은 Culling이다Back Face Culling (후면 추려내기): 뒤쪽(시점에서 멀어지는 쪽)을 향한 면을 제외시키는 것. 이 단계에 입력되는 기본도형 중 Face라는 개념이 유효한 것은 삼각형 뿐이라서 삼각형에만 적용된다Culling에 관련된 설정은 CullMode와 FrontCounterClockWise 이다.IA로 입력할 기하구조 자료의 성격에 따라 시계 방향을 전면으로 할 것인지 반시계 방향을 전면으로 할 것인지 결정한다FrontCounterClockWise는 기본도형의 어느 쪽이 전면이고 어느 쪽이 후면인지를 결정한다CullMode는 ..
Light / Rendering 실용 Direct3D 11 렌더링 & 계산 이라는 책을 보고 있다. 처음 Resource와 View, Device, Context와 같은 DirectX11에 관한 내용들이 자세하게 설명되어 있다 그런데 번역을 너무 정직(?)하게 해놓으셔서 실무에서 쓰는 용어들로 다시 해석을 해야하는 경우가 많다 예를 들어 Semantic을 시맨틱말고 의미소로 써있다던지, World 행렬을 세계 행렬이라고 써있다던지.. 이런 번역들 덕에 읽다가 집중이 깨지는 경우가 종종 있는 거 같다 오늘은 조명 부분을 읽었는데 Deferred Rendering과 밀접한 연관이 있어서 자세하게 보고 있다 지금 3D 포트폴리오를 제작할 때 Forward Rendering과 Deferred Rendering을 같이 사용해야하기 때문에 더 유..