KR101106391B1 - 투명 렌더링을 위한 시스템 및 방법 - Google Patents

투명 렌더링을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR101106391B1
KR101106391B1 KR1020067011253A KR20067011253A KR101106391B1 KR 101106391 B1 KR101106391 B1 KR 101106391B1 KR 1020067011253 A KR1020067011253 A KR 1020067011253A KR 20067011253 A KR20067011253 A KR 20067011253A KR 101106391 B1 KR101106391 B1 KR 101106391B1
Authority
KR
South Korea
Prior art keywords
shapes
node
triangles
tree
component
Prior art date
Application number
KR1020067011253A
Other languages
English (en)
Other versions
KR20060118535A (ko
Inventor
지안빙 후앙
마이클 비. 카터
Original Assignee
지멘스 프로덕트 라이프사이클 매니지먼트 소프트웨어 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 지멘스 프로덕트 라이프사이클 매니지먼트 소프트웨어 인크. filed Critical 지멘스 프로덕트 라이프사이클 매니지먼트 소프트웨어 인크.
Publication of KR20060118535A publication Critical patent/KR20060118535A/ko
Application granted granted Critical
Publication of KR101106391B1 publication Critical patent/KR101106391B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Optical Recording Or Reproduction (AREA)

Abstract

시각화 API로부터 원시 다각형 기하형상 및 뷰 파라미터들을 받아들이고, 다각형들을 뒤에서 앞으로의 순서로 소팅한 다음, 소팅된 삼각형들을 OpenGL과 같은 그래픽 API에 공급하는 시스템, 방법 및 컴퓨터 프로그램 제품이 개시되어 있다.
그래픽 처리, 투명 렌더링, 바이너리 공간 분할 트리, 폐색 테스트, 소팅

Description

투명 렌더링을 위한 시스템 및 방법{SYSTEM AND METHOD FOR TRANSPARENCY RENDERING}
본 발명은 일반적으로 그래픽 처리에 관한 것이다.
여러 산업 분야, 예컨대 항공 우주 및 자동차 산업 분야에서, 제조업체들이 초기 단계에서 설계 문제점들을 파악하기 위하여 제품 설계를 쌍방향으로 보고 검사하는 시각화 기술(visualization technology)에 의지하는 경우가 점점 증가하는 추세이다. 전체 제품 구조를 보고 그것의 하부구조들(subsystems) 각각을 편리하게 검사하는 능력은 시각화 시스템에서 필수적이라 생각된다. 따라서, 선택된 일부의 부품들을 투명한 것처럼 렌더링함으로써, 그렇게 하지 않을 경우 폐색되어 있는 그 설계 세목들을 드러내 보일 수 있는 것은 바람직하다. 또한, 일부 부품들은 유리와 같은 투명 재료로 만들어질 수 있고, 그것들을 투명하게 렌더링하는 것은 장면의 사실성을 상당히 증대시킬 수 있다. 따라서, 쌍방향 프레임 레이트(interactive frame rate)로 사실적인 객체 투명성을 제공하는 것이 효과적인 시각화를 위해 중요하다.
최신 그래픽 시스템에서는 "알파 블렌딩(alpha blending)"이라고 불리는 프로세스에 의해 투명 렌더링이 실현된다. 정확한 투명성을 위하여, 단일 화소를 구 성하는 모든 다각형들의 컬러가 뒤에서 앞으로의 순서로(in back-to-front order) "혼합(blend)"된다. 각 프레임마다 소팅(sorting)을 정확히 행할 필요가 있기 때문에, 큰 모델의 쌍방향 투명 렌더링은 도전적인 과제가 되었다.
이전에 제안된 삼각형 소팅 방법은 2개의 타입으로 분류될 수 있다. 하나는 이미지 기반의 것이고, 다른 하나는 객체 기반의 것이다. 이미지 공간 기반 방법들은 특수한 그래픽 하드웨어의 이용 가능성을 필요로 한다. 이 방법들에서는, 투명 다각형들이 뒤에서 앞으로의 순서로 깊이를 따라 한 층씩 렌더링된다. 각 층의 렌더링은 별도의 렌더링 패스(rendering pass)를 필요로 하고, 필요한 패스의 수는 장면의 최대 깊이이다. 상이한 패스들로부터의 각 화소 컬러를 혼합하기 위해 부가적인 메모리 버퍼들이 요구된다. 객체 공간 기반 방법은 모든 다각형들을 현재의 뷰 방향에 대하여 소팅한다. 이 소팅된 다각형들은 렌더링을 위하여 뒤에서 앞으로의 순서로 그래픽 파이프라인에 공급된다. 이런 부류의 방법들 대부분은 하드웨어 z-버퍼가 이용 가능하기 전에 가시도 문제를 해결하기 위해 제안되었다. 이 방법들 각각은 그것이 큰 투명 모델들을 렌더링하는 데 효과적으로 이용되지 못하게 하는 심각한 한계들을 갖고 있다. 예를 들면, 깊이 소팅 방법(depth sort method)은 계산상의 복잡도 O(N2)를 갖고 있고, 바이너리 공간 분할(BSP: binary space partition) 소팅 방법은 큰 트리 구조의 메모리 유지 및 값비싼 구성을 필요로 한다. 큰 투명 모델들을 쌍방향 레이트로 렌더링하는 것을 가능하게 하는 새로운 방법들이 요구된다.
BSP 트리 구성에 대한 이전의 연구는 단 하나의 팩터, 즉 최종 BSP 트리 상의 삼각형의 수를 최소화하는 것에 초점을 맞추었고, 실제로는 동등하게 중요한 다른 팩터들은 고려하지 않았다. 이 다른 팩터들은 BSP 트리를 구성하는 데 필요한 시간과 BSP 트리 내의 삼각형들을 소팅하기 위한 기대 시간을 포함한다. 상이한 팩터들에 의해 부과되는 상이한 요건들을 만족시키면서 BSP 트리를 효율적인 방식으로 구성하는 것은, 비록 도전적이기는 하지만, 이 방법을 더욱 실용화하기 위해 중요하다.
깊이 소팅에 대한 이전의 연구는 폐색 테스트 알고리즘(occlusion test algorithm)을 이용하고, 이 알고리즘은 한 쌍의 삼각형 간의 정확한 폐색 관계를 제공하지 못한다. 그 결과, 2개의 삼각형이 이미 정확한 순서이더라도, 뷰에 따른 삼각형 분리가 일어날 수 있다. 더욱 양호한 깊이 소팅 결과를 위하여, 그러한 불필요한 삼각형 분리를 피하기 위한 더욱 정교한 폐색 테스트 알고리즘이 요구된다.
따라서, 개선된 투명 렌더링을 위한 시스템, 방법 및 컴퓨터 프로그램 제품이 당업계에서 요구되고 있다.
<발명의 개요>
바람직한 실시예는 시각화 API로부터 원시 다각형 기하형상 및 뷰 파라미터들을 받아들이고, 상기 다각형들을 뒤에서 앞으로의 순서로 소팅한 다음, 소팅된 삼각형들을 OpenGL과 같은 그래픽 API에 공급하는 시스템, 방법 및 컴퓨터 프로그램 제품을 제공한다.
위에서는 숙련된 당업자가 이항의 발명의 상세한 설명을 더 잘 이해할 수 있 도록 본 발명의 특징 및 기술적 이점들을 다소 넓게 개략적으로 설명하였다. 이하에서는 본 발명의 청구항들의 요지를 형성하는 본 발명의 추가적인 특징 및 이점들을 설명한다. 숙련된 당업자는 개시되어 있는 개념 및 특정 실시예를 본 발명의 동일 목적을 성취하기 위한 다른 구조들을 수정하거나 설계하기 위한 기초로서 쉽게 이용할 수 있다는 것을 알 것이다. 또한, 숙련된 당업자는 그러한 균등한 구성들이 가장 넓은 형태의 본 발명의 사상 및 범위를 벗어나지 않는다는 것을 알 것이다.
아래에서 발명의 상세한 설명에 앞서, 이 특허 문헌의 전반에 걸쳐서 사용되는 특정 어휘 또는 구문에 대한 정의를 제시하는 것이 유리할 것이다: 용어 "포함하다(include)" 및 "포함하다(comprise)"는 물론, 그것의 파생어들은 제한이 없는 포함을 의미하고; 용어 "또는(or)"은 포괄적인 의미이고 및/또는; 구문 "...와 관련된(associated with)" 및 "그와 관련된(associated therewith)"은 물론, 그것의 파생 구문들은 포함하다, 안에 포함되다, ...와 상호접속하다, 내포하다, 안에 내포되다, ...에 또는 ...와 접속하다, ...에 또는 ...와 결합하다, ...와 통신하다, ...와 협력하다, 삽입하다(interleave), 병렬하다(juxtapose), ...에 인접하다, ...에 또는 ...와 결합되다(be bound to or with), 갖다, ...의 속성을 갖다, 등을 의미할 수 있고; 용어 "컨트롤러"는 적어도 하나의 동작을 제어하는 디바이스, 시스템 또는 그것의 일부을 의미하고, 그러한 장치는 하드웨어, 펌웨어, 소프트웨어 또는 그것들 중 적어도 2개의 소정의 조합으로 구현된다. 특정 컨트롤러와 관련된 기능은 집중되거나 또는 국부적으로든 원격적으로든 분산될 수 있다. 특정 어휘 및 구문에 대한 정의가 이 특허 문헌의 전반에 걸쳐서 제공되고, 통상의 기술을 가진 당업자는 그러한 정의들이 대부분은 아니라도 다수의 사례들에서 종래는 물론 미래의 그러한 정의된 어휘 및 구문의 사용에도 적용된다는 것을 이해할 것이다.
본 발명의 완전한 이해 및 그 이점들의 이해를 위하여, 첨부 도면들과 관련하여 다음에 오는 설명을 참조하는데, 첨부 도면들에서 유사한 번호는 유사한 대상을 가리킨다.
도 1은 각종 실시예들이 구현될 수 있는 데이터 처리 시스템의 블록도를 도시한다.
도 2는 본 발명의 실시예에 따른 하이레벨 도면을 도시한다.
도 3은 BSP 트리 구성 알고리즘의 개략을 도시한다.
도 4A 및 4B는 균형이 잡힌 트리 분할과 균형이 잡히지 않은 트리 분할을 각각 도시한다.
도 5는 32비트 정수로서 평면 인덱스의 예시적인 레이아웃을 도시한다.
도 6은 추출된 계층적 그룹들의 예를 도시한다.
도 7은 연쇄 폐색 관계를 나타낸다.
도 8A∼8C는 삼각형의 폐색 영역을 3개의 상이한 형태로 나타낸다.
도 9는 삼각형과 영역의 경계 간의 교차를 나타낸다.
도 10은 바람직한 실시예에 따른 프로세스의 흐름도를 도시한다.
도 11은 바람직한 실시예에 따른 또 다른 프로세스의 흐름도를 도시한다.
아래에서 논의되는 도 1 내지 11, 및 이 특허 문헌에서 본 발명의 원리들을 설명하기 위해 이용되는 각종 실시예들은 예시를 위한 것일 뿐, 어떤 식으로든 발명의 범위를 제한하는 것으로 해석되어서는 안 된다. 숙련된 당업자는 본 발명의 원리들이 적당하게 구성된 디바이스에서 구현될 수 있다는 것을 이해할 것이다. 이제, 바람직한 실시예를 특별히 참조하여 본 출원의 다수의 혁신적인 개시 내용들을 설명하기로 한다.
바람직한 실시예는 시각화 API로부터 원시 다각형 기하형상(raw polygon geometry) 및 뷰 파라미터들(view parameters)을 받아들이고, 상기 다각형들을 뒤에서 앞으로의 순서로 소팅한 다음, 소팅된 삼각형들을 OpenGL과 같은 그래픽 API에 공급하는 시스템, 방법 및 컴퓨터 프로그램 제품을 제공한다.
본 명세서에서는 특히 삼각형이 논의되지만, 숙련된 당업자는 개시된 실시예들이 일반적인 평면 형상, 예컨대 볼록 또는 오목 다각형, 단순 또는 복잡하거나, 또는 심지어 만곡되거나 절차적으로 정의된 형상들과 함께 사용될 수 있고, 다만 그 형상들을 분할 평면(partition plane)에 의해 절단했을 때 2개 이상의 형상으로 분할하는 방법이 존재하기만 하면 된다는 것을 알 것이다.
도 1은 바람직한 실시예가 구현될 수 있는 데이터 처리 시스템의 블록도를 도시한다. 도시된 데이터 처리 시스템은 레벨 2 캐시/브리지(104)에 접속된 프로세서(102)를 포함하고, 레벨 2 캐시/브리지(104)는 로컬 시스템 버스(106)에 접속되어 있다. 로컬 시스템 버스(106)는, 예를 들면 PCI(peripheral component interconnect) 아키텍처 버스일 수 있다. 도시된 예에서 로컬 시스템 버스에는 또한 메인 메모리(108) 및 그래픽 어댑터(110)가 접속되어 있다.
근거리 통신망(LAN)/광역 통신망(WAN)/무선(예컨대, WiFi) 어댑터(112)와 같은 다른 주변 장치들도 로컬 시스템 버스(106)에 접속되어 있다. 확장 버스 인터페이스(114)가 로컬 시스템 버스(106)를 입출력(I/O) 버스(116)에 접속시킨다. I/O 버스(116)는 키보드/마우스 어댑터(118), 디스크 컨트롤러(120), 및 I/O 어댑터(122)에 접속되어 있다.
도시된 예에서 I/O 버스(116)에는 또한 오디오 어댑터(124)가 접속되어 있고, 그것에는 음을 내기 위한 스피커(도시되지 않음)가 접속될 수 있다. 키보드/마우스 어댑터(118)는 마우스, 트랙볼, 트랙포인트 등과 같은 포인팅 디바이스(도시되지 않음)에 대한 접속을 제공한다.
통상의 기술을 가진 당업자는 도 1에 도시된 하드웨어가 변할 수 있다는 것을 알 것이다. 예를 들면, 광 디스크 드라이브와 같은 다른 주변 디바이스가 도시된 하드웨어에 더하여 또는 대신하여 사용될 수도 있다. 도시된 예는 설명을 목적으로 제공된 것일 뿐, 본 발명에 대하여 구조적 제한을 시사하기 위해 의도된 것은 아니다.
본 발명의 바람직한 실시예에 따른 데이터 처리 시스템은 그래픽 사용자 인터페이스를 이용한 오퍼레이팅 시스템을 포함한다. 이 오퍼레이팅 시스템은 그래픽 사용자 인터페이스 내에 다수의 표시 윈도가 동시에 프리젠테이션되도록 허용하고, 각 표시 윈도는 상이한 애플리케이션에의 인터페이스 또는 동일 애플리케이션의 상이한 인스턴스(instance)에의 인터페이스를 제공한다. 그래픽 사용자 인터페이스 내의 커서는 사용자에 의해 포인팅 디바이스를 통하여 조작될 수 있다. 커서의 위치는 변경될 수 있고 및/또는 마우스 버튼을 클릭하는 등의 이벤트가 생성되어 원하는 응답을 작동시킨다.
워싱턴주 레드먼드시에 있는 마이크로소프트사의 제품인 마이크로소프트 윈도즈(Microsoft WindowsTM) 버전과 같은, 각종 상용 오퍼레이팅 시스템 중의 하나가 적당히 수정되면 이용될 수 있다. 오퍼레이팅 시스템은 설명된 바와 같이 본 발명에 따라서 수정되거나 작성될 수 있다.
바람직한 실시예들은 투명 렌더링에서의 현존하는 문제점들을 다룬다. 개시된 시스템, 방법 및 컴퓨터 프로그램 제품은, 도 2의 하이레벨 구조도에 도시된 바와 같이, 시각화 API와 그래픽 API 사이에서 작용한다.
시스템은 시각화 API로부터 원시 다각형 기하형상 및 뷰 파라미터들을 받아들이고, 상기 다각형들을 바람직하게는 실질적으로 뒤에서 앞으로의 순서로 소팅한 다음, 소팅된 삼각형들을 OpenGL과 같은 그래픽 API에 공급한다. 개시된 시스템은 2개의 종래 소팅 방법을 새로운 방식으로 통합하여 양자 모두의 장점을 이용하고, 새로운 캐싱 전략과 함께 중요 알고리즘에 실질적인 개선을 가능하게 하며, 전처리 시간, 렌더링 속도, 렌더링 품질 및 메모리 소비와 같은 다수의 팩터들에 대한 다양한 트레이드오프(tradeoff)를 성취하도록 상당한 융통성을 제공함으로써 시스템 실용성을 개선시킨다. 개시된 시스템은 통상적으로 이용 가능한 그래픽 하드웨어상에서 거의 아티팩트 없이 쌍방향 프레임 레이트에서 수십만 개에 이르는 다각형을 갖는 큰 모델들을 렌더링할 수 있는 것으로 밝혀졌다.
BSP 소팅 방법의 특징들은 깊이 소팅 방법의 특징들을 보완한다. BSP 소팅 방법은 거대한 트리 구조를 메모리에 유지함으로써 O(N) 복잡도를 성취한다. 깊이 소팅 방법은 메모리 부하를 조금밖에 필요로 하지 않지만, 매우 바람직하지 않은 O(N2) 복잡도가 있다. 본 명세서에 개시된 삼각형 소팅 알고리즘은 이들 2개의 방법을 통합하여 양자 모두의 장점들을 이용한다. 구체적으로, 적어도 일부 실시예들에서는, (종래의 실시예에서와 같이 단일 삼각형 리프 노드들을 갖는 BSP 트리와는 대조적으로) 다중 삼각형 리프 노드들을 갖는 BSP 트리가 구성되고, BSP 트리를 횡단하고, 그것이 횡단되는 동안 각 리프 노드 상의 삼각형들을 깊이 소팅함으로써 삼각형들이 소팅된다.
단일 리프 노드상에 허용되는 삼각형들의 최대 개수 β를 특정함으로써, 개시된 알고리즘의 행태를 이들 2개의 방법 간에 쉽게 조절하여, 렌더링 속도와 메모리 소비 간에 원하는 트레이드오프를 성취할 수 있다. 예를 들면, 개시된 알고리즘은 β가 1로 선택될 경우 종래의 BSP 소팅 알고리즘으로 퇴화하고, β가 삼각형들의 총수인 N으로 선택될 경우 종래의 깊이 소팅 방법으로 퇴화한다. β가 2와 N-1 사이의 값으로 선택될 경우, 우리의 알고리즘의 행태도 이들 2개의 종래의 방법들 사이에 있다: β가 증가함에 따라서 소팅 속도는 떨어지지만 메모리 트리 사이즈는 감소한다. 더욱이, 바람직한 실시예는 깊이 소팅 알고리즘에 대해 2개의 상이한 모드들을 제공하여 렌더링 속도와 렌더 품질 간에 추가적인 융통성을 제공한다. 고급 모드는 보장된 정확한 렌더링 결과를 제공하는 반면, 기본 모드는 가능한 아티팩트로 더욱 양호한 렌더링 속도를 제공한다.
BSP 구성 알고리즘을 개선하기 위한 각종 기법들이 개시되어 있다. 일부 실시예들에서는, 실제 응용을 위해 중요한 다수의 팩터들에 관하여 후보 분할 평면의 품질을 평가하기 위한 새로운 기준이 이용되고, 양호한 분할 평면들의 빠른 선택을 용이하게 하는 형상 지식 정보를 효율적으로 추출하기 위한 새로운 방법이 이용된다. 실험 결과를 통하여, 발전된 BSP 구성 알고리즘은 1.2GHz 프로세서를 가진 PC상에서 약 1초로 20,000개 삼각형에 대한 고품질 BSP 트리를 생성할 수 있는 것으로 밝혀졌다.
공지된 깊이 소팅 알고리즘은 여기에서 한 쌍의 삼각형들 간의 정확한 폐색 관계를 식별하기 위하여, 복잡하고 정교하지만 계산상으로 효율적인 폐색 테스트 알고리즘을 개발함으로써 개선된다. 이렇게 하여, 불필요한 삼각형 분할이 제거될 수 있다.
또한, 뷰 방향들의 이산적인 세트에 대한 소팅된 기하형상을 캐싱하는 뷰 캐싱 알고리즘이 개시되어 있다. 이들 캐싱된 삼각형 시퀀스들에 의하면, 현재의 뷰 방향의 실제 삼각형 시퀀스를 캐싱된 가장 가까운 기준 방향의 삼각형 시퀀스와 근사화시킴으로써 투명 렌더링의 속도를 증진시킬 수 있다.
전처리 단계로서 BSP 트리의 구성은 제1 프레임의 대기시간(latency)을 최소화하기 위해 가능한 한 효율적이어야 한다. 그와 동시에, BSP 트리는 가능한 한 최적이어야 하는데, 그것은 일단 구성되면 그 후의 모든 프레임을 렌더링하는 데 이용될 것이기 때문이다. 이 분야에서의 이전의 연구는 단 하나의 기준, 즉 최종 BSP 트리상의 삼각형들의 수를 최소화하는 것에 초점을 맞추었다.
바람직한 실시예는 분할 평가를 위한 새로운 기준과 최선의 분할 평면을 효율적으로 선택하기 위한 새로운 지식 구동 알고리즘으로 이루어지는 BSP 트리 구성 알고리즘을 이용한다. 새로운 기준은 각 프레임 내의 삼각형들을 소팅하는 기대 시간과 BSP 트리를 구성하는 시간 양자 모두를 단축시키기 위한 필요 조건들을 수용하도록 도출된다.
동일 리프 노드상의 삼각형들을 소팅하는 데 이용되는 깊이 소팅 알고리즘은 상이한 레벨의 폐색 테스트를 이용하는 2개의 상이한 모드들에서 동작할 수 있다. 기본 소팅 모드는 그 삼각형들을 뷰 좌표계에서의 그들의 최대 z 좌표에 기초하여 소팅한다. 고급 소팅 모드는, 주기적인 폐색 관계가 존재하지 않는 조건으로, 삼각형들을 분할하지 않고 정확한 결과를 보장하는 더욱 복잡하고 정교한 폐색 테스트를 수행한다.
도 2는 개시된 투명 렌더링 소프트웨어 시스템의 실시예에 대한 개략을 도시한다. 시스템에의 입력 정보는 시각화 API로부터 공급된 현재의 뷰 방향 및 투명 노드이다. 출력 정보는 렌더링을 위해 그래픽 파이프라인에 공급되는 뒤에서 앞으로 소팅된 삼각형들이다. 투명 노드는 렌더링될 모든 투명 삼각형들을 내포하는 데이터 구조이고, 장면 그래프 내의 하나 이상의 부분들에 대응할 수 있다. 입력 기하형상으로부터, BSP 트리가 아직 존재하지 않을 경우, 제1 프레임의 초기에 먼저 BSP 트리가 구성된다. BSP 트리는 일단 구성되면 투명 노드상에 캐싱되어 후속 프레임들에서 사용된다. 이제, BSP 트리 내에 조직된 투명 삼각형들은 삼각형 소팅 모듈에 의해 현재의 뷰 방향에 대하여 소팅된다. 노멀(normal) 및 컬러 정보를 포함하는 소팅된 삼각형들은 렌더링을 위해 그래픽 API(예를 들면 OpenGL)에 공급된다. 뷰 캐싱 모듈은 선택 사양이고, 만일 인에이블된다면, 뷰 방향과 함께 소팅된 삼각형들은 투명 노드상에 캐싱될 것이다. 나중에, 가까운 뷰 방향에 대한 렌더링이 요구될 경우, 삼각형 소팅이 필요 없이 렌더링을 위해 이 캐싱된 삼각형 데이터가 직접 검색될 수 있다.
바이너리 공간 분할(BSP) 트리: 다수의 입력 객체들을 처리하는 반복적으로 이용되는 프로세스에 대하여, 그것의 효율을 향상시키는 한 가지 중요한 방법은 이들 객체 사이에서 일관된 구조를 구성하고 유지하는 것이다. 예를 들면, 기하학적 문제에 대해 흔히 이용되는 전략은 "분할 및 정복(divide and conquer)"을 반복적으로 이용하여 대규모의 문제를 더 쉽고 더 효율적으로 다룰 수 있는 다수의 소규모 문제로 분할하는 것이다. BSP 트리는 하나의 그러한 구조로서, 이 구조에서는 각 노드가 3차원 공간 영역 내에 위치하는 엘리먼트들의 세트를 나타낸다. 모든 엘리먼트를 내포하는 루트 노드에서 시작하여, 분할 평면을 이용하여 전체 기하학 공간(Euclidean space)을 겹치지 않는 2개의 영역으로 분할한다. 분할 평면에 의해 절단된 이들 엘리먼트들은 2 이상의 엘리먼트들로 분할될 것이다. 각 영역 내의 엘리먼트들에 대하여 BSP 트리의 새로운 리프 노드가 되는 자식 노드가 생성된다. 이러한 분할은 몇몇 기설정된 조건들이 만족될 때까지 각 리프 노드마다 반복적으로 계속된다.
BSP 트리 구조는 삼각형 소팅의 목적으로 특히 유용한데, 그 이유는 선형 분할 평면에 의해 각 BSP 노드의 2개의 자식이 분리되고, 따라서 뷰 포인트로부터 더 멀리 떨어진 자식은 다른 자식을 폐색할 수 없기 때문이다. BSP 트리에 구축된 이 암시적 가시도 순서(implicit visibility order)를 이용함으로써, 트리 횡단에 의해 그것의 모든 노드들의 가시도 소팅이 간단히 달성될 수 있다. BSP 트리는 장면 기하형상을 특징화하고, 뷰 방향에 관계없기 때문에, 장면 내용이 변하지 않는 한 서로 다른 뷰 방향들에 대해 정확한 가시도 순서를 얻기 위하여 동일한 BSP 트리가 이용될 수 있다. 이것은 정적 기하형상을 가진 시각화 응용에 특히 유용하다.
바람직한 실시예의 BSP 구성 알고리즘은 과도한 구성 시간을 부과하지 않고 삼각형 소팅을 최선으로 용이하게 하는 BSP 트리를 생성한다. BSP 트리 구성에 영향을 미치는 유일한 결정적 변수는 분할될 각 리프 노드에서의 분할 평면의 선택이다. 따라서, 후보 분할 평면을 평가하기 위해 무슨 기준이 이용되어야 하는지 및 어떤 방법으로 최선의 분할 평면이 효율적으로 선택될 수 있는지가 중요한 이슈들이다. 첫 번째 이슈는 트리 구성 시간 및 최종 트리 품질과 같은 다수의 팩터들을 고려하는 기준을 선택함으로써 다루어지고, 두 번째 이슈는 최선의 후보를 신속히 식별하기 위해 추출된 형상 지식을 이용함으로써 다루어진다. 다음의 설명은 특히 삼각형 엘리먼트들에 관한 것이지만, 숙련된 당업자는 개시된 프로세스가 일반적인 평면 다각형들에 쉽게 확대될 수 있다는 것을 알 것이다.
도 3은 진보된 BSP 트리 구성 알고리즘의 개략을 도시한다. 이 알고리즘은 3개의 단계: 전처리 단계, 분할 평면 선택 단계 및 노드 구성 단계로 이루어진다. 전처리 단계는 한 번만 호출되고, 2개의 후속 단계들은 분할될 각 BSP 노드마다 반복하여 호출된다. 삼각형들의 노멀 및 위치 정보를 분석함으로써, 전처리 단계는 후보 분할 평면들을 더 효율적으로 선택하기 위해 이용되는 형상 지식을 추출한다. 그것은 또한 모든 입력 삼각형들을 내포하는 루트 노드를 생성하고, 그것을 유지하도록 BSP 노드 리스트를 초기화한다. 노드 리스트는 분할될 모든 리프 노드들을 유지하는 큐(queue) 타입 구조이고, 이 리스트가 비게 될 경우 그 반복적인 구성 프로세스가 끝난다. 분할 평면 선택 메커니즘은 가설 및 테스트의 방법에 기초하는데, 즉, 다수의 후보 평면들을 선택하고 평가하여 어느 것이 최선의 결과를 줄 것 같은지를 결정한다. 노드 구성 단계에서는, 선택된 분할 평면에 대하여 각 삼각형을 분류하고 그것이 분할 평면과 교차하면 분할한다. 그 후, 현재의 BSP 노드에 대하여 하나 또는 2개의 자식 노드들을 생성한다. 기설정된 기준에 따라 더욱 세분이 필요하다면, 각각의 새로이 생성된 자식 노드들을 노드 리스트에 추가한다.
BSP 트리 구성 알고리즘을 위한 하나의 이슈는 삼각형들의 세트를 내포하는 주어진 BSP 노드에 대하여 서로 다른 분할 평면들을 비교하기 위해 어떤 기준이 이용되어야 하는가이다. 바람직한 실시예에 따르면, 트리 구성 시간 및 구성된 BSP 트리의 품질에 관한 수 개의 목표를 반영하는, w로 표시된, 기준으로 분할 평면을 평가한다. 이 기준은 최대 w 값을 갖는 분할 평면이 더욱 짧은 트리 구성 시간 및 더욱 양호한 BSP 트리의 결과를 초래하는 최선의 가능성을 가져야 하는 식으로 지정된다.
표 1은 후보 분할 평면 P를 특징화하기 위해 이용되는 파라미터들을 보여준다:
no P상의 삼각형의 수
nc P와 교차하는 삼각형의 수
nF P의 양의 측면의 삼각형의 수
nB P의 음의 측면의 삼각형의 수
삼각형들의 세트를 내포하는 리프 노드 L 및 후보 분할 평면 P가 주어지면, P의 품질을 특징화하기 위해 표 1에 나타낸 것과 같은 4개의 파라미터들이 이용된다. 파라미터 nc는 기준 w에 부정적인 영향을 미치는 것이 명백한데, 그 삼각형들을 2 이상의 삼각형으로 분할하여, 그 각각이 평면 P의 양의 측면 또는 음의 측면에 위치하도록 해야 하기 때문이다. 일반적으로 삼각형 분할은 더욱 큰 트리 사이즈 및 더욱 긴 트리 구성 시간의 결과를 초래한다. 더욱이, BSP 트리상의 삼각형들의 수가 증가하면, 삼각형 소팅의 속도도 저하된다. P상의 삼각형들은 동일 평면상에 있기 때문에 임의의 순서를 가질 수 있고, 노드 L의 앞의 자식 및 뒤의 자식에 대하여 전체로서 그들의 순서는 쉽게 얻어질 수 있다. 이들 삼각형에 대한 소팅 비용은 제로이고, 파라미터 no는 명백히 기준 w에 긍정적인 영향을 미친다.
기준 w에 대한 nF 및 nB의 영향은 훨씬 덜 명백하다. 트리 균형, 즉 nF와 nB 간의 차이의 절대값은 BSP 트리상의 모든 삼각형들을 소팅하는 목적을 위해 중요하지 않다. 그러나 트리 균형은 트리 구성 시간에 상당한 영향을 미친다는 것이 밝혀졌는데, 트리가 더욱 불균형하게 될 때 구성 파이프라인을 통과하는 삼각형들의 수가 증가하기 때문이다. 이것은 도 4A 및 4B에 도시된 2개의 극단적인 케이스에 대한 분석 및 그들 간의 비교에 의해 가장 잘 드러날 수 있다. 도 4A는 극도로 균형이 잡힌 트리 분할을 도시하고, 도 4B는 극도로 균형이 잡히지 않은 트리 분할을 도시한다.
설명의 편의를 위하여, 입력 삼각형들의 수는 N=2k이고, 구성 중에는 삼각형 분할이 일어나지 않고, 각 리프 노드는 정확히 하나의 삼각형을 내포하는 것으로 가정한다. 도 4A에 도시된 균형이 잡힌 분할에 대하여, BSP 트리 구성 파이프라인에 의해 처리될 필요가 있는 삼각형의 총수는 Ta = k2k인 반면, 도 4B에 도시된 균형이 잡히지 않은 분할에 대하여 그 수는 Tb = 22k-1+2k-1-1이다. 이들 2개의 수 간의 비율
Figure 112006040250955-pct00001
은 N에 따라 증가한다는 것을 알 수 있다. 이 분석은 이상적이고 극단적인 케이스들에 기초한 것이지만, 모든 분할의 균형이 트리 구성 시간에 상당히 영향을 미친다는 동일한 결론은 더욱 일반적인 케이스에 대해서도 성립한다.
상기 분석을 기초로 하여, 바람직한 실시예는 분할 평면 평가를 위하여 다음의 기준을 이용한다:
w = no - Kcnc - abs(nF-nB)
여기서 Kc는 삼각형 분할의 중요도(significance)를 나타내는 상수 값이고, 기호 abs는 절대값 연산을 나타낸다. 일반적으로 Kc의 값은 삼각형 분할이 현재 노드 분할 동작을 더디게 할 뿐만 아니라, 최종 트리 사이즈를 증가시키고, 더욱이 더 많은 삼각형을 다루어야 하기 때문에 트리 구성을 더디게 한다는 사실을 나타내기 위해 1보다 크도록 선택된다.
BSP 트리 구성 파이프라인으로부터, 우측 분할 평면을 선택하는 것은 구성 시간 및 최종 BSP 트리의 사이즈 양자 모두에 영향을 미치는 이슈라는 것을 알 수 있다. 수학식 1에 표현된 평가 기준은, 분할 평면의 선택 시, 더욱 많은 수의 삼각형이 그 위에 있고, 그것에 의해 더욱 적은 수의 삼각형들이 절단되고, 그 분할 평면의 각 측면의 삼각형들이 가능한 한 균형이 잡히도록 분할 평면이 선택되어야 한다는 것을 시사한다. 바람직한 실시예는, 입력 삼각형들을, 전처리 단계에서 각각이 소정의 특징 또는 배향 패턴 정보를 전달하는 일관된 계층적 그룹들로 조직한다. 그렇게 조직된 삼각형들은, 그 후 고품질의 후보 분할 평면들을 신속히 식별하기 위해 사용된다.
도 5는 32비트 정수로서 평면 인덱스(plane index)의 예시적인 레이아웃을 도시한다. 도 6은 추출된 계층적 그룹들의 예를 도시한다.
계층적 그룹 추출 프로세스는 매우 효율적이어야 하는데, 그것은 양호한 후보 분할 평면들의 검색을 촉진하는 데 이용되기 때문이다. 필요한 효율성을 달성 하기 위해 이용되는 한 가지 방법은, 처리되어야 하는 정보를 최소화하기 위하여 삼각형 정보를 가능한 한 콤팩트하게 표현하는 것이다. 평면이 3차원 법선 벡터 및 그 방향을 따른 스칼라 거리로서 콤팩트하게 표현될 수 있다는 것은 잘 알려져 있다. 법선 벡터를 정수로서 콤팩트하게 인코드하기 위해 하나의 대안적인 방법이 이용되었다. 그 방법은 단위 구체(unit sphere)를 이용한 것으로, 단위 구체상에 매핑된 각 법선 벡터가 0에서 7까지의 값을 가진 8분 인덱스(octant index), 0에서 5까지의 값을 가진 6분 인덱스(sextant index), 및 각각 0에서 π/4 라디안 및 0에서
Figure 112006040250955-pct00002
라디안까지의 2개의 각도로 표현될 수 있다.
바람직한 실시예들에서, 각 삼각형의 지지 평면(support plane)의 법선 벡터 및 스칼라 거리 양자 모두는 평면 인덱스라고 부르는 단일의 부호를 가진 정수로 인코드될 수 있다. 평면 인덱스는 8분 및 6분 인덱스 각각을 정확히 인코드하기 위한 3 비트, 2개의 각도 값 각각을 양자화하고 인코드하기 위한 n 비트, 및 거리 값을 양자화하고 인코드하기 위한 25-2*n 비트로 구성되고, 여기서 n은 조정 가능하다. n=3에 대한 평면 인덱스의 레이아웃이 도 5에 도시되어 있고, 여기서 최상위 비트는 부호용으로 예비되고, 다음 6 비트는 8분 및 6분 값들을 위한 것이고, 다음 19 비트는 양자화된 거리 값을 위한 것이고, 마지막 6 비트는 2개의 양자화된 각도 값을 위한 것이다.
3개의 그룹, 즉 영역(region), 층(layer) 및 평면(plane)이 추출될 것이고, 그들 간의 계층적 관계가 도 6에 예시되어 있다. 추출 프로세스는 모든 삼각형들 을 그들의 평면 인덱스에 대하여 (보편성의 손실 없이 내림차순으로) 스피드 리스트 S로 소팅하는 것으로 시작한다. 그 후, 동일한 8분 및 6분 값들을 갖는 S 내의 삼각형들의 인접하는 리스트를 각각 내포하는 영역 그룹들이 리스트 S로부터 추출된다. 8분 및 6분 값들의 정의로부터, 기껏해야 48개의 영역들이 존재하고 동일 영역 내의 모든 삼각형들은 대략 동일한 배향을 갖는다. 도 5로부터 알 수 있듯이, 각 영역 내에서 삼각형들은 그들의 거리에 의해 소팅된다. 동일한 거리를 갖는 삼각형들은 층을 형성하고, 동일 영역 내의 층들은 그들의 거리에 의해 내림차순으로 소팅된다. 각 층 내에서, 동일한 양자화된 각도 값을 갖는, 따라서 거의 동일한 배향을 갖는 삼각형들은 평면으로 그룹화된다. 각 평면은 하나 이상의 삼각형 엘리먼트들로 이루어진다.
분할 평면 선택의 기본 전략은 "가설 및 테스트(hypothesis and test)"이고, 이것은 선택된 후보 평면들의 세트를 비교하여 최고의 품질을 가진 것을 선택한다. 바람직한 실시예들에 따르면, 추출된 형상 지식은 수학식 1에 의해 평가될 때 양호한 분할 평면이 될 최선의 가능성을 갖는 후보 평면들을 신속히 선택하기 위해 이용된다.
대부분의 CAD 모델들은 중요한 평면 특징들을 내포하기 때문에, 분할 평면상의 삼각형들은, 모델 내의 가장 중요한 평면 특징으로 선택되면 최대화될 수 있다. 투명 객체 내의 모든 평면 특징들은 평면 그룹들로서 추출되었기 때문에, 가장 중요한 평면 특징을 포함하는 삼각형 리스트는 선형 검색(linear search)에 의해 간단히 식별될 수 있다. 그 후, 리스트 내의 하나의 삼각형(이 구현예에서는 첫 번 째 삼각형이 선택된다)의 지지 평면이 후보 분할 평면들 중 하나로 선택된다. 평면 특징의 중요도(significance)는 평면 그룹 면적, 즉 그룹 내의 삼각형들의 총 면적으로서 정의된다. 이는, 삼각형이 평면에 의해 절단될 가능성은 그것의 면적에 따라 증가하고, 따라서 더욱 큰 면적을 가진 삼각형들이 분할 평면상에 있게 하는 것이 더 낫기 때문이다.
그 후, 아마도 가장 적은 수의 삼각형 절단 및 양호한 균형의 결과를 초래하는 다음의 5개 후보 평면들이 선택되어 평가된다. 통계적으로 가장 적은 수의 삼각형 절단을 보이는 분할 평면들은 삼각형들의 가장 우세한 배향을 따라 배향되어야 한다. 게다가, 그 분할 평면은 그것의 2개의 측면 사이에 양호한 균형을 달성하기 위하여 모든 삼각형들의 중심에 가까이 위치해야 한다. 이 배향 요건은 그룹 면적에 의해 다시 중요도가 측정될 때 가장 중요한 영역들 각각으로부터 하나의 후보를 선택함으로써 만족될 수 있고; 전형적으로 5개의 가장 중요한 영역들이 이용된다. 위치 요건은 삼각형 리스트의 중간 스팬(middle span)으로부터 무작위로 고른 삼각형으로 후보를 선택함으로써 충족된다. 단일 영역 내의 모든 삼각형들은 그들의 거리에 의해 소팅되기 때문에, 그렇게 선택된 후보 평면들은 양호한 균형의 결과를 초래해야 한다. 하나의 구현예에서, 중간 스팬은 범위
Figure 112006040250955-pct00003
내의 인덱스들을 갖는 삼각형들의 컬렉션으로 정의되고, 여기서 Nt는 영역 내의 삼각형들의 수이다.
6개의 후보 분할 평면들 각각에 대하여, 삼각형들에 대한 그것의 관계가 계 산된다. 단일 삼각형에 대한 분할 평면의 관계는 4개의 타입: 위(on), 교차(crossing), 앞(front) 및 뒤(back) 중 하나로 분류될 수 있지만, 삼각형들의 세트에 대한 그것의 관계는 표 1에 나타낸 4개의 파라미터 no, nc, nF 및 nB에 의해 특징화된다. 평면에 대한 단일 삼각형의 관계 타입은 평면에 대한 그것의 3개의 정점들의 관계로부터 쉽게 추론될 수 있고, 평면에 대한 그것의 3개의 정점들의 관계는 절반 평면 테스트(half plane test)에 의해 쉽게 계산된다.
6개의 선택된 후보 평면들 각각은 입력 삼각형의 지지 평면이다. 이는, 적어도 하나의 삼각형이 절단되지 않을 것이고, 삼각형들에 의해 형성된 형상이 볼록에 가깝지 않을 때 양호한 결과를 주어야 한다. 그러나 이 형상이 거의 볼록일 때, 선택된 분할 평면은 극도로 불량한 균형의 결과를 초래할 가능성이 매우 크고, 이것은 회피되어야 한다.
삼각형들에 의해 형성된 형상의 볼록도(convexity)는 각 후보 평면에 대하여 다음의 수학식을 이용하여 계산된다.
Δ = nc + abs(nF - nB)
모든 6개의 후보 평면들에 대하여 Δ≤TΔ(여기서 TΔ는 0보다 큰 값을 가진 정수 임계치이다)가 성립되면 그 형상은 거의 볼록인 것으로 간주된다. 그 형상이 거의 볼록인 것으로 밝혀지면, 추가적인 후보 평면들이 선택되는데, 바람직한 실시예에서는, 3개의 추가적인 후보 평면들이 선택된다. 이 경우, 수 가지 방법으로 실험하였고, 다음 2개의 제약으로 구성된 후보 평면들이 실제로 양호하게 동작하는 것을 알아냈다. 첫째, 평면은 무작위로 선택된 삼각형의 에지를 내포해야 하고, 그 에지를 내포하는 삼각형들은 절단되지 않도록 해야 한다. 둘째, 더욱 양호한 균형을 얻을 가능성을 향상시키기 위해, 그것의 배향은 선택된 삼각형에 대해 수직이어야 한다. 이들 3개의 삼각형들 각각에 대한 Δ 값도 계산된다. 결코 끝날 수 없는 무의미한 노드 분할을 피하기 위하여 Δ=0이면 후보가 즉시 배제된다.
현재의 BSP 노드에 대하여 최선의 분할 평면이 선택된 후에, 앞의 자식 또는 뒤의 자식 또는 양자 모두가 필요한 부모-자식 링크를 가지고 생성된다. 분할 평면의 양의 측면에 있는 모든 삼각형들은 앞의 자식 위에 놓이는 반면, 그것의 음의 측면에 있는 모든 삼각형들은 뒤의 자식 위에 놓인다. 분할 평면에 있는 이들 삼각형들은 현재의 노드에 머무를 것이고, 분할 평면과 교차하는 삼각형들은 2개 또는 3개의 삼각형으로 분할될 것이다. 분할된 삼각형들 각각은 앞의 자식에 부가되거나 또는 뒤의 자식에 부가된다.
노드 구성은, 동일 자식 노드들 상의 삼각형들의 순서가 변하지 않은 채로 남도록 보장하기 위해, 현재의 노드상의 삼각형들이 순차적으로 처리되는 식으로 구현되었다. 예를 들면, 현재의 노드에서 삼각형 A가 삼각형 B에 선행하고, 노드 구성 후에 그들이 동일 자식 노드에 속한다면, 삼각형 A(또는 그것의 분할된 삼각형들)는 여전히 삼각형 B(또는 그것의 분할된 삼각형들)에 선행한다. 이런 식으로 자식 노드들 내의 삼각형 리스트는 더 이상의 소팅 없이 계층적 그룹 추출의 준비가 되어 있다.
BSP 트리 내에 조직된 삼각형들 간의 가시도 순서는, 아이 포인트(eye point)에 대한 BSP 트리의 뒤에서 앞으로의 횡단(back-to-front traversal) 및 횡단 중일 때, 각 리프 노드에서의 깊이 소팅 절차(depth-sort procedure)에 의해 계산된다. 트리 횡단은 BSP 트리 내의 모든 노드들을 소팅하지만, 깊이 소팅 절차는 단일 리프 노드 내의 삼각형들에 대한 뒤에서 앞으로의 시퀀스를 생성한다. 삼각형 소팅 알고리즘의 예시적인 의사 코드가 아래에 주어져 있고, 거기서 "inNode"는 소팅 중인 입력되는 현재의 BSP 트리이고, "inEye"는 아이 포인트의 입력 위치이고, "outTriList"는 계산될 소팅된 삼각형들의 출력 리스트이다. 리프가 아닌 노드들 상의 삼각형들에 대해서는, 깊이 소팅이 필요하지 않고, 따라서 리프 노드들 상의 삼각형들과 비교하여 소팅 비용이 훨씬 적다. 이것이 표 1에 도시된 수 nc가 수학식 1의 평가식에 긍정적인 기여를 하는 이유이다.
Figure 112006040250955-pct00004
개시된 깊이 소팅 알고리즘은 2개의 상이한 모드에서 동작한다. 기본 모드 에서, 각각의 삼각형은 포인트로 단순화되고, 한 쌍의 삼각형들 간의 폐색 관계는 아이 포인트에 대한 그들의 거리를 비교함으로써 계산된다. 그러한 단순화는 O(NlogN) 기대 시간을 갖는 QuickSort와 같은 효율적인 구현을 가능케 하지만, 테스트는 정확한 결과를 보장하기에는 너무 예비적이다. 따라서, 소팅된 순서는 잘못될 수 있고, 그 결과 투명 렌더링 시에 아티팩트들이 생긴다.
고급 모드에서 동작할 때, 깊이 소팅 알고리즘은 다음 절에서 설명되는 고급 폐색 테스트 알고리즘에 의해 계산된 한 쌍의 삼각형들 간의 진정한 폐색 관계에 기초하여 최종 소팅 리스트를 작성한다. 보장된 정확한 결과를 생성하면서, 진정한 폐색 관계에 기초하여 소팅 리스트를 작성하는 것은 기본 Z 소팅보다 더 복잡하다. 이 복잡성은, 분리되어 있는 삼각형들 A와 B 간의 폐색 테스트는 최종의 뒤에서 앞으로 소팅된 리스트에서 그들의 순서를 완전히 결정하지 않는다는 사실에서 비롯된다. 예를 들면, 이들 2개의 삼각형들 간의 폐색 관계가 A≤B로서 표시된 "A는 B를 폐색하지 않는다"인 것으로 밝혀지면, A>C0>C1>...>Cn>B로서 표시된 연쇄 폐색 관계(chain occlusion relation)를 갖는 하나 이상의 삼각형들 C0,C1,...,Cn이 존재할 수 있고, 이는 최종 리스트에서 A가 B에 선행해야 한다는 것을 말한다.
도 7은 n=0인 경우에 대해 예시된 연쇄 폐색 관계를 나타낸다. 이 도면에서, "아이 포인트"는 도면 바로 위쪽으로부터이다. 이런 종류의 소팅 문제에 "분할 및 정복" 패러다임을 직접 적용하는 것은 가능하지만 어렵고, 일반적으로 계산상의 복잡도 O(N2)를 갖는 알고리즘이 기대된다. 이러한 계산상의 부담은 바람직한 실시예에서 완화되는데, 그 이유는 깊이 소팅 알고리즘은 BSP 트리의 각 리프 노드에만 적용되고, 단일 리프 노드상의 삼각형의 최대 수가 제어될 수 있기 때문이다.
보편성의 손실 없이 최초 리스트에서 A가 B보다 앞에 있다고 가정하면, 폐색 테스트로부터 필요한 결과는 A가 B를 폐색하는지 여부이다. 먼저 복잡도 [4]를 증가시키는 다음 4개의 기본 테스트를 이용한다. 하나의 테스트가 성공할 때 "A는 B를 폐색하지 않는다"라는 결론이 얻어질 수 있다.
1. 뷰 좌표계에서, A의 Z 값이 B의 Z 값보다 큰가?
2. 화상 공간 내의 이들 2개의 삼각형의 축 정렬된 바운딩 박스(axis-aligned bounding box)가 겹치는가?
3. 삼각형 A가 아이 포인트로서 삼각형 B의 반대 편에 있는가? 4. 삼각형 B가 아이 포인트로서 삼각형 A의 같은 편에 있는가?
전형적인 CAD 모델들에서, 모델 데이터는 보통 공간 내에서 매우 콤팩트하고, 종종 이들 기본 테스트의 어느 것도 성공하지 않는다. 이런 경우를 다루는 공지된 방법들은 바람직하지 않은데, 그 이유는 2개의 다각형이 이미 정확히 순서화되어 있는 경우라도 그 방법들이 뷰에 따른 분할(view-dependent splits)의 결과를 초래할 수 있기 때문이다. 바람직한 실시예는 프레임마다 캐싱된 BSP 트리의 빈번한 업데이트를 필요로 하게 될 그러한 분할을 피하기 위하여 고급 폐색 테스트를 적용한다.
고급 테스트의 기본 아이디어는 하나의 삼각형 상의 폐색 포인트를 식별하고, 이 폐색 포인트와 다른 삼각형 간에 절반 평면 테스트를 이용하여 폐색 관계를 계산하는 것이다. 삼각형의 폐색 영역의 개념은 그러한 폐색 포인트의 선택을 용이하게 하기 위해 이용된다. 도 8A 내지 도 8C는 삼각형의 폐색 영역을 다른 삼각형과의 그것의 위상적 관계(topological relationship)에 따라 3개의 상이한 형태로 나타낸다. 2개의 삼각형이 분리되어 있으면, 폐색 영역 R은, 도 8A에 도시된 바와 같이, 각각이 아이 포인트와 에지들 중 하나에 의해 형성되는 3개의 평면들에 의해 경계가 정해진 절두체(frustum)이다. 정점 v가 이들 2개의 삼각형 간에 공유된다면, 폐색 영역 Rv는, 도 8B에 도시된 바와 같이, 지붕(roof) 형상을 갖고, 각각이 아이 포인트와 정점 v의 소유(owner) 에지들 중 하나에 의해 형성되는 2개의 평면에 의해 경계가 정해진다. 에지 e가 공유된다면, 폐색 영역 Re는, 도 8C에 도시된 바와 같이, 아이 포인트와 에지 e에 의해 형성된 평면에 의해 경계가 정해진 절반 공간(half space)이다. 모든 3개의 폐색 영역 형태들은 소유 삼각형의 내부를 내포하고, 그들 사이에 다음 관계를 갖는다: R⊂Rv⊂Re.
도 8A 내지 도 8C는 삼각형 폐색 영역을 나타낸다. 도 8A는 다른 삼각형이 분리되어 있는 경우의 영역 R을 나타낸다. 도 8B는 정점 v가 공유되는 경우의 영역 Rv를 나타낸다. 도 8C는 에지 e가 공유되는 경우의 영역 Re를 나타낸다. 각 도면에는, 아이 포인트가 표시되어 있다.
도 9는 삼각형 A와 B 영역의 경계 간의 교차를 나타낸다.
A-영역에 의해 표시된 삼각형 A에 대한 폐색 영역이 구성된 후, 삼각형 B 상에 폐색 포인트를 위치시키는 신속한 방법은, 비공유 정점들 각각 테스트하는 것이 다. 아무런 폐색 포인트도 발견되지 않고, 또한 2개의 삼각형이 에지를 공유한다면, "A는 B를 폐색하지 않는다". 그렇지 않으면, B-영역이 구성되고, A상의 비공유 정점들로부터 폐색 포인트가 검색된다. 여전히 아무런 폐색 포인트도 발견되지 않고, 또한 2개의 삼각형이 하나의 정점을 공유한다면, "A는 B를 폐색하지 않는다". 2개의 삼각형이 분리되어 있고, 둘 중 어느 쪽 삼각형의 어떤 정점도 폐색 포인트가 될 자격이 없다면, A를 B-영역의 절두체 경계와 교차시킴으로써 폐색 포인트를 계산한다. 계산된 폐색 포인트는 절두체 경계 상에 있고 폐색 포인트로서 자격이 있다. 도 9에 도시된 케이스에서는, 4개의 교점들이 있다. 아무런 교점도 발견되지 않으면, 삼각형 A는 삼각형 B를 폐색하지 않는다. 고급 폐색 테스트 알고리즘의 예시적인 의사 코드가 아래에 제시되어 있다.
Figure 112006040250955-pct00005
투명 렌더링의 속도를 증진시키는 또 다른 방법은 기준 방향이라고 부르는 한정된 수의 뷰 방향에 대하여 삼각형 노드 상의 소팅된 삼각형 리스트를 캐싱하는 것이다. 2개의 단위 길이 뷰잉 벡터
Figure 112006040250955-pct00006
Figure 112006040250955-pct00007
간의 거리를
Figure 112006040250955-pct00008
로 정의하면, 2개의 방향에 대한 뒤에서 앞으로의 삼각형 시퀀스들은, 그들 간의 거리가 작으면 가까워야 한다. 기준 방향들의 수는 한정되어 있으므로, 뒤에서 앞으로의 삼각형 시퀀스는 그들 각각에 대하여 캐싱될 수 있다. 이들 캐싱된 삼각형 시퀀스들에 의하면, 현재 뷰 방향의 실제 삼각형 시퀀스를 캐싱된 가장 가까운 기준 방향의 삼각형 시퀀스와 근사시킴으로써 투명 렌더링의 속도를 증진시킬 수 있다.
개시된 뷰 캐싱 알고리즘에 대한 예시적인 의사 코드가 아래에 제시되어 있다. 구현예에서 선택된 기준 방향들은 단위 구체 상에 고르게 분포된다. 현재의 뷰 방향에 대하여, 가장 가까운 기준 방향이 식별될 수 있다. 이 기준 방향으로부터 캐싱된 삼각형 리스트가 입수되지 않는다면, 삼각형 소팅 연산이 수행되고, 생성된 삼각형 시퀀스는 기준 방향 상에 캐싱된다. 그렇지 않으면, 캐싱된 리스트가 렌더링을 위하여 바로 검색된다.
Figure 112006040250955-pct00009
뷰 캐싱에 의하면, 삼각형 소팅이 수행되어야 하는 빈도는 감소하고, 따라서 렌더링 속도가 향상된다. 기하학적 데이터 대신에 그래픽 데이터를 캐싱함으로써 추가적인 최적화가 달성될 수 있다. 예를 들면, 삼각형 리스트 대신에 디스플레이 리스트가 기준 방향들 상에 캐싱될 수 있다. 이런 식으로, 필요한 렌더링 연산도 감소할 수 있다.
도 10은 상기 상세한 프로세스 설명에 대응하는, 바람직한 실시예에 따른 프로세스의 흐름도를 도시한다. 먼저, 시스템은 투명 노드 및 현재의 뷰 방향을 기술하는 기하형상 데이터를 수신한다(단계 1005).
다음으로, 시스템은 바이너리 공간 분할 트리를 구성하고, 거기서 각 투명 삼각형이 BSP 트리의 리프와 관련된다(단계 1010).
다음으로, BSP 트리를 횡단하고, 각 리프에서 삼각형들을 소팅함으로써 삼각형들이 실질적으로 뒤에서 앞으로의 순서로 소팅된다(단계 1015).
다음으로, 소팅된 삼각형들이 그래픽 API에 출력된다(단계 1020).
마지막으로, 삼각형 형태 또는 디스플레이 리스트 형태의 어느 쪽으로든, 현재의 뷰에 대한 소팅된 데이터가 캐싱된다(단계 1025).
도 11은 바람직한 실시예에 따른 또 다른 프로세스의 흐름도를 도시한다. 이 프로세스는 위에서 지적한 바와 같이 BSP 트리의 구성을 기술한다. 먼저, 전처리 단계에서, 시스템은 각 삼각형의 노멀 및 위치 정보를 포함하는 각 삼각형의 형상 지식을 분석할 것이다(단계 1105). 다음으로, 시스템은 루트 노드 및 노드 리스트를 생성할 것이다(단계 1110).
그 후, 트리 내의 각 노드에 대하여, 시스템은 본 명세서에 기술된 바와 같이 분할 평면 선택을 수행한다(단계 1115). 그 후, 노드의 각 삼각형을 분할 평면에 대하여 분류하고(단계 1120), 이 분류에 따라 자식 노드들을 생성한다(단계 1125).
남아 있는 노드가 있다면(단계 1130), 프로세스는 (단계 1115로 되돌아가서) 반복된다. 그렇지 않으면, 프로세스는 종료하고(단계 1135), 전체 프로세스 중의 다음 단계가 수행될 수 있다.
그래픽 처리 및 렌더링에 대한 추가적인 배경 정보는 다음의 문헌들에서 찾을 수 있는데, 이 문헌들 모두는 본 명세서에 참조로 통합된다: 아브라함 마멘(Abraham Mammen)이 저술한 "Transparency and Antialiasing Algorithms Implemented with the Virtual Pixel Maps Technique"[IEEE Computer Graphics & Applications, 9(4), 1989년 7월, 43-55]; 카스 에버릿(Cass Everitt)이 저술한 "Interactive Order-Independent Transparency"[White Paper, Nvidia, 2001년]; 마이클 켈리(Michael Kelly), 커크 고울드(Kirk Gould), 브렌트 피스(Brent Pease), 스테파니 위너(Stephanie Winner), 알렉스 옌(Alex Yen)이 공동 저술한 "Hardware Accelerated Rendering of CSG and Transparency"[컴퓨터 그래픽 및 인터랙티브 기술에 관한 21차 연례회의의 회보, 1994년, 177-184]; 뉴웰, 엠. 이.(Newell, M. E.), 뉴웰, 알. 지.(Newell, R. G.), 및 산차, 티. 엘.(Sancha, T. L.)이 공동 저술한 "A Solution to the Hidden Surface Problem"[ACM National Conf. 1972년 회보]; 헨리 푸크(Henry Fuchs), 즈비 엠. 케뎀(Zvi M. Kedem), 브루스 에프. 네일 러(Bruce F. Naylor)가 공동 저술한 "On Visible Surface Generation by a Priori Tree Structure"[컴퓨터 그래픽 및 인터랙티브 기술에 관한 7차 연례회의의 회보, 1980년 7월, 124-133]; 헨리 푸크(Henry Fuchs), 그레고리 디. 아브람(Gregory D. Abram), 에릭 디. 그랜트(Eric D. Grant)가 공동 저술한 "Near Real-Time Shaded Display of Rigid Objects"[Computic Graphics, Vol. 17, No. 3, 1983년 7월]; [7] 마이클 디어링(Michael Deering)이 저술한 "Geometry Compression"[컴퓨터 그래픽 및 인터랙티브 기술에 관한 22차 연례회의의 회보, 1995년 9월]; [8] 폴리, 제이. 디.(Foley, J. D.), 반 담, 에이.(Van Dam, A.), 페이너, 에스. 케이.(Feiner, S. K.), 휴즈, 제이. 에프.(Hughes, J. F.)가 공동 저술한 "Computer Graphics: Principles and Practice"[2판, Addison-Wesley, 1997년]
숙련된 당업자는, 간단 명료함을 위하여, 본 발명과 함께 사용하기에 적합한 모든 데이터 처리 시스템의 전체 구조 및 동작이 본 명세서에 도시 또는 기술되어 있지 않다는 것을 알 것이다. 대신에, 본 발명에 고유하거나 또는 본 발명의 이해를 위해 필요한 만큼만의 데이터 처리 시스템이 도시 및 기술되어 있다. 데이터 처리 시스템의 구성 및 동작의 나머지는 당업계에 공지된 각종 현재의 구현 및 실시 중 어느 것에든 따를 수 있다.
완전히 기능적인 시스템과 관련하여 본 발명이 설명되었지만, 숙련된 당업자는 본 발명의 메커니즘의 적어도 일부는 머신 이용 가능한 매체 내에 각종 형태 중 어느 하나로 내포된 명령들의 형태로 분배될 수 있다는 것을 알 것이고, 또한 본 발명은 그 분배를 실제로 수행하기 위해 이용되는 명령 또는 신호를 담은 매체의 특정 타입에 관계없이 동등하게 적용된다는 것을 주목하는 것이 중요하다. 머신 이용 가능한 매체들의 예로는, 판독 전용 메모리(ROM) 또는 소거 가능하고, 전기적으로 프로그램 가능한 판독 전용 메모리(EEPROM)와 같은 비휘발성, 하드-코드(hard-coded) 타입 매체, 플로피 디스크, 하드 디스크 드라이브 및 콤팩트 디스크 판독 전용 메모리(CD-ROM) 또는 디지털 다용도 디스크(DVD)와 같은 사용자 기록 가능 타입 매체, 및 디지털 및 아날로그 통신 링크와 같은 전송 타입 매체를 포함한다.
본 발명의 예시적인 실시예를 상세히 설명하였지만, 숙련된 당업자는 가장 넓은 형태의 본 발명의 사상 및 범위를 벗어나지 않고, 본 명세서에 개시된 발명의 각종 변경, 대체, 변형 및 개선이 행해질 수 있다는 것을 이해할 것이다.
본 출원에 기술된 것의 어느 것도 특정 엘리먼트, 단계 또는 기능이 청구범위에 포함되어야 하는 필수 구성요소임을 시사하는 것으로 해석되어서는 안 된다: 특허 내용의 범위는 허여된 청구항들에 의해서만 정의된다. 또한, 이들 청구항 중의 어느 것도 "...하기 위한 수단(means for)"이라는 정확한 어구 다음에 분사(participle)가 오지 않는 한 35 USC §112의 6항에 어긋나지 않는다.

Claims (30)

  1. 그래픽 처리 방법으로서,
    그래픽 객체에 대한 노드 및 뷰 데이터를 수신하는 단계,
    상기 그래픽 객체에 대응하고, 각 리프와 관련된 적어도 하나의 형상을 갖는 바이너리 공간 분할 트리를 구성(build)하는 단계,
    상기 바이너리 공간 분할 트리의 각 리프에서 형상들을 소팅하는 단계, 및
    상기 소팅된 형상들을 출력하는 단계
    를 포함하고, 상기 형상들은 실질적으로 뒤에서 앞으로의(back-to-front) 순서로 소팅되는, 그래픽 처리 방법.
  2. 삭제
  3. 제1항에 있어서,
    형상 데이터를 캐싱하는 단계를 더 포함하는 그래픽 처리 방법.
  4. 제1항에 있어서,
    상기 바이너리 공간 분할 트리를 횡단하는 단계를 더 포함하는 그래픽 처리 방법.
  5. 제1항에 있어서,
    상기 형상들은 삼각형인 그래픽 처리 방법.
  6. 제1항에 있어서,
    구성 컴포넌트(configuration component)가 사용되고, 상기 구성 컴포넌트는 각 리프에서의 형상 소팅에 대하여 상기 바이너리 공간 분할 트리의 해상도를 밸런싱하는 그래픽 처리 방법.
  7. 제3항에 있어서,
    구성 컴포넌트가 사용되고, 상기 구성 컴포넌트는 상기 캐싱의 해상도의 정확도에 대하여 리소스 사용을 밸런싱하는 그래픽 처리 방법.
  8. 그래픽 처리 방법으로서,
    그래픽 객체 내의 형상들을 분석하는 단계,
    루트 노드 및 바이너리 공간 분할 트리에 대한 부가적인 노드들의 리스트를 생성하는 단계- 각 노드는 적어도 하나의 형상과 관련됨-,
    각 부가적인 노드에 대하여 분할 평면 선택을 수행하는 단계,
    상기 분할 평면 선택에 따라 상기 부가적인 노드에서 상기 형상들을 분류하는 단계, 및
    상기 형상 분류에 따라 자식 노드들을 생성하는 단계
    를 포함하는 그래픽 처리 방법.
  9. 제8항에 있어서,
    각 노드는 3차원 공간 영역 내에 위치하는 엘리먼트들의 세트를 나타내는 그래픽 처리 방법.
  10. 제8항에 있어서,
    상기 형상들은 삼각형인 그래픽 처리 방법.
  11. 적어도 하나의 프로세서 및 액세스 가능한 메모리를 갖는 데이터 처리 시스템으로서,
    그래픽 객체에 대한 노드 및 뷰 데이터를 수신하기 위한 수단,
    상기 그래픽 객체에 대응하고, 각 리프와 관련된 적어도 하나의 형상을 갖는 바이너리 공간 분할 트리를 구성하기 위한 수단,
    상기 바이너리 공간 분할 트리의 각 리프에서 형상들을 소팅하기 위한 수단, 및
    상기 소팅된 형상들을 출력하기 위한 수단
    을 포함하고, 상기 형상들은 실질적으로 뒤에서 앞으로의 순서로 소팅되는, 데이터 처리 시스템.
  12. 삭제
  13. 제11항에 있어서,
    형상 데이터를 캐싱하기 위한 수단을 더 포함하는 데이터 처리 시스템.
  14. 제11항에 있어서,
    상기 바이너리 공간 분할 트리를 횡단하기 위한 수단을 더 포함하는 데이터 처리 시스템.
  15. 제11항에 있어서,
    상기 형상들은 삼각형인 데이터 처리 시스템.
  16. 제11항에 있어서,
    구성 컴포넌트가 사용되고, 상기 구성 컴포넌트는 각 리프에서의 형상 소팅에 대하여 상기 바이너리 공간 분할 트리의 해상도를 밸런싱하는 데이터 처리 시스템.
  17. 제13항에 있어서,
    구성 컴포넌트가 사용되고, 상기 구성 컴포넌트는 상기 캐싱의 해상도의 정확도에 대하여 리소스 사용을 밸런싱하는 데이터 처리 시스템.
  18. 적어도 하나의 프로세서 및 액세스 가능한 메모리를 갖는 데이터 처리 시스템으로서,
    그래픽 객체 내의 형상들을 분석하기 위한 수단,
    루트 노드 및 바이너리 공간 분할 트리에 대한 부가적인 노드들의 리스트를 생성하기 위한 수단- 각 노드는 적어도 하나의 형상과 관련됨-,
    각 부가적인 노드에 대하여 분할 평면 선택을 수행하기 위한 수단,
    상기 분할 평면 선택에 따라 상기 부가적인 노드에서 상기 형상들을 분류하기 위한 수단, 및
    상기 형상 분류에 따라 자식 노드들을 생성하기 위한 수단
    을 포함하는 데이터 처리 시스템.
  19. 제18항에 있어서,
    각 노드는 3차원 공간 영역 내에 위치하는 엘리먼트들의 세트를 나타내는 데이터 처리 시스템.
  20. 제18항에 있어서,
    상기 형상들은 삼각형인 데이터 처리 시스템.
  21. 컴퓨터 프로그램을 유형적으로(tangibly) 구현하는 머신 판독 가능한 기록 매체로서,
    상기 컴퓨터 프로그램은,
    그래픽 객체에 대한 노드 및 뷰 데이터를 수신하기 위한 명령어,
    상기 그래픽 객체에 대응하고, 각 리프와 관련된 적어도 하나의 형상을 갖는 바이너리 공간 분할 트리를 구성하기 위한 명령어,
    상기 바이너리 공간 분할 트리의 각 리프에서 형상들을 소팅하기 위한 명령어, 및
    상기 소팅된 형상들을 출력하기 위한 명령어
    를 포함하고, 상기 형상들은 실질적으로 뒤에서 앞으로의 순서로 소팅되는, 머신 판독 가능한 기록 매체.
  22. 삭제
  23. 제21항에 있어서,
    상기 컴퓨터 프로그램은,
    형상 데이터를 캐싱하기 위한 명령어를 더 포함하는 머신 판독 가능한 기록 매체.
  24. 제21항에 있어서,
    상기 컴퓨터 프로그램은,
    상기 바이너리 공간 분할 트리를 횡단하기 위한 명령어를 더 포함하는 머신 판독 가능한 기록 매체.
  25. 제21항에 있어서,
    상기 형상들은 삼각형인 머신 판독 가능한 기록 매체.
  26. 제21항에 있어서,
    구성 컴포넌트가 사용되고, 상기 구성 컴포넌트는 각 리프에서의 형상 소팅에 대하여 상기 바이너리 공간 분할 트리의 해상도를 밸런싱하는 머신 판독 가능한 기록 매체.
  27. 제23항에 있어서,
    구성 컴포넌트가 사용되고, 상기 구성 컴포넌트는 상기 캐싱의 해상도의 정확도에 대하여 리소스 사용을 밸런싱하는 머신 판독 가능한 기록 매체.
  28. 컴퓨터 프로그램을 유형적으로 구현하는 머신 판독 가능한 기록 매체로서,
    상기 컴퓨터 프로그램은,
    그래픽 객체 내의 형상들을 분석하기 위한 명령어,
    루트 노드 및 바이너리 공간 분할 트리에 대한 부가적인 노드들의 리스트를 생성하기 위한 명령어- 각 노드는 적어도 하나의 형상과 관련됨-,
    각 부가적인 노드에 대하여 분할 평면 선택을 수행하기 위한 명령어,
    상기 분할 평면 선택에 따라 상기 부가적인 노드에서 상기 형상들을 분류하기 위한 명령어, 및
    상기 형상 분류에 따라 자식 노드들을 생성하기 위한 명령어
    를 포함하는 머신 판독 가능한 기록 매체.
  29. 제28항에 있어서,
    각 노드는 3차원 공간 영역 내에 위치하는 엘리먼트들의 세트를 나타내는 머신 판독 가능한 기록 매체.
  30. 제28항에 있어서,
    상기 형상들은 삼각형인 머신 판독 가능한 기록 매체.
KR1020067011253A 2003-12-09 2004-12-09 투명 렌더링을 위한 시스템 및 방법 KR101106391B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/731,281 US7583263B2 (en) 2003-12-09 2003-12-09 System and method for transparency rendering
US10/731,281 2003-12-09
PCT/US2004/041532 WO2005057502A1 (en) 2003-12-09 2004-12-09 System and method for transparency rendering

Publications (2)

Publication Number Publication Date
KR20060118535A KR20060118535A (ko) 2006-11-23
KR101106391B1 true KR101106391B1 (ko) 2012-01-17

Family

ID=34634323

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067011253A KR101106391B1 (ko) 2003-12-09 2004-12-09 투명 렌더링을 위한 시스템 및 방법

Country Status (7)

Country Link
US (1) US7583263B2 (ko)
EP (1) EP1692663B1 (ko)
JP (1) JP4696076B2 (ko)
KR (1) KR101106391B1 (ko)
AT (1) ATE457075T1 (ko)
DE (1) DE602004025421D1 (ko)
WO (1) WO2005057502A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8072451B2 (en) * 2004-12-29 2011-12-06 Intel Corporation Efficient Z testing
US20070109299A1 (en) * 2005-11-15 2007-05-17 Vital Images, Inc. Surface-based characteristic path generation
KR101407639B1 (ko) * 2007-10-22 2014-06-16 삼성전자주식회사 3차원 그래픽 렌더링 장치 및 방법
EP2071516A1 (en) * 2007-12-07 2009-06-17 Osmosys S.A. Method for sorting graphical objects
US8814677B2 (en) * 2010-09-02 2014-08-26 Disney Enterprises, Inc. Using real-time constructive solid geometry to provide painting and thinning game mechanics
US9053254B2 (en) 2011-11-23 2015-06-09 Siemens Product Lifecycle Management Software Inc. Massive model visualization in PDM systems
KR102116708B1 (ko) * 2013-05-24 2020-05-29 삼성전자 주식회사 그래픽스 프로세싱 유닛
US10614632B2 (en) 2015-04-23 2020-04-07 Siemens Industry Software Inc. Massive model visualization with a product lifecycle management system
CN106327540B (zh) * 2015-07-03 2019-05-07 高德软件有限公司 基于OpenGL View的控制方法、装置及终端
DE112018006721T5 (de) * 2017-12-29 2020-10-15 Mitutoyo Corporation Prüfprogrammbearbeitungsumgebung mit automatischen durchsichtigkeitsoperationen für verdeckte werkstückmerkmale
US10692298B2 (en) * 2018-01-31 2020-06-23 International Business Machines Corporation Adaptive labeling of network graphs
US10467819B2 (en) * 2018-03-28 2019-11-05 Authanaviz, LLC Real-time spatial authoring in augmented reality using additive and subtractive modeling
CN116702657B (zh) * 2023-08-07 2023-10-20 中国空气动力研究与发展中心计算空气动力研究所 一种针对大规模网格的人机交互方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000015706A (ja) 1988-04-18 2000-01-18 Three D Syst Inc 3次元物体の形成方法および装置
JP2001307115A (ja) 2000-04-24 2001-11-02 Fuji Xerox Co Ltd 画像処理装置および画像処理方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9406509D0 (en) * 1994-03-31 1994-05-25 Argonaut Software Limited Rendering 3-d scenes in computer graphics
US5777621A (en) * 1994-12-22 1998-07-07 Apple Computer, Inc. Quality control mechanism for three-dimensional graphics rendering
JPH0954834A (ja) * 1995-08-11 1997-02-25 Yamaha Corp 画像表示制御装置
US5923333A (en) * 1997-01-06 1999-07-13 Hewlett Packard Company Fast alpha transparency rendering method
US6356262B1 (en) * 1998-04-16 2002-03-12 International Business Machines Corporation System and method for fast polyhedral cell sorting
US6912293B1 (en) * 1998-06-26 2005-06-28 Carl P. Korobkin Photogrammetry engine for model construction
US6483518B1 (en) * 1999-08-06 2002-11-19 Mitsubishi Electric Research Laboratories, Inc. Representing a color gamut with a hierarchical distance field
US6624810B2 (en) * 2000-12-18 2003-09-23 International Business Machines Corporation Tightened bounding volumes for BSP-trees
US7453459B2 (en) * 2001-02-26 2008-11-18 Adobe Systems Incorporated Composite rendering 3-D graphical objects
JP2002269588A (ja) * 2001-03-12 2002-09-20 Sony Corp 3次元表示プログラム、3次元表示方法、3次元表示プログラム格納媒体および3次元表示装置
JP2003271992A (ja) * 2002-03-13 2003-09-26 Fukui Computer Kk 仮想モデルハウス体験システム、仮想モデルハウス体験方法、仮想モデルハウス体験プログラムおよび仮想モデルハウス体験プログラムが格納されたコンピュータ読み取り可能な記憶媒体
US7194125B2 (en) * 2002-12-13 2007-03-20 Mitsubishi Electric Research Laboratories, Inc. System and method for interactively rendering objects with surface light fields and view-dependent opacity

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000015706A (ja) 1988-04-18 2000-01-18 Three D Syst Inc 3次元物体の形成方法および装置
JP2001307115A (ja) 2000-04-24 2001-11-02 Fuji Xerox Co Ltd 画像処理装置および画像処理方法

Also Published As

Publication number Publication date
ATE457075T1 (de) 2010-02-15
WO2005057502A8 (en) 2006-10-26
WO2005057502A1 (en) 2005-06-23
US7583263B2 (en) 2009-09-01
EP1692663A1 (en) 2006-08-23
JP2007514243A (ja) 2007-05-31
JP4696076B2 (ja) 2011-06-08
KR20060118535A (ko) 2006-11-23
EP1692663B1 (en) 2010-02-03
DE602004025421D1 (de) 2010-03-25
US20050122323A1 (en) 2005-06-09

Similar Documents

Publication Publication Date Title
US7659894B2 (en) Terminating spatial partition hierarchies by a priori bounding memory
Frishman et al. Online dynamic graph drawing
US8797324B2 (en) Direct ray tracing of 3D scenes
US7495664B2 (en) Instant ray tracing
KR101106391B1 (ko) 투명 렌더링을 위한 시스템 및 방법
US6018347A (en) Methods and apparatus for rendering three-dimensional images
Saona-Vazquez et al. The visibility octree: a data structure for 3D navigation
JPH05266212A (ja) データプロセッサによってオブジェクトの作成を実行する方法及びグラフィックスディスプレイ装置
US6734853B2 (en) Method of using view frustrum culling for scaleable collision detection
US20080225048A1 (en) Culling occlusions when rendering graphics on computers
US8698799B2 (en) Method and apparatus for rendering graphics using soft occlusion
WO2002054351A2 (en) Using ancillary geometry for visibility determination
Yoon Real-time massive model rendering
Kipfer et al. GPU construction and transparent rendering of iso-surfaces
Vasilakis et al. A survey of multifragment rendering
US6664957B1 (en) Apparatus and method for three-dimensional graphics drawing through occlusion culling
Woodwark Generating wireframes from set-theoretic solid models by spatial division
Huang et al. Interactive transparency rendering for large cad models
James et al. The priority face determination tree for hidden surface removal
Mesquita et al. Non-overlapping geometric shadow map
CN117058300B (zh) 一种基于kd树加速光线与未裁剪曲面交点计算的方法
Nowak Hierarchical Multi-resolution Data Structure for Molecular Visualization
Conte Real-time rendering of cities at night
Lanzagorta et al. Quantum rendering
Hwang et al. A Fast 3-D Visualization Methodology Using Characteristic Views of Objects

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141222

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee