KR100366380B1 - 분산협력 시스템 환경하에서 쓰리디 스튜디오 맥스플러그인을 이용한 쓰리디 객체 공유방법 - Google Patents

분산협력 시스템 환경하에서 쓰리디 스튜디오 맥스플러그인을 이용한 쓰리디 객체 공유방법 Download PDF

Info

Publication number
KR100366380B1
KR100366380B1 KR1020000027341A KR20000027341A KR100366380B1 KR 100366380 B1 KR100366380 B1 KR 100366380B1 KR 1020000027341 A KR1020000027341 A KR 1020000027341A KR 20000027341 A KR20000027341 A KR 20000027341A KR 100366380 B1 KR100366380 B1 KR 100366380B1
Authority
KR
South Korea
Prior art keywords
information
class
shared
plug
shared memory
Prior art date
Application number
KR1020000027341A
Other languages
English (en)
Other versions
KR20010106552A (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 (주)싸이버훼밀리
Priority to KR1020000027341A priority Critical patent/KR100366380B1/ko
Publication of KR20010106552A publication Critical patent/KR20010106552A/ko
Application granted granted Critical
Publication of KR100366380B1 publication Critical patent/KR100366380B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

분산 협력작업 환경에서 다자(多者)가 참여하여 행하는 공동작업시의 3D객체 공유방법을 제공하는 방법이 제공된다.
본 발명의 방법은 팝업메뉴의 편집명령에 의하여 공유플러그인의 객체에 대한 공유기능이 작동함에 따라, 3D 객체정보추출모듈이 3D 공유객체를 추출하여 공유메모리에 보내는 단계; 와 상기 공유메모리에 있는 상기 추출정보를 네트워크 인터페이스가 서버의 데이터베이스에 저장하는 단계; 와 사용자가 상기 서버에 로그인하여 상기 데이터베이스에 있는 상기 추출한 정보를 요청함에 따라, 상기 서버의 네트워크 인터페이스가 공유메모리에 상기 추출정보를 공유메모리에 전송하는 단계; 와 상기 공유메모리에 있는 상기 전송된 정보를 3D 공유생성객체 클래스가 3D 공유객체로 생성하여 상기 이용자에게 제공하는 단계를 포함하여 이루어진다.
본 발명에 따르면, 단일 컴퓨터 시스템에서 수행되는 3D 스튜디오 맥스 작업을 분산환경에서 공동협력작업으로 할 수 있게 확장시킴으로서, 3D 모델링 작업시, 시간과 공간의 제약을 최소화하여 경제적 절감효과가 있다

Description

분산협력 시스템 환경하에서 쓰리디 스튜디오 맥스 플러그인을 이용한 쓰리디 객체 공유방법 { 3D-Object sharing method using 3D Studio max plug-in in distributed collaborative work systems }
본 발명은 분산협력 시스템 환경하에서 3D 스튜디오 맥스 플러그인을 이용한 3D객체 공유방법에 관한 것으로서, 더욱 상세하게는 분산 협력작업 환경에서 다자(多者)가 참여하여 행하는 공동작업시의 3D객체 공유방법을 제공하는 방법에 관한것이다.
분산협력 시스템은 원격지에서 많은 사용자들에게 가상공간에서 공동작업 환경을 제공할 수 있는 시스템으로 인터넷, 멀티미디어, 가상현실 그리고 고성능의 마이크로프로세서(Microprocessor)가 출현함에 따라 이를 이용하여 공동작업 환경이 가능하게 되었다. 이러한 협력시스템은 멀티미디어, 산업디자인, 3D 에니메이션, 만화 및 영화산업, 제품설계, 의료, 건축설계, 자동차모형 제작, 선박, 항공분야 등의 전(全)산업분야에서 모형제작 및 제품생산과정에 응용되어 경제적으로 상당한 비용절감 효과를 가져다 주었을 뿐만 아니라 원격의사소통, 원격교육, 전자상거래에도 적용될 수 있다. 그러나 종래의 분산협력 시스템 프레임워크를 이용하는 데는 여러 가지 문제점이 있었다. 이를 국내외 관련된 연구를 토대로 설명한다.
종래의 분산협력 시스템으로서, 먼저 "하바네로(Habanero) [Annie Chabert, Ed Grossman Larry Jackson, Stephen Piertrovicz, NCSA Habanero: Synchronous Collaborative Framework and Environment, 1998]"는 자바(Java)로 개발된 클라이언트/서버 환경의 협력시스템 프레임워크로 인터넷을 통해 자바객체를 공유할 수 있는 환경과 협력시스템 응용개발을 위한 API(Application Program Interface: 특정 시스템에서 자신의 기능(機能)을 사용하여 응용프로그램을 작성할 수 있도록 제공하는 함수나 프로시저들의 집합)를 제공한다. 상기 방법은 자바객체 공유라는 특징때문에 인터넷을 통한 플랫폼에 독립적인 협력시스템을 구축할 수 있는 장점이 있으나, 기존의 개인PC상에서 작동되는 응용 소프트웨어와 연동이 미약해 지는 경향이 있다.
다음으로 설명하는 "그룹키트(GroupKit) [Roseman, M. and Greenberg, S.Building Real Time Groupware with GroupKit, A Groupware Toolkit. ACM Transaction On Computer Human Interaction 3(1), March 1996]"은 캘거리대학에서 개발한 실시간 응용개발을 위한 협력시스템 툴킷(Tool kit)이다. 여기에서 사용되는 레지스트라(Registrar: 일종의 서버)는 분산된 시스템의 정보를 저장하고, 동시에 접속된 각 시스템에서 생성된 컨퍼런스(Conference)의 목록정보와 사용자를 구분할 수 있는 고유계정을 제공하며, 또한 사용자 정보를 저장한다. 이러한 레지스트라는 접속한 시스템들에게 현재 협력작업이 가능한 사용자 및 개설된 컨퍼런스정보를 제공한다. 사용자는 레지스트라에 접속하여, 사용자정보를 검색하고 컨퍼런스정보를 획득하여 공동협력작업에 참여하게 된다. 협력작업은 각(各) 시스템 사이에 피어-투-피어(Peer-to-Peer: 워크그룹방식)방식으로 수행되어 시스템에게 협력작업에서 요구되는 기능을 부담하여야 하는 반면에 중앙서버는 각 시스템의 관리정보만을 가지고 있으므로 다른 클라이언트의 상태를 빠르게 분석할 수 있으며 협력작업시 발생되는 부하가 각 시스템에 분산된다. 그러나 워크스테이션과 같은 기종에서 작업을 진행해야 함으로 개발시스템에 있어 보편성이 떨어진다.
이에 반해 "그레트(Egret)[Philip M.Johnson. Experiences with EGRET: An exploratory group work environment. Collaborative Computing, January 1994]"는 하와이대학에서 개발된 협력시스템 프레임워크로 그룹의 공동작업을 지원하며, 동적이며 확장 가능한 프레임워크 구축을 목표로 개발되었다. 이는 멀티클라이언트(Multi-Client), 멀티서버(Multi-Server), 멀티에이전트(Multi-Agent)구조로 되어 있으며, 클라이언트/서버 환경의 데이터베이스 구조를 사용하였다. 서버의 부하를 줄이기 위해 서버의 데이터 처리부를 간단히 하고, 클라이언트에게 부하를 분산하였다. 여기에서 사용되는 공유 데이터는 하이퍼텍스트(Hypertext)를 사용하여 서로 연결되어 있으며, 이를 효과적으로 처리하기 위해 지테이블(Gtable)을 정의하였다. 그러나, 이러한 방법은 서버에 부하를 집중시키고, 서버의 데이터베이스에 너무 의존성이 크다보니 확장성이 떨어진다.
다음으로 설명하는 "CW-MAN (The Cooperative-Work Management System with Hybrid Architecture for Efficient Multimedia Collaboration)[이광행, 전재우, 오삼권, CW-MAN:효율적인 멀티미디어 공동저작을 위한 혼합형 구조의 공동저작 관리시스템, 한국 정보 처리학회 논문지, p.1253-1262, 1999]은 효율적인 멀티미디어 공동저작을 위한 혼합형 구조의 공동 저작관리 시스템을 제안하였다. 이는 공동저작 관리정보를 중앙관리 시스템에 집중시키고, 공동저작에 사용되는 공유객체들은 각 저작자 시스템에게 분산시키는 혼합형 구조를 갖는 시스템 모델이지만 아직 구현은 되지 않았다. 따라서, 이론상으로만 가능하며 만일 한 작업자의 시스템이 고장나면 서버가 클라이언트에게 취하는 처리절차가 미약하다.
다음으로 "WWW상에서의 공동작업 시스템의 설계 및 구현(Design and Implementation of a Computered Supported Cooperative Work System on the WWW [정보과학논문지(C), 제 3 권 제 4 호(97.8), p.384-396, 1997]"에서는 플랫폼에 독립적으로 공동작업을 지원하는 시스템을 소개하였다. 이는 웹브라우져를 통해 협력작업을 수행함으로써 협력작업에 필요한 부가적인 소프트웨어의 구입 및 설치과정이 필요 없다는 장점이 있으며, 웹을 통해 언제라도 새로운 버젼의 소프트웨어의 구입 및 설치과정이 필요 없는 장점이 있다. 또한, 웹을 통해 언제라도 새로운 버젼의 소프트웨어를 통한 협력작업이 가능하다. 하지만, 웹브라우져에서 제공하는 기능에 의하여 협력작업이 제약받을 수 있으며 병행성 제어 등은 고려되지 않았다. 더구나, 동기(同期)작업을 진행하기가 힘들다.
마지막으로 CSpray [Alex Pang, "Collaborative 3D Visualization with CSpry", IEEE Multimedia and IEEE Computer Graphics and Applications on 3D and Multimedia on the Information Superhighway, March, 1997]는 초고속 정보통신망을 기반으로 하여 원거리에 있는 사용자들이 데이터를 공유하고 서로간에 시각정보를 생성하고 이를 분석할 수 있는 도구이다. 그러나 이는 3D 스튜디오 맥스에 관련된 다양한 3D객체공유를 지원하지 않는다.
본 발명은 이러한 점을 감안하여 이루어진 것으로서, 원격지에 있는 작업자들이 3D 스튜디오 맥스에서 플러그인을 사용하여 공동협력작업을 하도록 3D 객체공유방법을 제공하는 데 목적이 있다.
도 1은 클라이언트가 네트위크 망을 통하여 공유 플러그인을 이용한 분산협력작업을 이루는 구성을 나타내는 구성도이다.
도 2는 공유 플러그인의 3D객체정보 추출모듈을 나타내는 것으로서, 3D객체추출모듈의 구성을 나타내는 클래스 관계도이다.
도 3은 3D객체 정보를 공유 메모리에 기록하는 전송자의 구성을 나타내는 클래스관계도이다.
도 4는 공유 플러그인의 3D객체 생성모듈이 네트워크 인터페이스로부터 객체정보를 입력받아 공유객체를 생성하는 클래스 관계도이다.
도 5는 3D객체정보를 공유 메모리로부터 읽어오는 수신자의 구성을 나타내는 클래스 관계도이다.
도 6은 본 발명인 공유 플러그인의 전체구성을 나타내는 클래스 블럭도이다.
도 7은 3D 스튜디오 맥스의 객체정보를 저장하는 파라미터 배열과 파라미터블럭도의 구조를 나타내는 블럭도이다.
도 8은 공유 플러그인과 네트워크 인터페이스간의 객체정보를 공유 메모리를 통해 입출력하기 위해 정의한 데이터 포맷을 나타내는 블럭도이다.
도 9는 공유 플러그인이 3D 스튜디오 맥스로 로드(Load)되는 과정을 보이는 흐름도이다.
도 10은 3D객체정보 추출과 전송과정을 보이는 흐름도이다.
도 11은 네트워크를 통해 객체정보를 수신받아 3D객체가 생성되는 것을 보이는 흐름도이다.
도 12는 시간의 흐름에 따른 데이터 흐름과 제어 신호 흐름을 나타내는 도면이다.
도 13은 본 발명인 공유플러그인이 3D 스튜디오 맥스에서 어떻게 실현되는 가를 보여주는 화면예이다.
도 14는 3D 공유객체를 가지고 공동작업을 하는 하나의 예를 보여주는 화면예이다.
이러한 목적을 달성하기 위하여 공동작업자가 3D 스튜디오 맥스의 유저인터페이스상에서 하나의 객체를 만들어 나가면서 팝업메뉴에 이를 공유 3D객체로 하여다른 공동작업자에게 팝업메뉴에서 이를 전송하도록 선택하면 이러한 공유 3D객체는 여러 개의 정보단위로 분해되어 서버에 전송된다. 서버는 이러한 공유 3D객체에 대한 정보를 플러그인에 의하여 데이터베이스에 저장해 둔다. 이러한 서버로부터 공동작업자가 한 클라이언트인 컴퓨터에 본 발명인 플러그인을 설치하고 3D 스튜디오 맥스를 실행시켜 공유 3D객체에 대하여 가져오기를 하면 서버는 이를 요청하는 여러 공동작업자에게 제공해준다. 이러한 공유 3D객체를 거리상 제약을 벗어나 여러 공동작업자들이 참조하여 하나의 작업을 완성하게 된다.
이때 본 발명인 플러그인은 3D 스튜디오 맥스의 공유 3D객체정보를 추출하여 공유메모리에 쓰는 기능과 공유메모리로부터 공유 3D객체정보를 읽어와서 3D 스튜디오의 3D객체를 생성하는 기능으로 구성되게 된다.
이하, 첨부된 상세도면을 참조하여 본 발명의 구체적인 구현방법을 설명한다.
도 1은 클라이언트가 네트위크 망을 통하여 공유 플러그인을 이용한 분산협력작업을 이루는 구성을 나타내는 구성도로서, 서버(110)와 클라이언트(100)의 관계를 보인 것이다.
이렇게 구성된 관계들은 여러 블록으로 분류되며 간단하게 설명하자면 클라이언트(100)는 3D 스튜디오 맥스 시스템(101), 본 발명인 플러그인(102), 공유메모리(170), 네트워크 인터페이스(180) 등으로 이루어 진다. 이를 다시 세분화하여 설명하면 3D 스튜디오 맥스 시스템(101)은 이용자들에게 작업을 할 수 있도록 하는 화면인 유저인터페이스(120), 플러그인을 작동시키는 팝업메뉴(130), 생성된 공유 3D객체에 대한 파라미터값을 저장하는 파라미터블럭(150), 그리고 유저인터페이스(120)와 팝업메뉴(130)의 명령을 처리하는 3D 스튜디오 맥스 참조인터페이스 클래스(140)로 이루어진다. 본 발명인 플러그인은 기능별로 전송부분(103)과 수신부분(104)으로 나뉘며, 전송부분(103)은 공유 3D객체정보를 추출하는 3D객체정보추출모듈(162)과 공유메모리에 추출된 정보를 메모리에 기록하는 전송자(161)로 구성된다. 이에 반해 수신부분(104)은 수신한 정보로부터 공유 3D객체를 생성하는 3D객체생성모듈(162)과 공유메모리(170)로부터 객체정보를 읽어오는 수신자(163)로 이루어지다. 공유메모리(170)는 버츄얼메모리(Virtual Memory)로 플러그인과 네트워크 인터페이스 사이에서 데이터를 입출력하는 저장장소로 쓰인다. 마지막으로 네트워크 인터페이스(180)는 다른 시스템과 통신을 처리하는 부분이다. 클라이언트 측과 달리 서버 측은 공유 3D객체정보를 저장하는 데이터베이스(191), 모든 제어기능을 담당하는 협력 시스템 서버(190), 다른 시스템과 통신을 행하는 네트워크 인터페이스(181)로 이루어진다.
이러한 서버와 클라이언트의 각 블록들이 어떻게 기능(機能)하는 지를 설명하면 우선 한 공동작업자가 유저인터페이스(120)에서 한 객체(이를테면 자동차, 바퀴 등)를 만들어 이를 다른 공동작업자와 공유하고자 한다면 팝업메뉴(130)를 띄워 위에서 만든 공유 3D객체를 전송하기를 선택하면 된다. 그런데, 여기서 객체를 그래픽(Graphic)작업을 하다 보면 곡률, 밝기, 표면의 재질 등 여러 가지 파라미터(변수)값이 발생하게 되는 데 이러한 값들을 저장해 놓은 것이 파라미터블럭(150)이다. 그러면, 3D 스튜디오 맥스 참조 인터페이스 클래스(140)는 팝업의 명령에 따라, 3D객체 정보추출모듈(160)이 상기 공유 3D객체에 대한 정보를 파라미터블럭(150)으로부터 추출하여 여러 가지 클래스로 분류하여 전송자(161)에 보낸다. 전송자는 받은 클래스정보를 공유메모리(170; 보통 가상메모리라고 하며 OS(Operating System)가 데이터를 입/출력의 저장장소로 사용한다)에 기록하고, 네트워크 인터페이스(180)에게 제어신호를 보내어 공유메모리에 기록한 공유 3D객체정보를 서버에 전송하도록 요청한다. 이러한 요청을 받은 서버측의 네트워크 인터페이스(181)는 네트워크 망을 통하여 이를 받아 서버측 협력 시스템 서버(190)에 처리를 요청한다. 네트워크 인터페이스(181)의 요청을 받은 협력 시스템 서버는 공유 3D객체정보를 데이터베이스(191)에 저장하고 이를 회의방이라는 세션(Session)에 제공하여 여러 공동작업자가 화면상으로 볼 수 있도록 제공한다.
이와 더불어, 데이터베이스(191)에 저장되어 있는 공유 3D객체정보를 클라이언트(100)가 요청하여 가져오는 것도 상기와 동일한 방식으로 진행된다. 즉, 팝업메뉴(130)에서 공동작업하려는 한 개체에 대해 가져오기를 선택하면 3D 스튜디오 맥스 참조인터페이스 클래스(140)는 이러한 요청을 받아 플러그인(102)에 전달한다. 그러면, 플러그인은 네트워크 인터페이스(180)에 상기 개체에 대해 전송요청을 보내고 이에 따라, 서버측의 네트워크 인터페이스(181)는 서버측의 협력 시스템 서버(190)에 해당정보에 대하여 전송요청과 아울러 데이터베이스로부터 해당정보를 전송 받아 클라이언트 측의 네트워크 인터페이스(180)에 데이터를 전송한다. 이러한 데이터는 공유메모리(170)에 보내지고 상기 데이터에 대한 도착을 플러그인에 알리게 된다. 그러면, 플러그인의 수신자는 플러그인으로부터의 제어신호에 따라 메모리에 있는 해당 공유 3D객체정보를 읽어와 3D 객체생성 모듈(162)에 전달하게 된다. 이에 따라, 3D 객체생성모듈(162)은 공유 3D객체정보를 토대로 3D객체를 생성하여 파라미터값은 파라미터블럭에 보내고 생성된 3D객체는 3D 스튜디오 맥스 참조 인터페이스 클래스(140)를 통하여 유저인터페이스상의 화면으로 공동작업자에게 보여지게 된다.
도 2는 공유 플러그인의 3D객체정보 추출모듈을 나타내는 것으로서, 3D객체추출모듈의 구성을 나타내는 클래스 관계도이다.
한 공동작업 참여자가 3D객체를 만들어 여기에 여러 가지 효과와 변형 등을 가하여 작업중이라고 보면 수정된 부분을 합쳐 다른 공동작업자에게 공유 3D객체에 대한 보완부분을 알려주어야 되는 데, 이를 각 기능별로 클래스(객체지향 프로그램에서 유사한 성격을 자기고 있는 객체들을 총괄적으로 관리하기 위하여 이들 유사한 성질의 객체구조와 각각의 객체에서 사용될 수 있는 메소드(Method; 클래스의 멤버함수와 동일한 의미)를 정의하고 있는 객체를 일컬음)화하여 분류하고 추출하는 기능을 이러한 3D객체정보 추출모듈이 담당하게 된다. 이를 설명하면 사용자가 공유 3D객체를 생성하고 팝업메뉴에서 이를 전송하고자 한다면 플러그인 객체공유기능(200)이 작동하면서 전송관리자 클래스(210)에게 사용자가 공유 3D객체에 대하여 행한 그래픽작업의 편집명령들을 클래스(CLASS; Cooperative LibraryAgency for Systems and Services)화하여 분석하게 된다. 이를 기능별로 클래스화한 것이 도 2인데, 이는 4개의 클래스 즉, 객체전송(CSendObject) 클래스(220)그룹, 수정자전송(CSendModifier) 클래스(230)그룹, 재질전송(CSendMaterial) 클래스(240)그룹, 그리고 명령전송(CSendCommand) 클래스(250)그룹 등으로 이루어진다. 각각을 더 상세히 설명한다면 객체전송클래스(220)는 공동작업자중 한 사용자가 한 객체에 대하여 모델링(Modeling)을 한다면 3D 스튜디오 맥스의 유저인터페이스상에서 여러 가지 기능을 선택하게 되는 편집명령을 실행한다. 이렇게 사용되는 기능들을 유형별로 분류한 것이 다음과 같다. 원통같은 기하하적 도형을 작업할 경우 기하학적도형 객체전송(CSGeomObject)클래스(221)가 작동하고, 선과 같은 선형을 작업할 경우 스프라인 객체전송(CSSPlineObject)클래스(222)가, 도형이나 선같은 것에 빛과 같은 효과를 줄 경우 라이트객체전송(CSLightObject)클래스(223)가, 도형에 카메라를 가지고 공간적으로 보는 효과를 줄 경우 카메라객체전송(CSCameraObject)클래스(224)가, 인체와 같이 표면에 굴곡효과를 줄 경우 넙스객체전송(CSNURBSObject)클래스(225)가, 도움자를 사용할 경우 도움자객체전송(CSHelperObject)클래스(226)가, 두 객체를 합하여 한 객체로 만들 경우 콤파운드객체전송(CSCompundObject)클래스(227)가, 객체의 위치를 XYZ-축의 공간좌표에서 이동하는 경우 객체포지션전송(CSObjectPosition)클래스(228)가 작동한다. 다음으로 수정자전송(CSendModifier)클래스(230) 설명하자면, 이 클래스에서는 오브젝트 스페이스편집명령일 경우 객체공간수정자전송(CSendOSModifier)클래스(231)가, 실세계-공간편집명령일 경우 실세계-공간수정자전송(CSendWSModifier)클래스(232)가 작동하게 된다. 다음으로 재질전송(CSendMaterial)클래스그룹(240)을 설명하자면, 이 클래스에서는 객체의 표면에 대하여 어떤 재질을 가할 경우 재질전송(CSMaterial)클래스(241)가, 객체의 표면에 대하여 어떤 결이나 특질을 가할 경우 텍스춰전송(CSTexture)클래스(242가 작동하게 된다. 마지막으로 팝업메뉴를 실행하면 발생하는 명령전송(CSendCommand)클래스그룹(250)으로 여기에는 객체명령전송(CSOjectCommand)클래스(251),일반명령전송(CSGeneralCommand)클래스(252) 등으로 이루어진다.
위에서 설명한 클래스가 수행되면 해당 클래스그룹을 자식클래스(Child Class)라고 하는데, 이 클래스의 수행이 발생하면 해당 클래스그룹은 편집명령시, 발생한 정보를 전송자의 해당 부모클래스(Parent Class)그룹에 알려주게 된다.
도 3은 3D객체 정보를 공유 메모리에 기록하는 전송자의 구성을 나타내는 클래스관계도이다. 이러한 전송자의 전송모듈(300)은 객체전송(CSendObject) 클래스(220)그룹에 대응하는 객체정보전송(CSendObjectData)클래스(310), 수정자전송(CSendModifier) 클래스(230)그룹에 대응하는 수정자정보전송(CSendObjectData)클래스(320), 재질전송(CSendMaterial) 클래스(240)그룹에 대응하는 재질정보전송(CSendMatData)클래스(330), 그리고 명령전송(CSendCommand) 클래스(250)그룹에 대응하는 명령정보전송(CSendCommandData)클래스(340) 등으로 이루어진다. 여기서 3D객체정보추출모듈에서 편집명령에 의하여 클래스가 수행되면자식클래스는 변경정보를 전송모듈(300)의 해당 부모클래스에 알려주게 된다. 보통 부모클래스가 가지는 권한이나 속성은 자식클래스에게 그대로 승계 되게 되는데, 이러한 속성에 따라 전송자의 부모클래스들은 공유메모리전송클래스(350)와의 관계에서는 자식클래스에 해당된다. 따라서, 공유메모리에 최소단위 데이터를 전송하는 공유메모리전송 클래스(360)를 상속받아 전송할 3D객체에 대한 파라미터값을 파라미터블럭(360)으로부터 불러와 공유메모리(도 1의 170)에 "쓰기"를 할 수 있게 된다. 또한 공유메모리에 기록된 객체정보를 가져가도록 네트워크 인터페이스(도 1의 180)에게 객체 전송제어신호를 보낸다.
도 4는 공유 플러그인의 3D객체 생성모듈이 네트워크 인터페이스로부터 객체정보를 입력받아 공유객체를 생성하는 클래스 관계도이다. 작동하는 프로세스를 살펴보면 도 2에서 발생한 3D 공유객체가 서버에 전송되고 이를 다른 여러 공동작업자가 그 3D 공유객체를 전송 받아 공동작업에 참여할 수 있게 되는데, 여기서 서버에 저장되어 있는 3D 공유객체에 대한 정보와 데이터에 대한 수정된 부분의 데이터를 서버로부터 전송 받아 도 2에서 전송하기 위해 추출하고 분해하였던 과정과 반대로 이번에는 이를 조립하고 생성하는 역할을 3D 객체생성모듈이 각 기능별로 클래스화하여 보안된 부분을 생성하는 기능을 담당하게 된다. 이를 설명하면 사용자가 공유 3D객체의 수정된 부분을 확인하고자 팝업메뉴에서 이를 전송받고자 한다면 플러그인 객체 공유기능(400)은 팝업메뉴로부터 명령을 받아 이를 네트워크 인터페이스(180)에게 알리고 네트워크 인터페이스(180)는 서버로부터 네트워크를 통하여 전송받을 정보를 요청하고 전송받은 정보를 공유메모리(170)에 기록한 후, 3D 스튜디오 맥스 시스템에 객체정보수신 메시지를 보내어 플러그인 객체공유기능(400)이 작동되도록 한다. 이러한 과정이 진행되는 일련의 작동순서로는 처음에 사용자가 요청명령을 유저인터페이스를 통해 내리면 수신관리자(CRecieveManager) 클래스(410)는 이를 분석한다. 3D 객체생성모듈은 도 2의 3D 객체정보추출모듈과 비슷한 구조로 이를 기능별로 클래스화한 것이 도 3인데 이는 4개의 클래스 즉, 객체수신(CRecObject) 클래스(420)그룹, 수정자수신(CRecModifier) 클래스(430)그룹, 재질수신(CRecMaterial) 클래스(440)그룹, 그리고 명령수신(CRecCommand) 클래스(450)그룹 등으로 이루어진다. 각각을 더 상세히 설명한다면 객체수신클래스(420)는 원통같은 기하하적 도형의 수신인 경우, 기하학적도형 객체수신(CRGeomObject)클래스(421)가 작동하고, 선과 같은 선형의 수신인 경우, 스프라인 객체수신(CRSPlineObject)클래스(422)가, 도형이나 선같은 것에 빛과 같은 효과를 줄 경우의 수신은 라이트객체수신(CRLightObject)클래스(423)가, 도형에 카메라를 가지고 공간적으로 보는 효과를 준 수신의 경우 카메라객체수신(CRCameraObject)클래스(424)가, 인체와 같이 표면에 굴곡효과를 준 수신의 경우 넙스객체수신(CRNURBSObject)클래스(425)가, 도움자를 사용한 수신의 경우, 도움자객체수신(CRHelperObject)클래스(426)가, 두 객체를 합하여 한 객체로 만든 수신의 경우, 콤파운드객체수신(CRCompundObject)클래스(427)가, 객체의 위치를 XYZ-축의 공간좌표에서 이동한 수신의 경우, 객체포지션수신(CSObjectPosition)클래스(428)가 작동한다. 다음으로 수정자수신(CRecModifier)클래스(430)를 설명하자면, 이 클래스에서는 오브젝트 스페이스편집명령의 수신인 경우, 객체공간수정자수신(CROSModifier)클래스(431)가, 실세계-공간편집명령의 수신인 경우, 실세계-공간수정자수신(CRWSModifier)클래스(432)가 작동하게 된다. 다음으로 재질수신(CRMaterial)클래스그룹(440)을 설명하자면, 이 클래스에서는 객체의 표면에 대하여 어떤 재질을 가한 수신의 경우, 재질수신(CRMaterial)클래스(441)가, 객체의 표면에 대하여 어떤 결이나 특질을 가한 수신의 경우, 텍스춰수신(CRTexture)클래스(442)가 작동하게 된다. 마지막으로 팝업메뉴를 실행하면 발생하는 수신의 경우,명령수신(CRecCommand)클래스그룹(450)으로 여기에는 객체명령수신(CROjectCommand)클래스(451)와 일반명령수신(CRGeneralCommand)클래스(452) 등으로 이루어진다. 3D 객체생성모듈은 수신자로부터 받은 객체정보를 이용하여 파라미터블록(460)을 생성한다.
도 5는 3D객체정보를 공유 메모리로부터 읽어오는 수신자의 구성을 나타내는 클래스 관계도이다. 이러한 수신자(Receiver)의 수신모듈(500)은 도 3의 전송자(Sender)와 비슷한 구조로서 객체수신을 위한 객체수신(CRecObject) 클래스(420)그룹에 대응하는 객체정보수신(CRObjectData)클래스(510), 수정자수신(CRecModifier) 클래스(430)그룹에 대응하는 수정자정보수신(CRObjectData)클래스(520), 재질수신(CRecMaterial) 클래스(440)그룹에 대응하는 재질정보수신(CRecMatData)클래스(530), 그리고명령수신(CRCommand) 클래스(450)그룹에 대응하는 명령정보수신(CRecCommandData)클래스(540) 등으로 이루어진다. 수신자의 수신모듈도 공유메모리수신(CRecSharedMem) 클래스(550)를 상속받아 공유메모리(560)에 접근하여 객체정보를 읽을 수 있으나, 파라미터블록(도 1의 150)에 접근권한은 3D 객체생성모듈이 갖는다.
도 6은 본 발명인 공유 플러그인의 전체구성을 나타내는 클래스 블록도로서, 3D 스튜디오 맥스의 플러그인 SDK(Software Development Kit: 개발도구)를 사용하여 개발한 플러그인의 전체 클래스다이어그램이다.
프론트엔드 콘트롤러 클래스(610)는 프론트엔드 플러그인 생성시 요구되는 기초클래스로 3D 스튜디오 맥스의 유저인터페이스제어(600)에 필요한 기능을 제공한다. 플러그인 공유객체클래스(620)는 프론트엔드 콘트롤러 클래스(610)를 상속하여 생성되었으며, 3D 스튜디오 맥스구동시, 플러그인을 초기화시키는 작업을 수행하고 상위클래스인 프론트엔드 콘트롤러 클래스(FrontEndController)의 메소드(Method)들을 이용하여 유저인터페이스에서 발생한 이벤트를 가로채는 기능을 수행한다. 이에 반해, 명세(明細)클래스(630)는 3D 스튜디오 매스의 구동시 사용되는 본 발명의 플러그인에 대한 상세한 정보를 제공하기 때문에 모든 3D 스튜디오 맥스의 플러그인에서 구현되어야 하며, 플러그인 객체공유 설명클래스(631)는 본 발명에서 개발한 공유플러그인의 정보를 3D 스튜디오 맥스의 유저인터페이스에 제공한다. 그러면, 플러그인 공유객체클래스(620)에 대해 상기 도 2에서 도5까지의내용을 바탕으로 설명한다. 우선 플러그인 공유객체클래스(620)의 변수(Variable)를 참조하는 전송관리자클래스(660)로 이루어지는 클래스그룹(640)과 수신관리자클래스(670)로 이루어지는 클래스그룹(650)으로 구성된다. 이들은 각각 3D 객체의 전송과 수신을 담당하는 클래스로 다음과 같다.
전송관리자클래스(660)/수신관리자클래스(670): 각각의 종류별 3D 스튜디오 맥스 객체의 송/수신을 위해 현재 선택된 객체의 정보를 분석한 후 객체전송클래스(661)/객체수신클래스(671), 수정자전송클래스(662)/수정자수신클래스(672), 재질전송클래스(663)/재질전송클래스(673), 명령전송클래스(664)/명령수신클래스(674)를 사용하여, 객체정보를 추출하여 공유메모리에 기록/읽기를 수행하다.
공유메모리전송클래스(680)/공유메모리수신클래스(690): 객체정보관리부분의 최상위 클래스이며 데이터분석클래스의 공통처리함수를 포함한다. 객체정보접근시 사용되는 도 1의 파라미터블럭(150)에 대한 제어기능을 제공하며 공유메모리(도 1의 170)를 관리한다.
객체전송클래스(661)/객체수신클래스(671): 3D 스튜디오 맥스의 오브젝트에 대한 데이터를 총괄적으로 분석하는 클래스로써 객체전송클래스(661)는 데이터를 전송하며, 객체수신클래스(671)는 공유메모리로부터 입력받은 정보를 사용하여 3D 개체를 생성한다.
수정자전송클래스(672)/수정자수신클래스(672):3D객체의 수정자(Modifier)에 대한 데이터를 분석하는 클래스로써 수정자전송클래스(662)는 수정자에 대한 전송을 담당하며, 수정자수신클래스(672)는 수정자 데이터를 수신하여 분석한다.
재질전송클래스(663)/재질전송클래스(673):객체의 재질(Material)/텍스춰(Texture)에 대한 데이터를 분석한다.
명령전송클래스(664)/명령수신클래스(674): 각종 3D 스튜디오 맥스의 외부/내부 명령어(렌더링(Rendering), 리셋(Reset) 등)를 전송, 수신한다.
객체전송정보클래스(681)/객체수신정보클래스(691): 3D 스튜디오 맥스의 3D객체(프리미티브 오브젝트(Primitive Object), 익스텐디드 프리미티브 오브젝트(Extended Primitive Object), 셰이프 오브젝트(Shape Object), 콤파운드 오브젝트(Compound Object), 넙스 오브젝트(NUMBS Object), 도움자 오브젝트(Helper Object), 카메라 오브젝트(Camera Object), 라이트 오브젝트(Light Object))에 대한 분석모듈을 포함한다.
수정자전송정보클래스(682)/수정자수신정보클래스(692): 3D 스튜디오 맥스의 전송자(객체공간전송자(Object Space Modifier), 실세계공간전송자(Word-Space Modifier))에 대한 분석모듈을 포함한다.
재질전송정보클래스(683)/재질전송정보클래스(693): 3D 스튜디오 맥스의 재질(Material)과 텍스춰(Texture)에 대한 분석모듈을 포함한다.
명령전송정보클래스(684)/명령수신정보클래스(694): 3D 스튜디오 맥스의 내부/외부 명령어들(파일 로딩(File Loading), 뷰포트(Viewport)제어, 초기화, 랜더링)에 대한 분석모듈을 포함한다.
도 7은 3D 스튜디오 맥스의 객체정보를 저장하는 파라미터 배열과 파라미터블럭도의 구조를 나타내는 블록도이다. 파라미터블록(710)은 파라미터 배열(700)의 요소로 사용되며 3D 객체의 종류에 따라 데이터크기가 다르다. 파라미터블럭은 인덱스(700), 데이터형(710), 값(720)으로 구성된다. 인덱스(Index)는 파라미터블럭내의 순서를 의미하고, 데이터형(Data Type)은 값(Value)의 데이터 타입정보를 가지며 값은 데이터형에 따른 실제정보데이터가 기록되어 있다. 3D 스튜디오 맥스에서 파라미터블럭내의 3D객체정보는 5가지의 데이터 타입(TYPE_FLOAT, TYPE_INT, TYPE_RGBA, TYPE_POINT3, TYPE_BOOL)을 갖는다.
이를 설명하면, 1) TYPE_FLOAT :부동소수점값(Floating point value) , 2) TYPE_INT : 정수값(Integer Values), 3) TYPE_POINT3 : 3차원 공간상의 위치정보로 즉, 부동값 X,Y,Z, 4) TYPE_RGBA : 컬러값(빨강, 녹색, 파랑 그리고 알파(alpha channel:투명정보)으로 부동소수점으로 표현됨, 5) TYPE_BOOL : 부울린값(진실/거짓) 즉, 1, 0 등으로 이루어진다.
도 8은 공유 플러그인과 네트워크 인터페이스간의 객체정보를 공유 메모리를 통해 입출력하기 위해 정의한 데이터 포맷을 나타내는 블록도이다. 데이터포맷은 전송되는 객체정보에 따라 아래의 5가지로 구성된다.
(A)는 공유플러그인과 네트워크 인터페이스간의 공유메모리 초기화시 사용되는 총 6바이트의 데이터포맷으로 윈도우즈(Windows)간 통신을 위해 공유플러그인의 윈도우즈 핸들(Windows Handle)과 네트워크 인터페이스의 윈도우즈핸들을 교환하기위해 사용된다. 전송 데이터의 길이정보(2바이트)(800)와 플러그인의 윈도우즈핸들과 네트위크 인터페이스의 윈도우즈 핸들을 구성하는 식별자(2바이트)(801), 윈도우즈 핸들값을 저장하는 윈도우즈 핸들(2바이트)(802)로 정의된다. (A)의 데이터 포맷은 초기화 통신에 만 이용된다.
(B)는 3D 객체정보를 전송할 때 사용되는 데이터 포맷으로 3D객체정보를 구성하는 각 클래스 아이디정보(13바이트)(810), 파라미터 수치값을 저장하고 있는 파라미터블럭정보(n바이트)(811)와 포지션(Position), 로테이션(Rotation), 스케일링(Scaling) 등의 객체에 대한 변형인 정보(m바이트)(812), 노드(오브젝트의 정보를 가지고 있는 저장위치)의 컬러(Color: 12바이트)(813), 이름(k바이트)(814)으로 구성된다. 그리고 여기서 811부터 814까지가 객체에 대한 모든 정보이다.
(C)는 모디파이(Modify)한 객체정보를 전송할 때 사용되는 데이터 포맷으로 노드(오브젝트의 정보를 가지고 있는 저장위치)에 수정자(Modifier)가 적용되었는지 유무(13바이트)(820)와 적용되었다면 적용된 수정자(Modifier)의 개수(n바이트)(821)와 적용된 수정자의 종류를 구성할 수 있는 수정자클래스정보(m바이트)(822), 그리고 수정자의 속성정보를 가지는 파라미터블럭(12바이트)(823)으로 구성된다.
(D)는 노드(오브젝트의 정보를 가지고 있는 저장위치)간의 관계를 정의하는 데이터로 객체의 계층관계를 만들어 준다. 즉, 한 노드(오브젝트의 정보를 가지고 있는 저장위치)를 부모(Parent)노드(a바이트)(830)로 하고 다른 노드를 자식노드(b바이트)(831)로 만들 경우, 이러한 형태의 데이터포맷이 사용된다.
(E)는 부모와 자식노드간의 관계를 제거할 때 자식노드의 이름(c바이트)(840)을 이용하여 분리할 때 쓰이는 데이터 포맷이다.
도 9는 공유 플러그인이 3D 스튜디오 맥스로 로드되는 과정을 보이는 흐름도이다. 초기화 과정에서 도 1의 네트워크 인터페이스(180)와 공유플러그인(102)은 서로간의 통신을 위한 윈도우즈 핸들을 교환하고 공유메모리(170)를 공유하게 되다. 3D 스튜디오 맥스를 실행하기 전에 먼저 네트워크 인터페이스는 공유메모리를 맵핑하여 공유메모리에 자신의 윈도우즈 핸들을 기록하고(단계 S900), 3D 스튜디오 맥스를 실행하면 공유플러그인이 로딩(Loading)된다(단계 S910). 공유플러그인의 로딩과 더불어 공유플러그인에게 3D 스튜디오 맥스에 접근할 수 있도록 3D 스튜디오 맥스 참조인터페이스 클래스를 전달한다. 이때, 공유플러그인은 네트워크 인터페이스와 통신하기 위한 네트워크 인터페이스의 윈도우즈 핸들을 공유메모리로부터 읽어오고(단계 S920), 자신의 윈도우즈 핸들을 공유메모리에 기록한다(단계 S930). 그런 다음, 공유플러그인이 네트워크 인터페이스에게 읽기를 요청하면(단계 S940), 네트워크 인터페이스는 공유메모리로부터 3D 스튜디오 맥스의 윈도우즈 핸들을 읽어온다(단계 S950).
도 10은 3D객체정보 추출과 전송과정을 보이는 흐름도이다. 사용자가 유저인터페이스상의 뷰포트에서 공유객체를 선택한 다음 추가된 유저인터페이스의 팝업메뉴를 선택한다. 이에 따라 공유플러그인이 작동되면 3D 객체정보추출 모듈의 전송관리자클래스는 사용자 요청을 분석하고(단계 S1000), 파라미터블록으로부터 파라미터정보를 추출하며(단계 S1010), 3D 스튜디오 맥스 참조인터페이스 클래스(Reference of Interface)로부터도 객체정보를 추출한 뒤(단계 S1020), 그 정보를 전송자(Sender)에게 전송한다(단계 S1030). 전송자는 받은 정보를 공유메모리에 기록한다(단계 S1040). 그런 다음, 네트워크 인터페이스에게 공유메모리의 정보를 읽도록 요청하면(단계 S1050) 네트워크 인터페이스는 공유메모리의 정보를 읽어들여(단계 S1060) 네트워크 망을 통하여 서버로 전송한다(단계 S1070).
도 11은 네트워크를 통해 객체정보를 수신받아 3D객체가 생성되는 것을 보이는 흐름도이다. 네트워크 인터페이스는 객체정보를 수신받아 3D객체가 생성되는 흐름도이다. 네트워크 인터페이스는 객체정보를 수신받아 공유메모리에 저장하고(단계 S1100), 공유플러그인에게 객체정보수신을 알린다(단계 S1110). 공유플러그인은 공유메모리로부터 정보를 읽은 후(단계 S1120), 이를 이용하여 파라미터를 포함한 3D객체를 생성한다(단계 S1130). 이에 의하여 객체를 화면을 출력하기 위해 뷰포트를 다시 그려준다(단계 S1140).
도 12는 시간의 흐름에 따른 데이터 흐름과 제어 신호 흐름을 나타내는 도면으로서, 시간에 따른 데이터의 이동방향과 제어신호 방향을 표시하였다. 우선 이러한 신호흐름을 구성하는 요소들은 네 가지가 있는데 3D 스튜디오 맥스 공유플러그인, 공유메모리, 네트워크 인터페이스, 서버 등으로 이루어지고 이들에 의해 발생하는 것을 크게 3부분으로 나눌 수 있다. 즉, 초기작업, 객체송신, 그리고 객체수신이다.
그러면 초기작업부터 설명하면 네트워크 인터페이스는 3D 스튜디오 맥스 공유플러그인과 통신하기 위한 윈도우즈 핸들(Windows Handle: 윈도우즈간 통신을 위한 함수)을 공유메모리에 저장한다(①). 이렇게 저장되어 있는 윈도우즈 핸들을 3D 스튜디오 맥스 공유플러그인은 공유메모리로부터 읽어들인다(②). 이를 3D 스튜디오 맥스 공유플러그인이 서로간의 통신이 가능하도록 하기 위해 윈도우즈 핸들을 공유메모리에 자신의 윈도우즈 핸들을 저장하고(③), 이를 3D 스튜디오 플러그인은 네트워크 인터페이스에게 자신의 윈도우즈 핸들이 공유메모리에 있음을 알리고 읽기를 요청한다(④). 이에 따라, 요청받은 네트워크인터페이스는 공유메모리에 3D 스튜디오 맥스 공유플러그인이 기록한 윈도우즈 핸들를 읽어들인다(⑤. 이러한 과정이 진행되면서 플러그인과 인터페이스간의 통신이 초기화되게 된다. 이렇게 통신 초기화가 이루어지면 3D 스튜디오 맥스 공유플러그인은 유저인터페이스에 의하여 공유객체에 대한 변경된 내용들을 3D 객체정보 추출모듈이 클래스별로 분류하여 파라미터값과 함께 보낼 3D 객체정보를 공유메모리에 기록한다(⑥). 이와 함께 네트워크 인터페이스에게 3D 객체정보가 공유메모리에 있음을 알리고 이를 읽어가도록 요청한다(⑦). 이를 통지받은 네트워크 인터페이스는 공유메모리로부터 읽어들여(⑧) 네트워크를 통하여 서버에 전송한다(⑨).
서버는 이러한 3D 객체정보를 데이터베이스에 저장하고 있다가 요청하는 사용자에게 전송하게 되며 다른 이용자에 의하여 변경된 3D 객체정보를 사용자가 요구하면 이를 네트워크 인터페이스에게 전송하게 된다. 네트워크 인터페이스는 이러한 3D 객체정보를 수신하여(⑩), 이를 공유메모리에 3D 객체정보를 기록한다(⑪). 이와 함께 3D 객체정보가 공유메모리에 저장되어 있음을 3D 스튜디오 맥스 공유플러그인에게 통지하여 읽기요청을 한다(⑫). 이러한 요청을 받은 3D 스튜디오 맥스 공유플러그인은 공유메모리로부터 3D 객체정보를 읽어온다(⑬).
도 13은 본 발명인 공유플러그인이 3D 스튜디오 맥스에서 어떻게 실현되는 가를 보여주는 화면예이다. 본 화면은 유저인터페이스(User Interface)로 뷰포트(Viewport; 객체를 만들거나 수정하는 등 모든 작업을 수행하는 곳)(1300)에서 실제 작업이 이루어 지게 된다. 그리고 본 발명인 공유플러그인을 설치하면 뷰포트화면상에 지정된 키를 누르면 윈팝업메뉴(1310)로 나타나게 되는데 여기서는 간단하게 객체와 명령으로 이루어져 있고 1320과 1330처럼 여러 가지 선택바(Bar)가 나타난다.
도 14는 3D 공유객체를 가지고 공동작업을 하는 하나의 예를 보여주는 화면예이다. 화이트보드를 통하여 지금 공동협력중인 제품의 화면(1400)을 보면서 몇 개의 제품에 대한 디자인을 파일옵션창(1420)을 통하여 확인할 수 도있다. 또한, 회원관리창(1410)을 통하여 동일 프로젝트에 참여하는 사용자들을 볼 수 도있으며 채팅창(1430)을 통하여 공동작업자들끼리 화면을 통하여 수시로 한 객체에 대하여수정을 가하면서 의견을 나눌 수 있고(1450), 3D 스튜디오 맥스 유저인터페이스(1440)를 보면서 공유객체를 수정할 수 도있다.
이상 본 발명을 바람직한 실시예를 사용하여 상세히 설명하였지만, 본 발명의 범위는 특정 실시예에 한정되는 것은 아니며, 첨부된 특허 청구범위에 의하여 해석되어야 할 것이다. 또한, 이 기술분야에서 통상의 지식을 습득한 자라면, 본 발명의 범위에서 벗어나지 않으면서도 많은 수정과 변형이 가능함을 이해해야 할 것이다.
이상에서 설명한 바와 같이 본 발명은, 단일 컴퓨터 시스템에서 수행되는 3D 스튜디오 맥스 작업을 분산환경에서 공동협력작업으로 할 수 있게 확장시킴으로서, 3D 모델링 작업시 시간과 공간의 제약을 최소화하여 경제적 절감효과가 있다.

Claims (8)

  1. 삭제
  2. 3D 스튜디오 맥스의 공유플러그인을 이용하여 네트워크 망에서 공동작업을 하는 방법을 제공함에 있어서,
    팝업메뉴의 편집명령에 의하여 공유플러그인의 객체에 대한 공유기능이 작동함에 따라, 객체에 대한 정보를 추출하는 객체전송클래스, 객체에 대한 변형의 정보를 추출하는 수정자전송클래스, 객체에 대한 재질정보를 추출하는 재질전송클래스, 팝업메뉴에서 행한 명령에 대한 정보를 추출하는 명령전송클래스로 이루어진 3D 객체정보추출모듈이 파라미터블럭으로부터 공유 3D객체의 파라미터정보를 추출하여 공유메모리에 보내는 제 1 단계;
    상기 공유메모리에 있는 상기 추출정보를 네트워크 인터페이스가 서버의 데이터베이스에 저장하는 제 2 단계;
    사용자가 상기 서버에 로그인하여 상기 데이터베이스에 있는 상기 추출한 정보를 요청함에 따라, 상기 서버의 네트워크 인터페이스가 상기 추출정보를 공유메모리에 전송하는 제 3 단계;
    상기 공유메모리에 있는 상기 전송된 정보를, 객체에 대한 정보를 추출하는 객체수신클래스, 객체에 대한 변형의 정보를 추출하는 수정자수신클래스, 객체에 대한 재질정보를 추출하는 재질수신클래스, 팝업메뉴에서 행한 명령에 대한 정보를 추출하는 명령수신클래스로 이루어진 3D 객체 생성모듈이 공유 3D 객체로 생성하여 파라미터블럭에 저장하여 상기 이용자에게 제공하는 제 4 단계
    를 포함하여 이루어지는 분산협력 시스템 환경하에서 3D 스튜디오 맥스 플러그인을 이용한 3D객체 공유방법.
  3. 삭제
  4. 제 2 항에 있어서,
    제 2 단계는 공유플러그인과 네트워크 인터페이스간의 공유메모리를 통해서 이루어지는 것을 특징으로 하는 분산협력 시스템 환경하에서 3D 스튜디오 맥스 플러그인을 이용한 3D객체 공유방법.
  5. 제 4 항에 있어서,
    공유플러그인과 네트워크 인터페이스의 공유메모리를 통한 3D 객체전송방법에는 5가지의 데이터형을 특징으로 하며 각각 공유플러그인과 네트워크 인터페이스간의 공유메모리 초기화에 이용되는 첫 번째 데이터형, 3D 객체정보를 전송할 때 사용되는 두 번째 데이터형, 모디파이(Modify) 객체정보를 전송할 때 사용되는 세 번째 데이터형, 데이터의 부모계층관계를 만들어주는 네 번째 데이터형, 부모계층관계를 제거하는 다섯 번째 데이터형으로 구성되는 것을 특징으로 하는 분산협력 시스템 환경하에서 3D 스튜디오 맥스 플러그인을 이용한 3D객체 공유방법.
  6. 삭제
  7. 삭제
  8. 제 2 항에 있어서,
    상기 파리미터블럭은 파라미터블럭내의 순서를 의미하는 인덱스(Index), 값(Value)의 데이터 타입정보를 가지는 데이터형(Data Type), 데이터형에 따른 실제정보데이터가 기록되는 값(Value)으로 이루어지며,
    데이터 타입정보는 정수값(Integer Values)을 의미하는 TYPE_INT, 부동소수점값(Floating point value)을 의미하는 TYPE_FLOAT, 컬러값(빨강, 녹색, 파랑 그리고 알파(alpha channel:투명정보)을 의미하는 TYPE_RGBA, 3차원 공간상의 위치정보로 즉, 부동값 x,y,z를 의미하는 TYPE_POINT3, 부울린값(진실/거짓) 즉, 1, 0 등으로 이루어진 값을 의미하는 TYPE_BOOL 등으로 이루어지는 것을 특징으로 하는 분산협력 시스템 환경하에서 3D 스튜디오 맥스 플러그인을 이용한 3D객체 공유방법.
KR1020000027341A 2000-05-22 2000-05-22 분산협력 시스템 환경하에서 쓰리디 스튜디오 맥스플러그인을 이용한 쓰리디 객체 공유방법 KR100366380B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000027341A KR100366380B1 (ko) 2000-05-22 2000-05-22 분산협력 시스템 환경하에서 쓰리디 스튜디오 맥스플러그인을 이용한 쓰리디 객체 공유방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000027341A KR100366380B1 (ko) 2000-05-22 2000-05-22 분산협력 시스템 환경하에서 쓰리디 스튜디오 맥스플러그인을 이용한 쓰리디 객체 공유방법

Publications (2)

Publication Number Publication Date
KR20010106552A KR20010106552A (ko) 2001-12-07
KR100366380B1 true KR100366380B1 (ko) 2002-12-31

Family

ID=19669489

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000027341A KR100366380B1 (ko) 2000-05-22 2000-05-22 분산협력 시스템 환경하에서 쓰리디 스튜디오 맥스플러그인을 이용한 쓰리디 객체 공유방법

Country Status (1)

Country Link
KR (1) KR100366380B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100428710B1 (ko) * 2001-07-18 2004-04-28 한국전자통신연구원 모델링 객체 조립을 통한 모델링 시스템 및 그 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10254720A (ja) * 1997-03-13 1998-09-25 Nippon Telegr & Teleph Corp <Ntt> 排他制御方法及びシステム
US5821925A (en) * 1996-01-26 1998-10-13 Silicon Graphics, Inc. Collaborative work environment supporting three-dimensional objects and multiple remote participants
KR19980073092A (ko) * 1997-03-12 1998-11-05 황대준 협동환경 멀티미디어 응용에서의 화면공유장치 및 그 방법
JP2000105749A (ja) * 1998-09-29 2000-04-11 Fuji Xerox Co Ltd 協調作業支援システムならびに協調作業支援装置および記録媒体
US6061067A (en) * 1996-08-02 2000-05-09 Autodesk, Inc. Applying modifiers to objects based on the types of the objects
KR20010064246A (ko) * 1999-12-27 2001-07-09 오길록 인터넷 공동 작업 그룹 편집기 및 그 운용 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5821925A (en) * 1996-01-26 1998-10-13 Silicon Graphics, Inc. Collaborative work environment supporting three-dimensional objects and multiple remote participants
US6061067A (en) * 1996-08-02 2000-05-09 Autodesk, Inc. Applying modifiers to objects based on the types of the objects
KR19980073092A (ko) * 1997-03-12 1998-11-05 황대준 협동환경 멀티미디어 응용에서의 화면공유장치 및 그 방법
JPH10254720A (ja) * 1997-03-13 1998-09-25 Nippon Telegr & Teleph Corp <Ntt> 排他制御方法及びシステム
JP2000105749A (ja) * 1998-09-29 2000-04-11 Fuji Xerox Co Ltd 協調作業支援システムならびに協調作業支援装置および記録媒体
KR20010064246A (ko) * 1999-12-27 2001-07-09 오길록 인터넷 공동 작업 그룹 편집기 및 그 운용 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100428710B1 (ko) * 2001-07-18 2004-04-28 한국전자통신연구원 모델링 객체 조립을 통한 모델링 시스템 및 그 방법

Also Published As

Publication number Publication date
KR20010106552A (ko) 2001-12-07

Similar Documents

Publication Publication Date Title
US7661071B2 (en) Creation of three-dimensional user interface
Saad et al. Shared understanding in computer-supported collaborative design
US20200356350A1 (en) Methods and Systems for Visual Programming using Polymorphic, Dynamic Multi-Dimensional Structures
US5894310A (en) Intelligent shapes for authoring three-dimensional models
US7337093B2 (en) Systems and methods for collaborative shape and design
Kao et al. Development of a collaborative CAD/CAM system
CN101421761B (zh) 视件和场景图接口
US7433885B2 (en) System and method for multi-dimensional organization, management, and manipulation of data
CN111324965A (zh) 一种基于云的通用参数化模型解析方法及设计系统
Dias et al. mWorld: A multiuser 3D virtual environment
US20090282369A1 (en) System and Method for Muulti-Dimensional Organization, Management, and Manipulation of Remote Data
CN114424190A (zh) 基于制造约束的定制产品的基于角色和属性跟踪协作设计的系统和方法
Kim et al. Middleware-based integration of multiple CAD and PDM systems into virtual reality environment
KR100366380B1 (ko) 분산협력 시스템 환경하에서 쓰리디 스튜디오 맥스플러그인을 이용한 쓰리디 객체 공유방법
Liang et al. Conceptual design system in a Web-based virtual interactive environment for product development
Halper et al. OPENNPAR: a system for developing, programming, and designing non-photorealistic animation and rendering
Smith et al. Collaborative visualeyes
KR20000038102A (ko) 삼차원가상공간구축시스템
Ki et al. Scivis
Wang et al. Development of a web-based customer-oriented interactive virtual environment for mobile phone design
Elmqvist 3Dwm: A platform for research and development of three-dimensional user interfaces
Liu et al. Analytically-defined collaborative shape modeling in VRML
Lu et al. A collaborative scene editor for VRML worlds
McGeer et al. Scalability of collaborative environments
Liang et al. The research of Web-based 3D interactive technology for conceptual design system

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee