2016-09-04 2 views
1

일반적인 CAD 소프트웨어를 구현하고 싶기 때문에 다양한 메시의 실루엣을 그리기 위해 가장자리 감지 알고리즘이 필요합니다. 실루엣에는 다양한 개체의 윤곽, 융기 및 주름이 포함됩니다.단일 패스 와이어 프레임 렌더링을 사용한 엣지 감지

enter image description here

내가 와이어 프레임이 개체 및 대각선 같은 내부 라인의 상단에 그려진 기하학적 접근 방식을 사용하려면 다음은 실루엣이 두꺼운 오렌지 라인 구성되어 블렌더에서 만든 큐브의 예입니다 생략됩니다. 와이어 프레임 렌더링은 here으로 설명됩니다. 이 기사에서는 와이어 프레임을 그릴 때 기하 구조 셰이더를 사용합니다. 또한 행을 생략해야하는지 여부를 결정하기 위해 정점 별 속성을 설정해야한다고 설명합니다.

내 질문은 : 생략해야 할 줄을 어떻게 결정할 수 있습니까? OpenGL을 렌더링 API로 사용하고 있습니다.

편집 : 명확히하기 위해, 나는 실루엣을 구성하는 모서리를 그려보고 싶지만 어떤 대각선도 그리지 않습니다. 여기에 내가 무엇을 달성하고자하는의 예입니다

enter image description here

+0

"실루엣에는 다양한 오브젝트의 윤곽, 융기 및 주름이 포함됩니다. *"실루엣이 의미하는 것은 아닙니다 (http://www.dictionary.com/browse/silhouette). –

+1

니콜 볼라스 (Nicol Bolas)가 말한 사실을 고려하면, 나는 당신이 찾고있는 것이 다음과 같다 : 가장자리에 연결된 두 개의 삼각형의 법선이 같지 않으면 가장자리 만 볼 수 있어야한다. 그게 사실이야? 이것은 두 개의 연결된 삼각형 법선이있는 경우 내적을 통해 매우 쉽게 계산할 수 있기 때문입니다. 이제 당신의 discription이 모호해지기 때문에, 라인을 결정할 때 일반적인 차이점에서 퍼지 임계 값을 고려해야 할 수도 있습니다. 즉, 구 및 곡선이 "가장자리가없는"것도 허용 할 수 있습니다. – TWT

+0

가정은 올바른 TWT입니다.기하학 쉐이더에서 삼각형 법선을 비교하는 것이 가능한지 알고 있습니까? 아니면 삼각형을 사전 처리해야하고 동일한 법선 방향을 갖고 결과적으로 렌더링되지 않아야하는 모든 가장자리를 표시해야합니까? – enne87

답변

1

난 당신이

  • 실루엣 모서리, 즉 돌기의 윤곽에 속한 사람들을 강화하려는 즉,
  • 두드러진 모서리, 두 개의 각진 얼굴에 참여하는 사람들을 추론 .

전자는 얼굴의 방향을 관찰하여 결정됩니다. 관찰자가 반구형으로 반대로 바깥쪽에있을 때 얼굴은 "향함"입니다. 실루엣 가장자리는 마주 보는 얼굴과 마주하지 않는 얼굴에 속합니다. 이것은 뷰어 종속 속성입니다.

돌출부는 연결부가 매끄럽지 않은 것으로 간주되는 충분히 큰 각을 형성하는 두면을 결합하는 정도입니다. 각도 임계 값은 사용자가 결정합니다. 뷰어에 독립적 인 속성입니다.

+0

맞습니다. 실루엣 가장자리를 결정하는 방법, 즉 가장자리가 마주 보는 얼굴과 마주하지 않는 얼굴에 속하는지 감지하는 방법을 모르겠습니다. 나는 이것을 google 할 것이다. 고맙습니다! – enne87

+0

@ enne87 외측을 향한 법선으로면의 평면 방정식을 설정하고 관찰자의 좌표를 연결하십시오. 당신이 성공한다면 당신의 대답에 결과를 삽입하는 것이 좋을 것입니다. –

0

이 자유형에게 https://www.blender.org/manual/en/render/freestyle/index.html

프리 스타일은 에지 - 라인 기반의 비 사실적 (NPR) 렌더링> 엔진을 고려하십시오. 메쉬 데이터 및 z 깊이 정보를 사용하여 선택한 모서리 유형에 선을 그립니다. 예술적 ("손으로 그린", "칠한"등) 또는 기술적 인 (단단한) 외모를 만들기 위해 다양한 선 스타일을 추가 할 수 있습니다.

아직 사용하지는 않았지만 3D 모델에서 선 그림을 만들려고합니다. 샘플 사진에서

+0

감사합니다.하지만 어떻게하면 내 가장자리 감지 쉐이더를 구현할 수 있습니까? – enne87