Site Tools


Draw Order Display

Summary: 이 플러그인은 레이어별로 또는/그리고 사용자가 지정한 순서로 개체를 표시하는 새로운 디스플레이 파이프라인을 추가합니다. 아직 프로토타입 단계입니다.

내용

개요

Rhino 4.0 의 초기 릴리스 때부터, 모든 뷰포트에서 OpenGL을 우선적인 디스플레이 파이프라인으로 사용하도록 기본적으로 설정되었습니다. 그러나, Rhino 의 기본 OpenGL 엔진은 커브, 서페이스에서 텍스트, 해치에 이르기까지 모든 것에 깊이 버퍼 방식의 드로잉 (depth-buffered drawing) 을 사용합니다. 이는 즉, 카메라로부터의 거리 (깊이) 를 기준으로 하는, 매우 정확하게 정의된 방식으로 모든 것이 디스플레이되었음을 뜻합니다. 그러므로, 카메라에 멀리 떨어져 있는 개체를 카메라에 더 가까이 있는 개체의 앞에 표시할 수 있는 방법이 없었습니다. 반대의 경우도 마찬가지였습니다.

이제 DrawOrder 플러그인의 프로토타입을 사용하여, 사용자가 원하는 순서로 어디에/어떻게 개체가 디스플레이되는지 지정할 수 있습니다. 기본적으로, 개체는 레이어 순서를 기준으로 디스플레이할 수 있으며, 사용자가 지정한 순서로 특정한 레이어에 개체들을 정렬시킬 수 있습니다.

Rhino 는 항상 레이어별로 개체를 정렬해왔습니다. 그러나, 위에 언급한 깊이 버퍼로 인하여, 화면상에 나타나는 개체의 순서에는 전혀 영향이 없었습니다. 이 플러그인은 이러한 모든 것을 바꿉니다. 이제 개체들은, 레이어 관리자에서 레이어가 표시되는 순서대로 위에서 아래로 나타나게 됩니다. 레이어를 아래로 이동시키면 해당 레이어에 있는 모든 개체가 상위 레이어에 있는 개체들 뒤에 표시됩니다. 마찬가지로, 레이어를 위로 이동시키면 반대의 결과가 나타나게 됩니다.

때때로, 레이어 순서대로 개체를 그리는 것만으로도 충분하지 않아, 개체를 다른 개체의 앞 또는 뒤에 표시되도록 하기 위해 필요 이상의 레이어를 만들게 되는 경우가 있습니다. 이 플러그인은 이러한 문제도 해결하기 위해 만들어졌습니다. 특정한 레이어상에서 개체를 앞, 뒤, 맨앞, 맨뒤로 배열하는 명령이 몇 개 있습니다. 하지만 여기서 기억해두어야 할 것은, 개체를 움직이는 동일한 한 레이어에 존재하는 개체들에만 해당하는 작업이라는 점입니다. 즉, 한 레이어에 있는 개체를 다른 레이어에 있는 개체의 앞 또는 뒤에 표시되도록 설정할 수 없다는 뜻입니다. 특히, 레이어 관리자상에서 상위에 위치한 레이어의 경우는 더욱 그러합니다.

설치 방법

다른 플러그인 설치 방법과 마찬가지로, 다운로드를 클릭하고 설치합니다. (플러그인을 Rhino 상에 마우스로 끌어 놓거나, 플러그인 관리자가 로드하도록 합니다.) 이제 파이프라인 설정이 “Dispaly2D” 인 새로운 표시 모드를 만들거나, 기존의 표시 모드를 변경할 수 있습니다.

예: (플러그인이 설치된 후)

  1. 옵션→ 화면표시→ 고급 설정 (Options→Appearance→Advance Settings) 으로 갑니다.
  2. 와이어프레임 표시 모드를 선택하고, 아래의 복사 단추를 클릭합니다.
  3. 모드를 “순서가 지정된 와이어프레임” 또는 원하는 이름으로 이름을 바꿉니다.
  4. 새 모드의 “기타 설정, Other Settings” (옵션→화면 표시→고급 설정→순서가 지정된 와이어프레임→기타 설정, Options→Appearance→Advance Settings→Ordered Wireframe→Other Settings) 에서 파이프라인 설정을 “Display2D” 로 변경합니다.

이제 설정은 끝났습니다. “순서가 지정된 와이어프레임” 표시 모드를 사용하도록 사용자가 지정한 뷰포트에서는 모든 개체가 레이어의 순서대로 앞에서 뒤로 표시됩니다.

레이어 트리상에서 레이어를 위/아래로 움직이면, 개체의 디스플레이 순서가 바로 바로 변경됩니다.

Note: 모든 음영 모드가 잘 지원되지만, 깊이 테스트는 개체별 기준인 경우에만 해당됩니다. 개체를 올바르게 깊이 버퍼로 디스플레이함과 동시에, 이를 다른 깊이 버퍼 개체의 앞/뒤에 디스플레이할 수 있는 수 있는 방법이 없습니다. 그러나 각각의 3D 개체(즉, 비평면형)는 깊이 버퍼 방식으로 표시될 수 있으므로 올바르게 렌더링이 실행됩니다.

인터페이스

이 플러그인의 인터페이스는 레이어 관리자입니다:

레이어 관리자와 두 개의 제어 (위에서 원으로 표시)를 사용하여 레이어를 위, 아래로 이동시킬 수 있으므로, 개체를 특정한 순서대로 표시할 수 있습니다. 그러나, 앞서 언급한 것처럼 일부 이동에 제한을 가져올 수 있으며, 이러한 경우 다음의 4 가지 명령을 사용할 수 있습니다:

  1. MoveForward
  2. MoveBackward
  3. MoveToFront
  4. MoveToBack

..이러한 명령을 사용하여 동일한 레이어상에서 사용자가 원하는 대로 개체를 배열할 수 있습니다. 단순히, 한 개체를 선택하고 위의 명령 중 하나를 실행하면 그에 따라 개체가 이동할 것입니다. 또한 이러한 명령을 쉽게 찾아볼 수 있는 매우 간단한 도구모음도 있습니다 (다음 그림 참조).

알려진 제한점

  • 블록 개체는 현재 지원되지 않습니다. 현재로서는 어떻게 결정될지 미정입니다.

피드백

ko/labs/draworder.txt · Last modified: 2020/08/14 (external edit)