티스토리 뷰
망할 시간 잡아먹는 괴물이었다.
그냥 https://msdn.microsoft.com/ja-jp/library/ee416573(v=vs.85).aspx
MS 예제를 보고 따라하면
얼마 안걸릴 양인것 같다.
한글로 된 건,
Real Time Rendering 2판 (수식에 오타 존재, 3판에서는 오타 수정) 정도 이다.
http://jaehyuk.tistory.com/256 것도 한글이긴 한데 수식만 복붙이라
전체 이전, 다음 발전 양상은
http://www.nvidia.com/content/PDF/GDC2011/John_McDonald.pdf
GDC 에서 다루었다.
PN_AEN 관련 소스랑 글은 얼마 없는데
http://developer.download.nvidia.com/whitepapers/2010/PN-AEN-Triangles-Whitepaper.pdf
http://on-demand.gputechconf.com/gdc/2011/presentations/Epic_v2_REMOVE.pdf 크랙에 대한 설명
문제는,
http://www.gamasutra.com/view/feature/131389/b%C3%A9zier_triangles_and_npatches.php?print=1
적힌 수식이 틀렸다는것과 논문의 내용 파악에 시간이 걸림.
Ref에 적힌 CAGD 책에는 해당 내용이 없고, Farin의 논문은 어렵게 적어놨다.
(https://pdfs.semanticscholar.org/599a/7965f85462c9b6360b192116d9d3cd6d2430.pdf) Farin 의 논문
우선 근사를 취하면
https://www.gamedev.net/topic/624397-bezier-triangle-partial-derivatives/
위에 적힌 것과 u, v 의 승수만 다른 형태가 된다, 전개중의. 최총 수식은 옳은 형태다.
실제 편미분은,
Handbook of Computer Aided Geometric Design, Farin 이나
하지만 CAGD 책에는 편미분은 기하학적의미가 없다고 말하고 있으며,
베지어 삼각형 내의 두점의 차로 방향을 정하고 그 방향에 대해 방향 도함수를 구한다.
이건 결국 normal 구하는데 써먹어야 하는데,
하지만, 이 논문의 원 저자는 "geometric component of the PN triangles (shaded according to surface normal variation)" 라고 애매 모호한, 표현을 쓴 가장자리만 각진 형태로 shading 된 그림을 이유로 independent linear or quadratic normal variation 을 제안함. (실제 방향 도함수의 cross 결과를 그린 건지;)
(The normal to the geometry component of the PN triangles does not generally vary continuously from triangle to triangle (c.f. Figure 1 (c)). Therefore we define an independent linear or quadratic normal variation)
(https://www.cise.ufl.edu/research/SurfLab/papers/00ati.pdf Fig.1 (c))
이 쪽 연구가 이미 있었던거 같다. 저자 논문의 [12] 이나 Real Time rendering 에서 해당 부분의 끝에 언급된 Lee/Jen
아, 점들 자체는 균일하게 뽑을려고 한거다 3.1 절에 언급이 나와 있다
(uniformly over the flat triangle)
그리고 021, 012 와 같은 1/3, 2/3 지점의 점들은 각 끝점의 normal 로 인한 평면에 수선의 발을 얻는다.
( Here projection means: find the closest point on the plane to the point )
이것의 의미는 크게 없는 것 같다.
눈문에서 각 점의 변경 한계를 3.2 에 가장 긴 선의 1/6 길이 이하라는걸 보이고
그아래에 b111 이 b111 = (1-a)E + aV 의 폼이고 이건 quadrtic polynomials exactly as shown by Farin[5] 라고 하는데
인터넷에 없어서 못봤다.
reproduces quadratic polynomials exactly as shown by Farin[5]. In other words, if the other nine coefficients were already chosen to represent a quadratic polynomial patch, then a = -1/2 makes the PN triangle equal to the quadratic polynomial.
몇마디로 줄이자면,
특별한 의미가 있는 건 아닌 그냥 적당히 만든 방법이다.
나처럼 조사할 필요는 없다.
시간 아깝다.
PS. Real time rendering에서는 C0 연속성을 이야기하고 경계 부분 법선이 연속이어서 G1 곡면을 흉내낸거라 하는데
G1은 모르겠고, 연속성을 이야기하는 부분은 CAGD에서 17.6 절이다.
C0 의 조건은 the two patches must share a common bounary control polygon.
같은 control point를 가장자리는 가져야 하는데 위에 방법도 똑같은 control point 를 생성하니 성립
C1 의 조건은 b^_(1, j, k) = v1 b1_(1,j,k) + v2 b_(0,j+1,k) + v3 b_(0,j,K+1) 이다.
Thus each b^_(1,j,k) is obtained as a barycentric combination of the vertices of a boundary subtriangle of the control net of b^n
이건 coplaner 평면 위에 존재 한다는 거란다
왜냐면 b^는 barycentric combination 으로 나타낼수 있기 때문이다. 2점은 공유하니 나머지 한점이 문젠데 이렇게 되면 다 한 평면위에 있어야 하니 망하는거 아닌가;
'Game > DirectX 11' 카테고리의 다른 글
PN-Triangle (3) (0) | 2017.04.21 |
---|---|
PN Triangle (2) (0) | 2017.04.21 |
Tone mapping (2) (0) | 2017.04.02 |
Tone mapping (0) | 2017.04.01 |
Bilateral Filter (4) (0) | 2017.03.31 |
- Total
- Today
- Yesterday