분류 전체보기
-
좌표계 NDC(Normalized Device Coordinates) http://www.directxtutorial.com/Lesson.aspx?lessonid=111-4-1 DirectXTutorial.com First of all, I officially welcome you to Direct3D. I would like to teach you both the basics and the advanced topics of 3D programming. Whether you want to build your own engine, borrow one and modify it, or just buy one and use it, it is important that y www.directxtutorial.co..
삼각형 레스터화좌표계 NDC(Normalized Device Coordinates) http://www.directxtutorial.com/Lesson.aspx?lessonid=111-4-1 DirectXTutorial.com First of all, I officially welcome you to Direct3D. I would like to teach you both the basics and the advanced topics of 3D programming. Whether you want to build your own engine, borrow one and modify it, or just buy one and use it, it is important that y www.directxtutorial.co..
2023.11.05 -
역방향 광추적 여태까지 구현했던 역방향 광추적은 픽셀당 하나씩 ray를 쏴 줘야 하고 안티에일리어싱까지 하려면 더 많이 쏴야 한다. 게다가 물체가 많아지면 각 ray가 각 물체랑 모두 충돌여부를 따져야 한다. 만약 물체가 10개라면? 각 ray 당 물체 10개랑 모두 충돌 확인해야 한다. 그러면 1개일때보다 10배는 느려진다. 만약 물체가 1000개라면? 10000개라면?... 자료구조를 잘 활용하면 좀 빨라지긴 하지만, 아무리 그렇게 해도, 반사와 굴절 등을 모두 구현한 순수 ray tracing을 실시간 그래픽스 렌더링하기는 어렵다. 레스터화(rasterization) 레스터화의 장점은, 여러개의 삼각형을 따로따로 그리기 적합하다는 것. 삼각형은 vertex(정점) 세개로 정의할 수 있다. 레스터화 ..
레스터화(rasterization)가 빠른 이유역방향 광추적 여태까지 구현했던 역방향 광추적은 픽셀당 하나씩 ray를 쏴 줘야 하고 안티에일리어싱까지 하려면 더 많이 쏴야 한다. 게다가 물체가 많아지면 각 ray가 각 물체랑 모두 충돌여부를 따져야 한다. 만약 물체가 10개라면? 각 ray 당 물체 10개랑 모두 충돌 확인해야 한다. 그러면 1개일때보다 10배는 느려진다. 만약 물체가 1000개라면? 10000개라면?... 자료구조를 잘 활용하면 좀 빨라지긴 하지만, 아무리 그렇게 해도, 반사와 굴절 등을 모두 구현한 순수 ray tracing을 실시간 그래픽스 렌더링하기는 어렵다. 레스터화(rasterization) 레스터화의 장점은, 여러개의 삼각형을 따로따로 그리기 적합하다는 것. 삼각형은 vertex(정점) 세개로 정의할 수 있다. 레스터화 ..
2023.11.04 -
벡터 표기법 정리 그래픽스 수학 복습 포인트와 벡터 포인트 위치만 표현 예) 철수의 위치, 영희의 위치 벡터 방향과 크기 표현 예) 속도, 힘 포인트-벡터 연산 [주의] 대부분의 API에서는 포인트와 벡터를 구분해서 구현하지 않음 직선 (Line) 선분 Affine Combination 이런식으로 여러개의 Point 앞에 각각 스칼라(가중치)를 곱한 다음 더해주는것을 Affine Combination, 또는 Affine Sum 이라고 한다. 이때, 각 가중치를 모두 더하면 1이 되어야 한다. 벡터 더하기 행렬 벡터 벡터를 행렬형태로 많이 사용하게 되는데, 이때 세로로 길게 쓰면 보기 불편해서 Transpose해서 표현을 많이 함. 동차좌표 (Homogeneous Coordinates) 그래픽스에서 벡터를..
벡터와 포인트벡터 표기법 정리 그래픽스 수학 복습 포인트와 벡터 포인트 위치만 표현 예) 철수의 위치, 영희의 위치 벡터 방향과 크기 표현 예) 속도, 힘 포인트-벡터 연산 [주의] 대부분의 API에서는 포인트와 벡터를 구분해서 구현하지 않음 직선 (Line) 선분 Affine Combination 이런식으로 여러개의 Point 앞에 각각 스칼라(가중치)를 곱한 다음 더해주는것을 Affine Combination, 또는 Affine Sum 이라고 한다. 이때, 각 가중치를 모두 더하면 1이 되어야 한다. 벡터 더하기 행렬 벡터 벡터를 행렬형태로 많이 사용하게 되는데, 이때 세로로 길게 쓰면 보기 불편해서 Transpose해서 표현을 많이 함. 동차좌표 (Homogeneous Coordinates) 그래픽스에서 벡터를..
2023.11.04 -
투명한 물체를 구현하기 위해서는 처음 물체와 부딪힌 지점 d1와 뚫고 지나가서 안에서 밖으로 나올때 만나는 지점 d2를 고려해야 한다. 이때, 계산을 위해서 여태까지 처음맞은 지점을 찾기 위해 빛의 시작점으로부터 맞은 지점까지의 거리를 찾아서 더 짧은쪽이 먼저 맞은점이라고 판단하고 그것만 사용했었다. hit.d = glm::min(d1, d2); 이제는, 뚫고 안에 들어갔을때 빛을 계산할때는 더 먼지점인 d2를 사용해야 한다. 구 안에 있는 점에서 시작해서 d2까지를 계산할때는 d1이 시작점보다 뒤에 있기때문에 거리가 음수로 나올것이다. // 물체 안에서 다시 밖으로 나가면서 충돌 가능 if (hit.d < 0.0f) // hit.d = glm::max(d1, d2); https://samdriver.x..
투명한 물체와 빛의 굴절투명한 물체를 구현하기 위해서는 처음 물체와 부딪힌 지점 d1와 뚫고 지나가서 안에서 밖으로 나올때 만나는 지점 d2를 고려해야 한다. 이때, 계산을 위해서 여태까지 처음맞은 지점을 찾기 위해 빛의 시작점으로부터 맞은 지점까지의 거리를 찾아서 더 짧은쪽이 먼저 맞은점이라고 판단하고 그것만 사용했었다. hit.d = glm::min(d1, d2); 이제는, 뚫고 안에 들어갔을때 빛을 계산할때는 더 먼지점인 d2를 사용해야 한다. 구 안에 있는 점에서 시작해서 d2까지를 계산할때는 d1이 시작점보다 뒤에 있기때문에 거리가 음수로 나올것이다. // 물체 안에서 다시 밖으로 나가면서 충돌 가능 if (hit.d < 0.0f) // hit.d = glm::max(d1, d2); https://samdriver.x..
2023.11.02 -
기존 그냥 퐁 쉐이딩에서는 픽셀에서 ray를 쏴서 물체에 맞는 곳을 계산해주면 되었다. 이제 빛의 반사를 계산하기 위해서는 물체에 맞은 위치에서 또 ray를 쏴서 계산해주고, 또 그게 다른곳에 맞으면 거기서도 또 ray를 쏴서 계산해주고... recursive하게 계산을 해야 한다. 처음 ray가 물체에 맞아서 나온 color(그냥 퐁쉐이딩해서 나온color)와 첫번째 반사돼서 맞은 물체의 색, 두번째 반사돼서 맞은 물체의 색, 세번째 반사돼서 맞은 물체의 색... 을 적절히 섞어서 색을 결정하면 된다. 무한히 함수를 재귀호출 할 수 없기때문에 recursive level을 정해 놓고 해야 한다. // 광선이 물체에 닿으면 그 물체의 색 반환 vec3 traceRay(Ray &ray, const int ..
빛의 반사기존 그냥 퐁 쉐이딩에서는 픽셀에서 ray를 쏴서 물체에 맞는 곳을 계산해주면 되었다. 이제 빛의 반사를 계산하기 위해서는 물체에 맞은 위치에서 또 ray를 쏴서 계산해주고, 또 그게 다른곳에 맞으면 거기서도 또 ray를 쏴서 계산해주고... recursive하게 계산을 해야 한다. 처음 ray가 물체에 맞아서 나온 color(그냥 퐁쉐이딩해서 나온color)와 첫번째 반사돼서 맞은 물체의 색, 두번째 반사돼서 맞은 물체의 색, 세번째 반사돼서 맞은 물체의 색... 을 적절히 섞어서 색을 결정하면 된다. 무한히 함수를 재귀호출 할 수 없기때문에 recursive level을 정해 놓고 해야 한다. // 광선이 물체에 닿으면 그 물체의 색 반환 vec3 traceRay(Ray &ray, const int ..
2023.11.02 -
https://en.wikipedia.org/wiki/Supersampling Supersampling - Wikipedia From Wikipedia, the free encyclopedia Spatial anti-aliasing method Calculating the end color value Comparison of a rendered scene without (left side) and with supersampling anti-aliasing applied (right). (Not applying AA is analogous to a nearest-neighbor en.wikipedia.org 곡면의 계단현상을 개선할 수 있다. 수퍼샘플링의 개념 한픽셀에서 하나의 ray를 쏴서 계산하는 것이..
수퍼 샘플링 (Supersampling)https://en.wikipedia.org/wiki/Supersampling Supersampling - Wikipedia From Wikipedia, the free encyclopedia Spatial anti-aliasing method Calculating the end color value Comparison of a rendered scene without (left side) and with supersampling anti-aliasing applied (right). (Not applying AA is analogous to a nearest-neighbor en.wikipedia.org 곡면의 계단현상을 개선할 수 있다. 수퍼샘플링의 개념 한픽셀에서 하나의 ray를 쏴서 계산하는 것이..
2023.11.02