Public/GraphicsAPI(14)
-
[DX12]혼합(Blend) 및 예제
목표혼합의 작동 방식과 Direct3D에서 혼합을 사용하는 법을 이해한다.Direct3D가 지원하는 여러 혼합 모드를 배운다.기본도형의 투명도를 알파 성분을 이용해서 제어하는 방법을 파악한다.HLSL의 clip 함수를 이용해서 한 픽셀이 후면 버퍼에 아예 그려지지 않게 만드는 방법을 배운다. 혼합 공식현재 래스터화 중인 ij번째 픽셀, 즉 원본 픽셀(source pixel) 에 대해 픽셀 셰이더가 출력한 생삭이 Csrc라고 하자. 그리고 현재 후면 버퍼에 있는 ij번째 픽셀, 즉 대상 픽셀(destination pixel)의 색상이 Cdst라고 하자. 만약 혼합을 사용하지 않는다면 Csrc가 Cdst를 덮어 씌운다.(원본이 깊이,스텐실 판정을 통과했다고 할 때)그런데 혼합을 적용하면 Csrc와 Cdst를..
2023.08.26 -
Direct3D 첫번째 요약
Direct3D는 프로그래머와 그래픽 하드웨어 사이의 중재자라고 할 수 있다. 예를 들어 프로그래머는 Direct3D의 함수를 호출함으로써 자원 뷰를 하드웨어 렌더링 파이프라인에 묶거나 렌더링 파이프라인의 출력을 설정하거나 3차원 기하구조를 그린다. Direct3D 11의 경우, Direct3D 11 대응 그래픽 장치는 반드시 Direct3D 11의 기능 집합 전체를 지원해야 한다.(몇몇은 제외) COM(Component Object Model)은 DirectX의 프로그래밍 언어 독립성과 하위 호환성을 가능하게 하는 기술이다. Direct3D 프로그래머가 COM의 세부사항과 작동 방식을 구체적으로 알 필요는 없다. COM 인터페이스를 휙득하고 해제하는 방법만 알면 된다. 1차원 텍스처는 자료 원소들의 1..
2022.09.25 -
Direct3D 응용 프로그램의 디버깅
응용 프로그램 프레임워크는 다수의 Direct3D 함수들이 돌려주는 HRESULT 형식의 반환값을 점검해 주는 매크로를 제공한다. 그매크로는 d3dUtil.h에 다음과 같이 정의되어 있다. #if defined(DEBUG) | defined(_DEBUG) #ifndef HR #define HR(x) \ { \ HRESULT hr = (x); \ if(FAILED(hr)) \ { \ DXTrace(__FILE__, (DWORD)__LINE__, hr, L#x, true); \ } \ } #endif #else #ifndef HR #define HR(x) (x) #endif #endif 이 매크로는 함수의 반환 코드가 실패에 해당하는 값이면 그 반환 코드를 DXTrace 함수 (#include 및 dxerr..
2022.09.25 -
Direct3D 초기화 예제
현재까지의 응용 프로그램 프레임워크를 사용해서 간단한 예제 응용 프로그램을 만들것이다. 주된 기능은 부모 클래스 D3DApp이 대부분 담당하기 때문에 이 예제만의 코드는 거의 없다. 이 예제의 의의는 D3DApp에서 클래스를 하나 파생하고 이 예제만의 고유한 코드로 프레임워크 메서드들을 구현하는 방법을 보여주는 것이다. class InitDirect3DApp : public D3DApp { public: InitDirect3DApp(HINSTANCE hInstance); ~InitDirect3DApp(); bool Init(); void OnResize(); void UpdateScene(float dt); void DrawScene(); }; int WINAPI WinMain(HINSTANCE hIns..
2022.09.25 -
DX11 Tutorial02 코드 설명
//-------------------------------------------------------------------------------------- // File: Tutorial02.cpp // // This application displays a triangle using Direct3D 11 // // Copyright (c) Microsoft Corporation. All rights reserved. //-------------------------------------------------------------------------------------- #include #include #include #include #include #include "resource.h" //--..
2022.08.22 -
광원
재질의 종류재질이란 메시(혹은 물체)의 표면 상태를 말하는 것으로 빛이 물체의 표면에서 반사되어 변화된 뒤 사람의 눈에 들어오기까지의 과정을 수학적으로 모델링하기 위해서 사용하는 값들이다. 복잡한 수식은 나중으로 미루고 이런 값들이 있다는 것을 알아두자.주변색(ambient) : 광원의 위치와 무관하게 똑같은 양으로 모든 점에서 반사되는 색확산색(diffuse) : 광원에 반사될 때 출력되는 가장 주된 색반사색(specular) : 특정한 방향으로만 반사되는 색, 광원의 위치와 카메라의 위치에 따라서 달라진다.방출색(emissive) : 메시 표면에서 자체적으로 방출되는 색. 단, 이 빛이 다른 메시에 영향을 주지는 못한다. 광원의 종류실제로 빛이 물체 표면에서 반사되어 인간의 눈에 도달하기까지의 과정을..
2022.08.15