분류 전체보기(94)
-
FVF
Flexible Vertex Format(FVF) D3D 8.0 이후부터는 FVF를 사용해야 정점 셰이더를 사용할 수 있다. FVF는 D3D에서 정해져 있는 정점 포맷 중에서 자신이 제작하는 프로그램에 알맞은 것들을 모아서 새로운 정점 포맷을 정하는 방법이다. D3D 9.0에서 정해져 있는 포맷은 다음과 같다. 정점의 좌표 x,y,z좌표 (float) RHW RHW(float) 결합 가중치 1~4결합 가중치(float) 정점의 법선벡터 x,y,z좌표(float) 정점의 점 크기 점 크기(float) 확산광 색 확산광 RGBA(DWORD) 반사광 색 반사광 RGBA(DWORD) 텍스처 좌표 1 1~4차원 좌표계(float 1~4) . . . 텍스처 좌표 8 1~4차원 좌표계(float 1~4) 위의 포맷을..
2022.08.14 -
일반적인 WIN32 구조와 D3D 비교
WIN32 RegisterClassEX()로 생성하고자 하는 윈도우의 클래스를 등록한다. CreateWindow()로 윈도우를 생성한다. ShowWindow(),UpdateWindow()로 윈도우를 화면에 표시한다. GetMessage(),TranslateMessage(),DispatchMessage()로 이루어진 메시지 루프를 수행한다. 메시지 루프를 빠져나올 경우 프로그램을 종료한다. D3D RegisterClassEX()로 생성하고자 하는 윈도우의 클래스를 등록한다. CreateWindow()로 윈도우를 생성한다. InitD3D()함수에서 다이렉트3D를 Init한다. ShowWindow(),UpdateWindow()로 윈도우를 화면에 표시한다. GetMessage(),TranslateMessage(..
2022.08.10 -
삼각형
삼각형은 3D 물체의 기본 구성 요소이다. 물체를 구성하기 위해서는 물체의 모양과 외형을 묘사하는 삼각형 리스트를 만들어야 한다. 예를 들어 사각형을 만들기 위해서는 다음 그림에 보이는 것처럼 두 개의 삼각형으로 나누고 각각의 삼각형을 구성하는 버텍스를 지정해야 한다. Vertex rect[6] = {v0,v1,v2 // triangle0 v0,v2,v3}; // triangle1 주의할점은 삼각형의 버텍스를 지정하는 순서는 매우 중요하다. 이를 두르기 순서(winding order)라고 부른다.
2022.08.06 -
모델표현 / 버텍스 포맷
렌더링 파이프라인은 3D 세계에 대한 기하학적 표현과 이 세계를 바라보는 관점을 정의하는 가상 카메라를 이용해 2D 이미지를 만들어내는 역할을 담당한다. 모델표현장면(Scene)은 물체나 모델의 모음이다.물체는 삼각형 메쉬의 묘사로 이루어지는데, 메쉬의 삼각형은 물체의 기본적인 구성 성분이 되며, 다각형(polygon),기본형(primitive) 그리고 메쉬 기하물체를 상호 교환적으로 이용한다. 다각형에서 두 개의 변이 만나는 지점을 버텍스(꼭지점)라 한다. 하나의 삼각형을 만들기 위해서는 삼각형의 세 버텍스에 해당하는 세 개의 포인트 위치를 지정해야 하며 , 이 삼각형을 지정하여 물체를 묘사한다. 버텍스 포맷앞서 설명한 버텍스의 정의는 수학적으로는 문제가 없지만, Direct3D에서 이용할 개념으로는 ..
2022.08.06 -
D3D Init
먼저 d3dUtility.h를 포함시키고, 장치를 위한 전역 변수를 인스턴스화 #include "d3dUtility.h" IDirect3DDevice9* Device = 0; 해당 예제에서는 자원을 할당할 필요가 없으므로 Setup과 Cleanup 메서드는 비어뒀다. //*******************공통*********************** bool Setup() { return true; } //자원의 할당이나 장치 특성의 확인, 애플리케이션 상태의 설정 등과 같이 예제를 실행하기 위한 사전 준비 작업이 이 함수에서 수행된다. void Cleanup() {} //Setup 함수에서 할당된 자원을 해제하는 작업을 수행한다. //이 함수는 모든 드로잉 코드를 구현하며, 물체의 위치를 수정하는 등의..
2022.08.05 -
VFX
[VFX Graph 란?] 1)컴퓨트 셰이더 기반의 GPU 파티클 도구 (컴퓨트 셰이더란?) https://docs.unity3d.com/kr/2018.4/Manual/class-ComputeShader.html 2)GPU의 강력 병렬 파워를 사용하여 수백만 개의 파티클을 뿌릴 수 있음 3)뿌릴 수는 있는데 이것도 많으면 느려짐. 4)모바일에서도 사용 가능 (OpenGL ES3.1이상) 한줄로 요약하자면 계산을 넣어 -> 파티클을 더 많이 사용할 수 있는 툴 [컴퓨트 셰이더와 VFX Graph] 1)GPU는 주로 화면에 그리는 것을 담당. 2) GPU의 엄청난 병렬 계산 능력을 활용하기 위해서는 셰이더언어로 접근. 이것이 Compute(계산)셰이더 3) 고정 파이프라인대로 화면에 그리는 버텍스/픽셀 셰이..
2022.07.31