Graphics

Graphics/Directx9 - 셰이더 프로그래밍 입문

셰이더 프로그래밍 입문 Chapter 3

텍스처매핑 물체에 텍스처 매핑하는 법을 배운다. 텍스처매핑과 UV 좌표 텍스처 매핑 방법 3D 물체를 이루는 요소는 삼각형 ▶ 삼각형은 정점3개로 생성 ▶ 삼각형의 각 정점을 텍스쳐 위의 한 픽셀에 대응 UV 좌표 - 모든 값을 백분율로 표현 (텍스처 이미지 파일의 크기변화와 관계없이 통일적으로 텍스처 매핑을 하기 위해) - 좌표는 xy좌표계 대신 uv좌표계를 사용 (기존 x, y 와 구별하기 위해) 예시 위에서 설명된 내용대로 백분율을 사용하는 uv 좌표계(u, v)를 이용한 텍스처 매핑의 예시들은 그림과 같다. 위의 내용을 바탕으로 렌더몽키를 통해 구현한다. 2장의 설정에서 DiffuseMap과 DiffuseSampler를 추가했다. 정점셰이더 struct VS_INPUT { float4 mPosit..

Graphics/Ray Tracing

레이 트레이싱 (RayTracingInOneWeekend) 3. The vec3 Class

vec3 Class의 필요성 - 거의 대부분의 그래픽 프로그램에는 기하학적 벡터와 색상을 저장하기 위한 클래스가 존재하는데 대부분 4D형태의 값을 가진다.(x, y, z, w), (r, g, b, a) - 예제에서도 마찬가지로 벡터와 색상 등을 저장하기 위한 클래스를 정의하는데 3D Vector를 사용한다. - 색상, 위치, 방향, 오프셋 등에 대해 모두 동일한 vec3 클래스를 사용하기로 한다. 코드 - vec3.h 상단부 #ifndef VEC3_H #define VEC3_H #include #include //sqrt -> std::sqrt임을 명시 using std::sqrt; class vec3 { public: //vec3 벡터 클래스 생성자 //기본 생성자(Default Constructor)..

Graphics/Directx9 - 셰이더 프로그래밍 입문

셰이더 프로그래밍 입문 Chapter 2

진짜 쉬운 빨강 셰이더 렌더몽키에서 빨간색 공을 그리는 셰이더를 작성한다. 정점셰이더 전역변수와 정점 데이터 - 셰이더에서 사용할 수 있는 두 가지 입력값 두 입력 값을 구분하는 기준 = 한 물체를 구성하는 모든 정점이 동일한 값을 사용하는가? 구분 기준 입력 값 예시 모든 정점이 동일한 값을 사용하는 경우 전역변수 월드행렬, 카메라의 위치 정점마다 다른 값을 사용하는 경우 정점 데이터 정점의 위치, UV좌표 정점셰이더의 입력 데이터 struct VS_INPUT { float4 mPosition : POSITION; }; 각 정점의 위치를 공간변환하는 역할을 수행하기 위해 정점의 위치를 입력받는다. VS_INPUT (VertexShader_Input) - 정점데이터 입력 구조체 float4 mPosito..

Graphics/Ray Tracing

레이 트레이싱 (RayTracingInOneWeekend) 2. Output an Image

위 링크의 설명을 따라 Ray Tracing을 구현할 수 있다고 해서 시작하게 되었다. https://raytracing.github.io/books/RayTracingInOneWeekend.html#overview https://raytracing.github.io/books/RayTracingInOneWeekend.html#overview Now we can change our main to use this: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight #include "color.h" #include "vec3.h" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..

C++/Graphics
'Graphics' 카테고리의 글 목록 (5 Page)