메시의 T- 접합으로 인해 균열이 발생하는 이유는 무엇입니까?


19

많은 소스에서 3D 메쉬에 T- 정션을 갖는 것이 렌더링 중에 균열을 일으킬 수 있기 때문에 나쁜 생각이라고 들었습니다. 누군가 왜 그런 일이 발생하는지, 어떻게 피할 수 있는지 설명 할 수 있습니까?


답변:


20

테셀레이션의 관점에서 lhf의 대답은 좋지만 더 간단한 삼각형 메쉬 사용 사례에서 발생할 수 있습니다.

ABC, ADE 및 DBE 의 세 가지 화면 공간 삼각형 의 간단한 예를 들어보십시오 .

여기에 이미지 설명을 입력하십시오

점 E는 수학적으로 정확하게 선분 AB에 있도록 의도되었지만 파이프 라인은 합리적인 숫자 (예 : https://gmplib.org/ ) 와 같은 완전히 정확한 값을 사용하지 않습니다 . 대신 플로트를 사용하고 있기 때문에 근사 / 오류가 발생합니다. 결과는 아마도 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

참고 모든 정점의 부정확가있을 수 있습니다. 위의 예는 균열을 보여 주지만, T- 접합은 가장자리를 따라 오버랩되어 픽셀이 두 번 그려 질 수 있습니다. 나쁘지는 않지만 투명성 또는 스텐실 작업에 문제가 발생할 수 있습니다.

당신은 수있는 다음 부동 소수점으로 그렇게 생각 미미하지만, 렌더러에, 화면 공간 정점 (X, Y) 값이 도입 된 오류가 거의 항상 고정 소수점 숫자로 표현 하고 이상적인 위치 의지에서 변위 있도록 일반적으로 훨씬 큽니다. 또한, 렌더링 하드웨어가 자체 내부 정밀도로 픽셀 단위로 선분을 "보간"함에 따라, E의 둥근 위치로부터 벗어날 가능성이 훨씬 더 크다.

예를 들어 삼각형 ABC를 두 개 (예 : AEC와 EBC)로 나누어 T- 접점이 "제거"되면 오류로 인한 변화가 모두 일관되므로 문제가 사라집니다.

이제 렌더러 (특히 HW)가 정점 XY 좌표에 고정 소수점 수학을 사용하는 이유를 물을 수 있습니다. 왜 문제를 줄이기 위해 부동 소수점을 사용하지 않습니까? 일부 (예 : Sega 's Dreamcast)는 삼각형 설정 수학이 특히 길고 얇은 삼각형의 경우 치명적으로 부정확 해져 불쾌한 방식으로 크기가 변경되는 또 다른 문제를 야기 할 수 있습니다.


2
"정점 (X, Y) 값은 거의 항상 고정 소수점 숫자로 표시됩니다"라고 말하면 래스터 라이저의 화면 공간 정점 좌표를 의미하는 것 같습니다. 원래 모형 공간 정점이 아닙니다.
Nathan Reed

2
@NathanReed 예. 화면 공간 X & Y (일부 GPU에서는 Z)도 있습니다. 더 명확하게하기 위해 편집하겠습니다.
Simon F

9

매개 변수 도메인에서 메시를 사용하여 파라 메트릭 표면을 모델링 할 때 T- 접합이 표면에서 불연속 으로 나타날 수 있습니다. 이들은 렌더링에서 간격으로 표시됩니다. 아래를 참조하십시오.

보다 일반적으로, 삼각형 메시의 T- 접합은 색상 및 법선과 같은 보간 속성의 불연속을 초래할 것입니다.

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오


stackoverflow.com/questions/23530807/… 도 참조하십시오 .
lhf

4

부동 소수점 반올림 오류.

T 접합을 변환하면 T의 점이 모서리에서 둥글게 될 수 있습니다.

그러면 픽셀에 대해 샘플링되는 프래그먼트가 두 표면 사이의 갭에있을 수 있습니다.

이것은 우선 T- 접합이 없어서 고칠 수 있습니다.


3

이를 피하는 간단한 방법은 모든 정점이 용접되도록하는 것입니다.

문제는 정점으로 가장자리를 따라 자르지 만 인접한 가장자리에 해당 정점이 용접 / 연결되어 있지 않다는 것입니다. 셔츠의 버튼처럼 생각하면 버튼을 가장자리에 끼 우되 천에 구멍이 없어서 천을여십시오.

아래 그림에서 빨간색 점은 올바르게 용접 된 정점을 나타내며 파란색 점은 모두 인접한 모서리로 잘라 내기 위해 추가 정점이 필요합니다.

여기에 이미지 설명을 입력하십시오

일반적으로 모델링을 쿼드 및 트라이로 유지하는 것이 좋습니다. 용접 할 때 항상 해당 정점이 있어야하므로이 문제를 완화하는 데 도움이됩니다. 또한 메쉬에서 하위 분할 방법을 사용하려는 경우 쿼드를 유지하는 데 도움이됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.