그래픽스/DX11 14

DX11 HongLap Part2 - 2차원 변환(VertexShader작업)

일반적으로 우리가 머리 속으로 생각하는 형상을 그래픽으로 표현한 것을 모델이라고 한다.이러한 것을 3차원으로 표현하기 위해 우리는 메쉬라는 작은 삼각형을 이용해서 모델을 만든다. 그렇다면 이번에는 뭘 만드는 것이 중점이냐면,2차원 환경에서 삼각형으로 이루어진 물체를 시계 방향과 반시계 방향으로 회전시키고비율을 줄여보고 늘려볼 수 있다.또한 중점을 중심으로 회전하는 것과 자기 자신을 회전하는 것 등이동과 관련에 대한 실습을 해보는 것이 해당 강의의 목표이다.   1. 모델의 이동 모델을 이동시키기 위해서는 각 정점의 현 위치에서 이동시키고자 하는 거리까지 더해주면 된다.  2. 모델의 회전 2차원 회전에서는 어떤 점에 대해서 회전하는 지가 중요하고3차원 회전에서는 어떤 축에 대해서 회전하는 지가 중요하다...

그래픽스/DX11 2024.10.03

DX11 HongLap - 원 그리기

원은 여러 개의 삼각형을 쪼개어 만든다. 얘를 들어 삼각형을 그린다고 했을 땐,삼각형0은 vertex 0 2 1삼각형1은 vertex 0 3 2...이런 식으로 사용할 것이다. 이럴 때 vertex의 순서가 중요하다.해당 엔진에서는 Vertex 순서가 시계 방향으로 가면 화면에 그려지지만,반시계 방향으로 그린다면 화면에 제대로 그려지지 않는다. 이러한 방향은 사실 원하는 대로 바꿀 수 있다.하지만, dx에서는 전통적으로 시계 방향으로 렌더하는 것이 앞면이라고 여긴다. 이러한 삼각형을 원처럼 보이도록 여러개를 쪼개어,sin과 cos을 이용하여 애둘러쌓아 둔다면원처럼 보인다. 이러한 방식으로 원을 그리면 모든 삼각형이 0번을 공유한다.하지만 마지막 삼각형은 1번 정점으로 다시 돌아오기 때문에다음과 같이 예외..

그래픽스/DX11 2024.10.02

퐁라이팅

lighting은 물체와 빛 사이의 상호작용을 말한다. 사실적인 그래픽을 위해서 lighting이 매우 중요하다. 이러한 linghting 기법 중 하나인 퐁라이팅은 빛을 반사하는 것을 ambient, diffuse, specular, emissive 4가지로 나누어서 표현한다.diffuse는 난반사를 의미하며, 광원으로부터, 광원으로부터 점P까지의 벡터를 l, (normal vector 법선 벡터는 해당 직선이나 평면에서 수직인 벡터를 말한다) 점 P의 normal을 n으로 표현한다. 두 벡터 사이의 각이 작으면 작을수록 점 P는 더 많은 조명을 받게 될 것이다. 점 P로 들어오는 빛의 양은 두 벡터의 내적 값이라고 정의할 수 있다. 즉, 조명의 위치에 따라서 표면이 얼마나 밝아질 지를 정할 수 있다...

그래픽스/DX11 2024.09.30

DX11 HongLap - 무게중심좌표계 이론

Interpolation v1에서 v2까지의 거리가 있다고 가정했을 때.v0은 v1,v2 중간 어딘가에 있다,이때, v1에서 v0까지 거리를 a라고 할 때,v0에서 v2는 b이다. 그럼 v0이 v1에 가까워지면 b가 커지고,v0이 v2에 가까워지면 a가 커지는 것을 알 수 있다.이러한 v는 다음과 같이 표현할 수 있다. v = b/a+b* v1 + a/a+b *v2여기서 b/a+bv1을 w라고 표현하면, a/a+b * v2는 1-w로 표현할 수 있다.그럼 이제… 세 점 사이의 정 가운데 p가 있다고 해보자. 세 점은 각각 v1, v2, v3라 할 때p를 다음과 같이 표현할 수 있다. p = v1 + v2 + v3 / 3 = 1/3 v1 + 1/3 v2 + 1/3 v3= w1v1 + w2v2 + w3v3 ..

그래픽스/DX11 2024.09.24

D3D11 HongLap - 벡터와 레스터화

벡터 동차 계산 보통 1이면 포인터이다(0이 아니면 포인터), 0이면 벡터이다.가장 마지막이 동차좌표계이다. 레스터화가 빠른 이유 레스터화가 빠른 이유를 설명하기 전에,비교군인 레이트레이싱을 설명하겠습니다. 레이트레이싱 우리가 가장 많이 사용하는 알고리즘은 레이트레이싱 (역방향 알고리듬) 이다.이 알고리듬은 시점에서 ray를 쏘고, 이 ray가 hit하게되면, 색을 결정한 다음에hit point의 픽셀을 계산하여 렌더링하는 기술이다. 근데 모든 픽셀을 계산하려면 모든 픽셀에 광선을 쏘개된다.만약 픽셀이 10만개면 최소 광선을 10만개는 쏴줘야한다.레이트레이싱에서 가장 부담이 되는 것은 광선하고 물체가 충돌하는 부분을 계산해야 된다는 것입니다. 이러한 이론적인 것을 코드화하면레이트레이싱은 다음과 같은 코드..

그래픽스/DX11 2024.09.13

DX11 HongLap - 빛의 반사

구의 Reflection 수치 값을 변경해주기 전이다. 구 1개만 반사 적용 구 2개에 반사광 적용 바닥까지 반사광 적용 이는 레이트레이싱을 이용한 반사광 적용이다. 반사되는 횟수가 많아질수록 고성능을 요구하기 때문에 컴퓨터 사양에 따라 좀 느려지기도 한다. 해당 이론은 Bilinear Interpolation즉 이중선형 보간과 관련이 있다. 우리는 해당 그림을 통해서 먼저 두개의 선형 보간을 수행하여 a와 b를 계산한 다음 a와 b를 보간하여 c를 찾을 수 있다. c는 당연히 (tx , ty)의 값을 가지게 될 것이다. 이중선형 보간은 일반 2D 그리드의 임의 위치에 있는 값을 알아야 할 때 사용된다. 이 그리디는 이미지나 텍스처 맵에 사용될 수 있다. 이 예에서는 녹색 점으로 표시된 위치(좌표 cx,..

그래픽스/DX11 2024.04.17

DX11 - HongLap 수퍼 샘플링

수퍼 샘플링의 이론은 해당 지점에 도달한 레이 픽셀을 다시 N개로 나누어 쏴준다 해당 픽셀의 N개의 레이를 다시 쏴맞추는 효과로 인해 그 하나의 픽셀 안에서 N개의 평균을 낸 뒤 해당 픽셀 값을 도출해내는 샘플링이다. 슈퍼 샘플링이란 샘플링할 때 즉, 하나만 샘플링만 하는 것이 아니라 추가로 샘플링을 하여 평균을 낸다라는 아이디어는 기본적으로 동일하나, 방법은 여러가지 방법이 있다.

그래픽스/DX11 2024.04.17

DX11 - HongLab 텍스춰링

적용 전 Point Texturing Linear Texturing 이론 선형 보간법(Linear Interpolation) 이용해서 값 구함 해당 값을 적용해서 최종적으로 찾고싶은 컬러 값을 샘플링하는 것이 가능하다. 이를 Linear Sampling 한다라고 말한다. 2차원 공간에서 1차원의 선형 보간법(Linear Interpolation) 을 두번 반복하는 것을 BiLinear Interpolation 이라고 한다. Linear Texturing 적용 높은 해상도 이미지를 적용한 예시 텍스춰링은 단순히 이미지를 3D 모델에 씌워주는 것 뿐만 아니라 마치 그래픽스를 다루는 개발자가 아주 자세하고 복잡한 3D 모델을 렌더링한 것 같은 결과를 매우 효율적으로 만들어준다. 이는 언리얼에서 고해상도 그래픽..

그래픽스/DX11 2024.04.03