KR20240067843A - Method and apparatus for providing streaming service of virtual space 3d contents - Google Patents
Method and apparatus for providing streaming service of virtual space 3d contents Download PDFInfo
- Publication number
- KR20240067843A KR20240067843A KR1020240053711A KR20240053711A KR20240067843A KR 20240067843 A KR20240067843 A KR 20240067843A KR 1020240053711 A KR1020240053711 A KR 1020240053711A KR 20240053711 A KR20240053711 A KR 20240053711A KR 20240067843 A KR20240067843 A KR 20240067843A
- Authority
- KR
- South Korea
- Prior art keywords
- virtual space
- content
- user terminal
- data
- streaming
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 238000009877 rendering Methods 0.000 claims abstract description 27
- 230000004044 response Effects 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 description 98
- 230000008569 process Effects 0.000 description 41
- 238000004806 packaging method and process Methods 0.000 description 33
- 238000012545 processing Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 28
- 238000005516 engineering process Methods 0.000 description 27
- 230000000694 effects Effects 0.000 description 23
- 238000007726 management method Methods 0.000 description 22
- 239000003550 marker Substances 0.000 description 18
- 238000004891 communication Methods 0.000 description 16
- 230000011664 signaling Effects 0.000 description 16
- 238000009826 distribution Methods 0.000 description 13
- 238000003860 storage Methods 0.000 description 11
- 238000000605 extraction Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 9
- 230000004913 activation Effects 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 9
- 230000003993 interaction Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 7
- 238000012536 packaging technology Methods 0.000 description 7
- 238000010276 construction Methods 0.000 description 6
- 230000008676 import Effects 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 230000009467 reduction Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000005315 distribution function Methods 0.000 description 4
- 238000007654 immersion Methods 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000009849 deactivation Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000012858 packaging process Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000006798 recombination Effects 0.000 description 2
- 238000005215 recombination Methods 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001684 chronic effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/122—Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/172—Processing image signals image signals comprising non-image signal components, e.g. headers or format information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/194—Transmission of image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234345—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Processing Or Creating Images (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
Abstract
본 발명의 일실시예에 따른, 서버가 가상 공간 3D 컨텐츠의 스트리밍 서비스를 제공하는 방법은, 사용자 단말로부터 가상 공간 3D 컨텐츠에 대한 접속 요청을 수신하는 단계 및 상기 요청에 대응하여 상기 사용자 단말에게 가상 공간 3D 컨텐츠를 스트리밍으로 제공하는 단계를 포함하되, 상기 가상 공간 3D 컨텐츠는 상기 가상 공간의 360도 x 360도에 해당하는 전 방위를 미리 정해진 크기의 타일(Tile) 단위로 촬영한 타일 이미지가 적어도 하나 이상 결합된 것이고, 상기 가상 공간 3D 콘텐츠를 스트리밍으로 제공하는 단계는, 상기 가상 공간을 적어도 하나 이상의 영역으로 구분하고, 상기 구분된 영역 중 상기 사용자의 가상 공간 내 현재 위치 또는 현재 시선에 상응하는 특정 영역에 대한 적어도 하나 이상의 타일 이미지의 렌더링을 가장 먼저 수행하여 상기 사용자 단말로 제공하는 것을 포함하여 이루어질 수 있다.According to an embodiment of the present invention, a method for a server to provide a streaming service of virtual space 3D content includes receiving a request for access to virtual space 3D content from a user terminal, and providing a virtual space to the user terminal in response to the request. Providing spatial 3D content through streaming, wherein the virtual space 3D content includes at least a tile image captured in tile units of a predetermined size in all directions corresponding to 360 degrees x 360 degrees of the virtual space. One or more are combined, and the step of providing the virtual space 3D content by streaming includes dividing the virtual space into at least one area, and among the divided areas, the user's current location in the virtual space or the current gaze corresponding to the user's current gaze. This may include performing rendering of at least one tile image for a specific area first and providing it to the user terminal.
Description
본 발명은 가상 공간 3D 컨텐츠의 스트리밍 서비스 제공 방법 및 이를 위한 장치에 관한 것으로, 보다 상세하게는 가상 공간 3D 콘텐츠를 스트리밍 방식에 따라 사용자 단말로 배포하는 방법 및 이를 위한 장치에 관한 것이다.The present invention relates to a method for providing a streaming service of virtual space 3D content and a device for the same. More specifically, it relates to a method for distributing virtual space 3D content to user terminals according to a streaming method and a device for the same.
HMD(Head-mounted Display), 이동 단말, 360도 카메라 등이 개발되고 보급됨에 따라, 가상현실(Virtual reality), 증강현실(Augmented reality) 또는 혼합현실(Mixed reality) 환경 또한 점점 시장의 주목을 받기 시작 하였으며, 근래에 이르러서는 각 이용 주체가 또 다른 자아 정체성을 가지고 사회, 경제, 교육, 문화, 과학 기술 등의 활동까지 수행할 수 있는 메타버스(Metaverse) 환경이 각광받기 시작하며 그 주목을 이어가고 있다. As HMD (Head-mounted Display), mobile terminals, and 360-degree cameras are developed and distributed, virtual reality, augmented reality, or mixed reality environments are also increasingly receiving market attention. In recent years, the Metaverse environment, where each user can carry out social, economic, educational, cultural, scientific and technological activities with a different self-identity, has begun to receive attention and continues to attract attention. there is.
그런데 메타버스를 포함하는 위와 같은 환경들은, 때로는 경우에 따라 경계가 모호할 수 있지만 결국 본질은 현실세계와는 구분된 일종의 가상세계라고 볼 수 있다. 따라서, 이러한 환경을 이용하는 이용자들에게 현실과 같은 수준 높은 사실감(또는 현실감)을 느끼도록 해주는 것이 필요하며, 나아가 이것이 수반되어야만 더 많은 주목과 함께 더 크게 발전될 수 있을 것임은 자명하다. However, the above environments, including the metaverse, may have ambiguous boundaries in some cases, but in the end, they can be seen as a kind of virtual world separate from the real world. Therefore, it is necessary to provide users who use this environment with a high level of realism (or a sense of reality) similar to reality, and furthermore, it is clear that only if this is accompanied, greater development can be achieved with more attention.
이에, 이를 돕기 위한 수단으로서 기존에 다양한 전용 하드웨어(예컨대, VR, AR 디바이스)들이 출시되기도 하였으나, 대부분 가격이 과도하게 비싸거나 혹은 사용 내지 접근이 어렵다는 한계가 있어, 관련 시장의 일부 매니아들을 제외하고는 이용자들에게 외면 받게 되었다. 사정이 이렇다 보니, 메타버스 환경(예컨대, 로블록스, 제페토 등)은 점차 이들을 배제한 채, 주변에서 쉽게 찾을 수 있고 상대적으로 저렴한 스마트폰, PC, 태블릿 등만을 이용하여 우회적으로 제공되기 시작하였고, 그로 인해 메타버스를 포함하는 위와 같은 가상세계 및 관련 환경들의 건강한 발전 또한 정체되고 있는 실정이다.Accordingly, various dedicated hardware (e.g., VR, AR devices) have been released as a means to help with this, but most of them are either excessively expensive or have limitations in being difficult to use or access, excluding some enthusiasts in the relevant market. was neglected by users. Due to this situation, the metaverse environment (e.g., Roblox, Zepeto, etc.) began to be provided indirectly, using only smartphones, PCs, and tablets that can be found easily and are relatively inexpensive nearby, gradually excluding them. As a result, the healthy development of the above virtual worlds and related environments, including the metaverse, is also at a standstill.
더 나아가, 사용자들에게 제공되는 메타버스 환경이 그들의 몰입도를 높여줄 수 있는 전용 하드웨어들은 배제된 채, 위와 같이 주변에서 쉽게 찾을 수 있는 스마트폰, PC, 태블릿을 통해서만 제공된다면, 이는 디스플레이를 통해 간접적인 체험만 가능한 간접 가상세계에 불과하다고 표현할 수 있을 것이며, 더 나아가 1인칭의 관점으로 직접적인 사실감을 느낄 수 있는 직접 가상세계와는 온전히 구별된다고 볼 것이다.Furthermore, if the metaverse environment provided to users is provided only through smartphones, PCs, and tablets that can be easily found nearby, as above, excluding dedicated hardware that can increase their immersion, this is achieved through displays. It can be described as nothing more than an indirect virtual world in which only indirect experiences are possible, and furthermore, it can be seen as completely distinct from a direct virtual world in which one can feel direct reality from a first-person perspective.
따라서, 직접적으로 사실감을 느낄 수 있는 직접 가상세계를 경험하기 위한 메타버스 환경이 사용자들에게 제공되기 위해서는, 사용자들을 가상세계에 깊이 몰입 시키기 위한 몰입형 가상현실 기술이 뒷받침 되어야 한다고 볼 수 있다.Therefore, in order to provide users with a metaverse environment for experiencing the virtual world directly where they can feel the realism, it can be seen that immersive virtual reality technology must be supported to deeply immerse users in the virtual world.
그렇다면 다시 원점으로 돌아가, 몰입도를 높이기 위한 전용 하드웨어를 이용할 수 밖에 없다 라고 볼 수도 있겠지만, 다른 관점에서 생각해보면 사용자에게 제공되는 콘텐츠를 개선시키는 방법도 고려해볼 수 있을 것이며, 구체적으로는 보다 사실감 있는 몰입형 가상현실 콘텐츠를 제공할 수 있다면 이를 통해서도 사용자들의 몰입도는 충분히 향상될 수 있을 것이다.In that case, you may go back to the beginning and see that you have no choice but to use dedicated hardware to increase immersion, but if you think about it from a different perspective, you can also consider ways to improve the content provided to users, and specifically, to create more realistic If immersive virtual reality content can be provided, users' immersion can be sufficiently improved.
이에, 스마트폰, PC, 태블릿, HMD 등 기존 하드웨어에서도 쉽게 사용할 수 있되, 더 높은 사실감을 주는 몰입형 가상현실 콘텐츠를 제작할 수 있는 기술이 요구된다고 볼 수 있으며, 더 나아가서는 제작된 위 콘텐츠를 다양한 산업영역의 니즈에 상응할 수 있는 단위 기술과 결합시켜 배포하는 기술 또한 해당 산업의 건강한 발전과 활성화를 위해 요구된다고 볼 수 있다.Accordingly, it can be seen that technology is required to produce immersive virtual reality content that can be easily used on existing hardware such as smartphones, PCs, tablets, and HMDs, but also provides a higher sense of realism. Furthermore, the content produced above can be used in various ways. Technology that can be distributed in combination with unit technology that can correspond to the needs of the industrial area can also be seen as required for the healthy development and revitalization of the industry.
이러한 현실적 요구가 반영되어, 가상 공간을 구축하고 관련 콘텐츠에 더 나은 실감 효과를 부여하기 위한 저작 소프트웨어가 개발되었던 사실도 있다. 구체적으로, VR 기술과 360도 촬영이미지를 이용하여 가상 공간을 구축하기 위한 에디팅 툴과, 3D 비디오 게임, 3D 애니메이션, 3D 건축 시각화 등에 실감 효과를 부여하기 위한 유니티(Unity), 언리얼(Unreal) 등의 저작 소프트웨어 등이 그 예시라고 볼 수 있다.In response to these realistic demands, authoring software has been developed to build virtual spaces and provide better realistic effects to related content. Specifically, editing tools for building virtual spaces using VR technology and 360-degree images, and Unity and Unreal for providing realistic effects to 3D video games, 3D animation, and 3D architectural visualization. 's authoring software can be seen as an example.
그러나, 위와 같은 종래의 방식, 즉, 360도 이미지를 이용하는 가상 공간 구축 방식은, 촬영을 위한 실제 공간이 필요하기 때문에 공간 상의 제약이 있으며, 더 나아가서는 그로 인해 구현될 수 있는 공간 또한 제한적일 수 밖에 없다는 한계가 있다. 또한, 이를 극복하기 위해 360도 이미지를 모두 컴퓨터 그래픽으로 제작한다고 하더라도 뷰포인트 만큼 이미지를 제작해야 하기 때문에 부하가 상당해질뿐더러, 한번 이미지를 제작한 이후에는 세부적인 수정이 어려운 문제점이 있다. 아울러, 종래의 저작 소프트웨어들은 로컬 PC에서 가상현실 콘텐츠를 제작하고 이를 웹으로 업로드 하는 방식을 이용하기 때문에, 필연적으로 과도한 네트워크 트래픽이 요구된다는 고질적인 문제점이 있었다.However, the conventional method described above, that is, the method of constructing a virtual space using 360-degree images, has spatial limitations because it requires a real space for filming, and furthermore, the space that can be implemented is also limited. There is a limit. In addition, even if all 360-degree images are produced using computer graphics to overcome this, not only does the load increase significantly because images as many as the viewpoints must be produced, but there is also the problem of making detailed modifications difficult once the image has been produced. In addition, because conventional authoring software uses a method of creating virtual reality content on a local PC and uploading it to the web, there is a chronic problem that excessive network traffic is inevitably required.
따라서, 위와 같은 문제들을 해결하기 위한 방법이 요구되고 있는 실정이며, 이에 본 발명에서는 웹을 기반으로 하여 가상 공간을 구축하기 위한 3D 데이터 패키징 서비스를 제공하는 방법 및 그 결과물을 배포하기 위한 스트리밍 서비스를 제공하는 방법을 제안한다.Accordingly, there is a need for a method to solve the above problems, and the present invention provides a method for providing a 3D data packaging service for building a virtual space based on the web and a streaming service for distributing the result. Suggest a way to provide it.
상기한 종래 문제점을 해소하기 위하여, 본 발명의 일과제는 웹 기반 가상 공간 3D 콘텐츠의 패키징 및 그 결과물의 배포를 위한 스트리밍 기술을 제공하는 것이다.In order to solve the above-described conventional problems, the work of the present invention is to provide streaming technology for packaging web-based virtual space 3D content and distributing the result.
본 발명의 다른 일 과제는, 스마트폰, PC, 태블릿, HMD 등 기존 하드웨어에서도 쉽게 사용할 수 있되, 더 높은 사실감을 주는 몰입형 가상 공간 콘텐츠를 제작할 수 있는 가상 공간 3D 콘텐츠의 패키징 및 스트리밍 기술을 제공하는 것이다.Another task of the present invention is to provide packaging and streaming technology for virtual space 3D content that can be easily used on existing hardware such as smartphones, PCs, tablets, and HMDs, and can produce immersive virtual space content with greater realism. It is done.
본 발명의 또 다른 일 과제는, 3D 가상 공간 콘텐츠를 다양한 산업영역의 니즈에 상응할 수 있는 단위 기술과 결합시켜 배포할 수 있도록 하기 위해 모듈 단위로 기능을 제공하는 웹 기반 가상 공간 3D 콘텐츠의 패키징 및 스트리밍 기술을 제공하는 것이다.Another task of the present invention is the packaging of web-based virtual space 3D content that provides functions on a module basis so that 3D virtual space content can be distributed by combining it with unit technology that can correspond to the needs of various industrial areas. and streaming technology.
본 발명의 다른 일 과제는, 가상 공간을 구축하기 위한 3D 데이터 패키징 및 그 결과물인 3D 콘텐츠의 웹 배포를 위해 이미지 및 객체 데이터의 경량화 기술을 제공하는 것이다.Another task of the present invention is to provide a lightweight technology for image and object data for 3D data packaging for building a virtual space and web distribution of the resulting 3D content.
본 발명에서 이루고자 하는 기술적 과제들은 상기 기술적 과제로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved in the present invention are not limited to the above technical problems, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.
상술한 문제점을 해결하기 위한 본 발명의 일실시예에 따른 서버가 가상 공간 3D 컨텐츠의 스트리밍 서비스를 제공하는 방법은, 사용자 단말로부터 가상 공간 3D 컨텐츠에 대한 접속 요청을 수신하는 단계 및 상기 요청에 대응하여 상기 사용자 단말에게 가상 공간 3D 컨텐츠를 스트리밍으로 제공하는 단계를 포함하되, 상기 가상 공간 3D 컨텐츠는 상기 가상 공간의 360도 x 360도에 해당하는 전 방위를 미리 정해진 크기의 타일(Tile) 단위로 촬영한 타일 이미지가 적어도 하나 이상 결합된 것이고, 상기 가상 공간 3D 콘텐츠를 스트리밍으로 제공하는 단계는, 상기 가상 공간을 적어도 하나 이상의 영역으로 구분하고, 상기 구분된 영역 중 상기 사용자의 가상 공간 내 현재 위치 또는 현재 시선에 상응하는 특정 영역에 대한 적어도 하나 이상의 타일 이미지의 렌더링을 가장 먼저 수행하여 상기 사용자 단말로 제공하는 것을 포함할 수 있다.A method for a server to provide a streaming service of virtual space 3D content according to an embodiment of the present invention to solve the above-described problem includes receiving a connection request for virtual space 3D content from a user terminal and responding to the request. and providing streaming virtual space 3D content to the user terminal, wherein the virtual space 3D content is divided into tiles of a predetermined size in all directions corresponding to 360 degrees x 360 degrees of the virtual space. At least one captured tile image is combined, and the step of providing the virtual space 3D content through streaming includes dividing the virtual space into at least one area, and selecting the user's current location in the virtual space among the divided areas. Alternatively, it may include first performing rendering of at least one tile image for a specific area corresponding to the current gaze and providing the rendering to the user terminal.
본 발명의 일실시예에 따르면, 상기 가상 공간을 적어도 하나 이상의 영역으로 구분하는 것은, 상기 가상 공간을 서로 같은 크기 또는 서로 다른 크기를 갖는 육면체에 상응하는 큐브(Cube) 형태로 구분하여 상기 가상 공간을 서로 같은 크기 또는 서로 다른 크기를 갖는 6개의 영역으로 구분하는 것을 포함할 수 있다.According to one embodiment of the present invention, dividing the virtual space into at least one area includes dividing the virtual space into cubes corresponding to hexahedrons of the same size or different sizes. It may include dividing the area into six areas of the same size or different sizes.
본 발명의 일실시예에 따르면, 상기 가상 공간 내에서 상기 사용자의 위치 또는 시선이 이동되는 경우, 상기 구분된 영역 중 상기 이동된 위치 또는 이동된 시선에 상응하는 이동 영역에 대한 적어도 하나 이상의 타일 이미지의 렌더링을 수행하여 상기 사용자 단말로 제공할 수 있다.According to an embodiment of the present invention, when the user's position or gaze moves within the virtual space, at least one tile image for a moving area corresponding to the moved position or shifted gaze among the divided areas Rendering may be performed and provided to the user terminal.
본 발명의 일실시예에 따르면, 상기 구분된 영역 중 상기 특정 영역을 제외한 나머지 영역에 대한 적어도 하나 이상의 타일 이미지에 대해서는, 상기 특정 영역에 대한 타일 이미지의 렌더링을 수행한 이후, 미리 정해진 기준에 따라 순차적으로 렌더링을 수행하여 상기 사용자 단말로 제공할 수 있다.According to an embodiment of the present invention, for at least one tile image for the remaining areas excluding the specific area among the divided areas, after performing rendering of the tile image for the specific area, according to a predetermined standard. Rendering may be performed sequentially and provided to the user terminal.
본 발명의 일실시예에 따르면, 상기 특정 영역에 대한 적어도 하나 이상의 타일 이미지는 미리 정해진 수준의 고해상도 렌더링을 수행하고, 상기 나머지 영역에 대한 적어도 하나 이상의 타일 이미지는 미리 정해진 수준의 중해상도 또는 저해상도 렌더링을 수행할 수 있다.According to an embodiment of the present invention, at least one tile image for the specific area performs high-resolution rendering at a predetermined level, and at least one tile image for the remaining area performs medium- or low-resolution rendering at a predetermined level. can be performed.
본 발명의 일실시예에 따르면, 상기 가상 공간 3D 컨텐츠에 대한 접속 요청은, 상기 가상 공간 3D 콘텐츠에 대한 플레이어(Player)를 통해 상기 사용자 단말이 상기 가상 공간에 대한 접속을 요청하는 경우 또는 상기 사용자 단말이 상기 가상 공간 3D 콘텐츠에 대한 URL 주소를 통해 상기 가상 공간에 대한 접속을 요청하는 경우를 포함할 수 있다.According to an embodiment of the present invention, the request for access to the virtual space 3D content occurs when the user terminal requests access to the virtual space through a player for the virtual space 3D content, or the user This may include a case where the terminal requests access to the virtual space through a URL address for the virtual space 3D content.
상술한 문제점을 해결하기 위한 본 발명의 일실시예에 따른, 가상 공간 3D 컨텐츠의 스트리밍 서비스를 제공하는 장치는, 가상 공간 3D 컨텐츠를 포함하고 있는 메모리부 및 제어부를 포함하되, 상기 제어부는 사용자 단말로부터 가상 공간 3D 컨텐츠에 대한 접속 요청을 수신하고, 상기 요청에 대응하여 상기 사용자 단말에게 가상 공간 3D 컨텐츠를 스트리밍으로 제공하도록 제어하되, 상기 가상 공간 3D 컨텐츠는 상기 가상 공간의 360도 x 360도에 해당하는 전 방위를 미리 정해진 크기의 타일(Tile) 단위로 촬영한 타일 이미지가 적어도 하나 이상 결합된 것이고, 상기 제어부가 상기 가상 공간 3D 콘텐츠를 스트리밍으로 제공하도록 제어하는 것은, 상기 가상 공간을 적어도 하나 이상의 영역으로 구분하고, 상기 구분된 영역 중 상기 사용자의 가상 공간 내 현재 위치 또는 현재 시선에 상응하는 특정 영역에 대한 적어도 하나 이상의 타일 이미지에 대해 미리 정해진 수준의 고해상도 렌더링을 수행하여 상기 사용자 단말로 제공하는 것을 포함할 수 있다.According to an embodiment of the present invention to solve the above-described problem, a device for providing a streaming service of virtual space 3D content includes a memory unit containing virtual space 3D content and a control unit, wherein the control unit includes a user terminal. Receiving a request for access to virtual space 3D content from and controlling to provide streaming virtual space 3D content to the user terminal in response to the request, wherein the virtual space 3D content is provided in 360 degrees x 360 degrees of the virtual space At least one tile image taken in the corresponding entire direction in units of tiles of a predetermined size is combined, and the controller controls the provision of the virtual space 3D content by streaming to create at least one tile image of the virtual space. Divide into the above areas, perform high-resolution rendering at a predetermined level on at least one tile image for a specific area corresponding to the current location or current gaze in the virtual space of the user among the divided areas, and provide the image to the user terminal. It may include:
상기와 같은 본 발명에 따르면 아래에 기재된 효과를 얻을 수 있다. 다만, 본 발명을 통해 얻을 수 있는 효과는 이에 제한되지 않는다.According to the present invention as described above, the effects described below can be obtained. However, the effects that can be achieved through the present invention are not limited to this.
첫째, 가상 공간 서비스를 제공하기 위한 3D 콘텐츠를 실시간 스트리밍 서비스(streaming service)로 제공할 수 있는 효과가 있다.First, there is an effect of providing 3D content to provide virtual space services as a real-time streaming service.
둘째, 가상 공간 구축을 위한 3D 데이터의 패키징 기술을 제공할 수 있는 효과가 있다.Second, it has the effect of providing packaging technology for 3D data for building virtual spaces.
셋째, 스마트폰, PC, 태블릿, HMD 등 기존 하드웨어에서도 쉽게 사용할 수 있되, 더 높은 사실감을 주는 몰입형 가상 공간 콘텐츠를 제작할 수 있는 가상 공간 3D 콘텐츠의 패키징 및 스트리밍 기술을 제공할 수 있는 효과가 있다.Third, it can be easily used on existing hardware such as smartphones, PCs, tablets, and HMDs, but has the effect of providing packaging and streaming technology for virtual space 3D content that can produce immersive virtual space content with greater realism. .
넷째, 3D 가상 공간 콘텐츠를 다양한 산업영역의 니즈에 상응할 수 있는 단위 기술과 결합시켜 배포할 수 있도록 하기 위해 모듈 단위로 기능을 제공하는 가상 공간 구축 및 제어를 위한 웹 기반 3D 콘텐츠의 패키징 및 스트리밍 기술을 제공할 수 있는 효과가 있다.Fourth, packaging and streaming of web-based 3D content for building and controlling virtual space that provides functions in module units to enable distribution of 3D virtual space content by combining it with unit technology that can correspond to the needs of various industrial areas. There is an effect of providing technology.
다섯째, 가상 공간을 구축하기 위한 3D 데이터 패키징 및 그 결과물인 3D 콘텐츠의 웹 배포를 위해 이미지 및 객체 데이터의 경량화 기술을 제공할 수 있는 효과가 있다.Fifth, it has the effect of providing lightweight technology for image and object data for 3D data packaging to build a virtual space and web distribution of the resulting 3D content.
도 1은 본 발명의 일실시예에 따른 웹을 기반으로 가상 공간을 구축하기 위한 3D 데이터 패키징 및 스트리밍 서비스 처리 시스템을 설명하기 위해 도시한 개략도이다.
도 2는 본 발명의 일실시예에 따른 실시간 3D 모델링 데이터 자동 추출 기능을 설명하기 위한 도면이다.
도 3은 본 발명과 종래 기술의 위신호 제거 효과의 차이를 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따라 빛 조사가 포함된 실시간 360도 이미지를 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따라 실시간 360도 이미지를 서로 다른 해상도를 나타내는 3개의 단계로 구분하되 이들을 타일링하여 저장하는 방식을 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 따라 정점 감소를 위한 파일 포맷 컨버팅 단계를 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예에 따라 정점 그룹화 단계를 설명하기 위한 도면이다.
도 8은 본 발명의 일실시예에 따라 실시간 360도 이미지를 재조합 하기 위한 큐브릭 렌더링 방식을 설명하기 위한 도면이다.
도 9는 본 발명의 일실시예에 따른 실시간 360도 이미지와 종래 기술인 360도 이미지의 로딩 시간 및 데이터 소모량을 비교한 도면이다.
도 10은 본 발명의 일실시예에 따른 실시간 360도 이미지와 3D 정보의 매칭을 설명하기 위한 도면이다.
도 11은 본 발명의 일실시예에 따른 마우스 포인터를 이용한 공간 이동 방법을 설명하기 위한 도면이다.
도 12는 본 발명의 일실시예에 따른 웹 기반 가상 공간 구축을 위한 3D 콘텐츠 패키징 서비스를 위한 서버의 구성 블록도이다.
도 13은 본 발명의 일실시예에 따른 프로세서의 상세 구성 블록도이다.
도 14 내지 도 15는 본 발명의 일실시예에 따른 웹 기반 가상 공간 구축을 위한 3D 콘텐츠 패키징 처리 과정을 설명하기 위해 도시한 순서도이다.
도 16는 본 발명의 일실시예에 따른 3D 가상 공간 콘텐츠 스트리밍 서비스를 위한 서버의 구성 블록도이다.
도 17은 본 발명의 일실시예에 따른 3D 가상 공간 콘텐츠 파일 처리 과정을 설명하기 위해 도시한 순서도이다.
도 18은 본 발명의 일실시예에 따른 프레임워크의 전체 아키텍쳐를 도시한 도면이다.
도 19 내지 30은 본 발명의 일실시예에 따라 각 시나리오에 따른 빅데이터 스트리밍 처리 과정을 설명하기 위해 도시한 도면이다.
도 31 내지 33은 본 발명의 일실시예에 따른 웹 기반 가상 공간 3D 콘텐츠 패키징 및 스트리밍 서비스를 제공하기 위한 사용자 인터페이스를 도시한 도면이다.
도 34는 본 발명의 일실시예에 따른 3D 콘텐츠 데이터 처리 과정을 설명하기 위해 도시한 순서도이다.
도 35는 본 발명의 일실시예에 따른 서버의 구성 블록도를 설명하기 위한 도면이다.1 is a schematic diagram illustrating a 3D data packaging and streaming service processing system for building a virtual space based on the web according to an embodiment of the present invention.
Figure 2 is a diagram for explaining the automatic extraction function of real-time 3D modeling data according to an embodiment of the present invention.
Figure 3 is a diagram to explain the difference in the false signal removal effect between the present invention and the prior art.
Figure 4 is a diagram for explaining a real-time 360-degree image including light irradiation according to an embodiment of the present invention.
Figure 5 is a diagram to explain a method of dividing a real-time 360-degree image into three stages with different resolutions and tiling them to store them, according to an embodiment of the present invention.
FIG. 6 is a diagram illustrating a file format conversion step for vertex reduction according to an embodiment of the present invention.
Figure 7 is a diagram for explaining the vertex grouping step according to an embodiment of the present invention.
Figure 8 is a diagram for explaining the Kubrick rendering method for recombining real-time 360-degree images according to an embodiment of the present invention.
Figure 9 is a diagram comparing the loading time and data consumption of a real-time 360-degree image according to an embodiment of the present invention and a 360-degree image of the prior art.
Figure 10 is a diagram illustrating matching between a real-time 360-degree image and 3D information according to an embodiment of the present invention.
Figure 11 is a diagram for explaining a spatial movement method using a mouse pointer according to an embodiment of the present invention.
Figure 12 is a block diagram of the configuration of a server for a 3D content packaging service for building a web-based virtual space according to an embodiment of the present invention.
Figure 13 is a detailed block diagram of a processor according to an embodiment of the present invention.
Figures 14 and 15 are flowcharts showing a 3D content packaging process for building a web-based virtual space according to an embodiment of the present invention.
Figure 16 is a block diagram of a server for 3D virtual space content streaming service according to an embodiment of the present invention.
Figure 17 is a flowchart illustrating the 3D virtual space content file processing process according to an embodiment of the present invention.
Figure 18 is a diagram showing the overall architecture of the framework according to an embodiment of the present invention.
Figures 19 to 30 are diagrams to explain the big data streaming processing process according to each scenario according to an embodiment of the present invention.
31 to 33 are diagrams illustrating a user interface for providing web-based virtual space 3D content packaging and streaming services according to an embodiment of the present invention.
Figure 34 is a flow chart illustrating the 3D content data processing process according to an embodiment of the present invention.
Figure 35 is a diagram for explaining a configuration block diagram of a server according to an embodiment of the present invention.
이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the attached drawings. The detailed description set forth below in conjunction with the accompanying drawings is intended to illustrate exemplary embodiments of the invention and is not intended to represent the only embodiments in which the invention may be practiced.
단지 본 실시예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전히 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.These embodiments are provided solely to ensure that the disclosure of the present invention is complete and to fully inform those skilled in the art of the present invention of the scope of the invention, and that the present invention will be defined by the scope of the claims. It's just that.
몇몇의 경우, 본 발명의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시될 수 있다. 또한, 본 명세서 전체에서 동일한 구성요소에 대해서는 동일한 도면 부호를 사용하여 설명한다.In some cases, in order to avoid ambiguity in the concept of the present invention, well-known structures and devices may be omitted or may be shown in block diagram form focusing on the core functions of each structure and device. In addition, the same components are described using the same reference numerals throughout this specification.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(comprising 또는 including)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. Throughout the specification, when a part is said to “comprise or include” a certain element, this means that it does not exclude other elements but may further include other elements, unless specifically stated to the contrary. do.
또한, 명세서에 기재된 "??부"의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 나아가, "일(a 또는 an)", "하나(one)", 및 유사 관련어는 본 발명을 기술하는 문맥에 있어서 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.Additionally, the term "unit" used in the specification refers to a unit that processes at least one function or operation, and may be implemented as hardware, software, or a combination of hardware and software. Furthermore, the terms “a” or “an”, “one”, and similar related terms may be used in the singular and plural in the context of describing the present invention, unless otherwise indicated herein or clearly contradicted by context. It can be used in a meaning that includes.
아울러, 본 발명의 실시예들에서 사용되는 특정(特定) 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.In addition, specific terms used in the embodiments of the present invention are provided to aid understanding of the present invention, and unless otherwise defined, all terms used herein, including technical or scientific terms, refer to the present invention. It has the same meaning as generally understood by those with ordinary knowledge in the technical field to which it belongs. The use of these specific terms may be changed to other forms without departing from the technical spirit of the present invention.
이하에서는, 본 발명에 따른 웹 기반 가상 공간 3D 데이터 패키징 서비스 제공 및 그 결과물인 3D 콘텐츠를 배포(publishing)하기 위한 스트리밍 방법, 장치 및 시스템에 관련된 다양한 실시예를 제공한다. Below, various embodiments related to a streaming method, device, and system for providing a web-based virtual space 3D data packaging service and publishing the resulting 3D content according to the present invention are provided.
특히 본 명세서에서는 플러그인(plug-in) 을 통하여 웹(web)에서 3D 데이터를 패키징(packaging)하되, 이를 사용자 단말에 스트리밍으로 배포(publishing)할 수 있도록 하는 서버(server)를 개시하고, 이를 포함한 3D 데이터 패키징 및 스트리밍 서비스 시스템을 제공한다. 이 때, 상기 서버는 본 발명을 위한 다양한 프로그램이나 소프트웨어 및 하드웨어를 포함할 수 있다. In particular, this specification discloses a server that packages 3D data on the web through a plug-in and distributes it by streaming to a user terminal, including this. Provides 3D data packaging and streaming service system. At this time, the server may include various programs, software, and hardware for the present invention.
이하 본 명세서에서 "콘텐츠"라 함은, 현존하거나 앞으로 개발될 모든 형태의 콘텐츠를 포함하는 것이며, 편의상 3D(3Dimensional) 콘텐츠를 예로 하여 설명하나, 반드시 이에 한정되는 것은 아니다. 또한, 이러한 3D 콘텐츠는 가상현실(VR, Virtual Reality), 가상현실(AR, Augmented Reality), 혼합현실(MR, Mixed Reality), 메타버스(Metaverse) 환경에 따른 가상 공간 그 자체 혹은 이를 위한 콘텐츠를 포함할 수 있다.Hereinafter, the term "content" in this specification includes all forms of content that exist or will be developed in the future, and for convenience, 3D (3Dimensional) content is used as an example, but is not necessarily limited thereto. In addition, such 3D content is a virtual space itself or content for virtual reality (VR), virtual reality (AR), augmented reality (AR), mixed reality (MR), and metaverse environments. It can be included.
한편, 본 명세서에서 사용하는 용어 중 특별히 설명하지 않은 용어와 해당 용어와 관련된 기술은, 공지기술에 따라 해석하거나 공지기술을 참조할 수 있으며, 필요한 내용만을 기술함을 미리 밝혀둔다.Meanwhile, it is noted in advance that among the terms used in this specification, terms that are not specifically explained and technologies related to such terms may be interpreted according to or refer to known technologies, and only necessary content is described.
그 밖에, 본 발명은, 필요에 따라 인공지능(AI, Artificial Intelligence) 기술이나 블록체인(blockchain) 네트워크 기반 등 ICT(Information and Communication Technology) 기술과 접목될 수도 있으며, 관련 기술분야에서 통상의 지식을 가진 자가 위 기술과 접목한 경우 그 접목된 기술은 본 발명의 기술적 범위에 속한다.In addition, the present invention may be combined with ICT (Information and Communication Technology) technology, such as artificial intelligence (AI) technology or blockchain network-based technology, as needed, and general knowledge in the related technology field may be used. If a person has grafted the above technology, the grafted technology falls within the technical scope of the present invention.
첨부된 도면을 참조하여, 본 발명에 따른 웹 기반 가상 공간 3D 데이터 패키징 및 스트리밍 서비스 제공 방법에 대해 설명하면, 다음과 같다.With reference to the attached drawings, a method for packaging and providing a web-based virtual space 3D data and streaming service according to the present invention will be described as follows.
도 1은 본 발명의 일실시예에 따른 웹을 기반으로 가상 공간을 구축하기 위한 3D 데이터 패키징 및 스트리밍 서비스 제공 시스템(1)을 설명하기 위해 도시한 개략도이다.Figure 1 is a schematic diagram illustrating a 3D data packaging and streaming service providing system 1 for building a virtual space based on the web according to an embodiment of the present invention.
도 1을 참조하면, 웹 기반 가상 공간 3D 콘텐츠 패키징 및 스트리밍 서비스 제공 시스템(1)이 도시되어 있으며, 상기 시스템(1)은 사용자 단말1(110), 사용자 단말2(120) 및 서버(130)를 포함하여 구현될 수 있다. 다만, 상기 시스템(1)의 구성은 반드시 이에 한정되는 것은 아니며, 실시예에 따라 하나 또는 그 이상의 다른 구성요소가 더 포함되어 상기 시스템(1)이 구현될 수도 있다. 또한, 설명의 편의상 단말은 2개만 도시하였으나, 이에 한정되지 않는다.Referring to Figure 1, a web-based virtual space 3D content packaging and streaming service providing system 1 is shown, and the system 1 includes user terminal 1 (110), user terminal 2 (120), and server 130. It can be implemented including. However, the configuration of the system 1 is not necessarily limited to this, and the system 1 may be implemented by further including one or more other components depending on the embodiment. Additionally, for convenience of explanation, only two terminals are shown, but this is not limited.
사용자 단말1(110)은 3D 툴을 이용하여 직접 3D 콘텐츠를 제작하되, 상기 제작된 3D 콘텐츠 데이터를 보유(또는 저장)하고 있는 단말을 나타낼 수 있다. 실시예에 따라, 사용자 단말1(110)은 상기 3D 콘텐츠를 직접 제작하진 않았으나, 기 제작된 3D 콘텐츠 데이터를 현재 보유하거나 보유한 매체와 연결되어 상기 기 제작된 3D 콘텐츠 데이터를 전달받는 것이 가능한 디바이스를 나타낼 수 있다.User terminal 1 (110) may represent a terminal that directly produces 3D content using a 3D tool and holds (or stores) the produced 3D content data. Depending on the embodiment, user terminal 1 (110) does not directly produce the 3D content, but is a device capable of receiving the pre-produced 3D content data by being connected to a medium that currently possesses or possesses the pre-produced 3D content data. It can be expressed.
본 명세서에서 기술되는 "3D 툴"은, 게임 엔진(game engine, 예컨대, 언리얼 엔진(Unreal engine) 등)과 오토데스크(Autodesk), 3DS Max, 유니티(Unity), 스케치업과 같은 모델링 프로그램(modeling program) 등을 포함할 수 있다.“3D tools” described in this specification include game engines (e.g., Unreal Engine, etc.) and modeling programs such as Autodesk, 3DS Max, Unity, and SketchUp. ), etc. may be included.
본 발명에 따른 웹 기반 가상 공간 3D 데이터 패키징 서비스를 위해, 사용자 단말1(110)은 본 발명의 시스템(1) 또는 서버(130)에 의해 제공되는 플러그-인(Plug-in)을 다운로드 받아 설치할 수 있다.For the web-based virtual space 3D data packaging service according to the present invention, user terminal 1 (110) downloads and installs a plug-in provided by the system (1) or server 130 of the present invention. You can.
여기에서, 플러그-인 이라 함은, 특정 프로그램의 기능을 보강하기 위해 추가된 프로그램 등을 말하는데, 본 명세서에서 기술되는 "플러그인"은, 다양한 3D 툴로 만들어진 적어도 하나 이상의 3D 데이터를 웹(web)으로 임포트(import)되도록 하되, 이를 3D 콘텐츠 데이터로 컨버팅(converting)하기 위한 다양한 전처리 작업 등의 기능을 수행하는 객체를 말한다. 본 발명의 경우, 단말에서 이용하는 3D 툴 및 OS 등의 종류에 따라 그에 상응하는 타입이나 버전의 플러그-인을 제공할 수 있으며, 이를 통해 상기 서버(130)는 다양한 타입이나 버전의 플러그인을 제공할 수 있고, 상기 단말이 이들 중 하나 이상을 다운로드 받아 설치하도록 할 수 있다. 물론, 하나의 플러그-인만을 제공하고, 이 하나의 플러그-인이 단말에서 이용하는 모든 종류의 3D 툴 및 OS 등에 상응하는 플러그-인이 되도록 할 수도 있다.Here, a plug-in refers to a program added to enhance the function of a specific program. A “plug-in” described in this specification is a program that transmits at least one 3D data created with various 3D tools to the web. It refers to an object that is imported and performs functions such as various preprocessing tasks to convert it into 3D content data. In the case of the present invention, plug-ins of corresponding types or versions can be provided depending on the type of 3D tool or OS used in the terminal, and through this, the server 130 can provide plug-ins of various types or versions. and the terminal can download and install one or more of these. Of course, it is also possible to provide only one plug-in and have this single plug-in correspond to all types of 3D tools and OSs used in the terminal.
만약 상기 사용자 단말1(110)이 3D 데이터 제작 단말이라면, 상기 사용자 단말2(120)는 3D 콘텐츠 데이터가 서버(130)를 통해 스트리밍 방식 등에 의해 배포될 경우, 이를 시청하며 인터렉션 등에 참여할 수 있는 사용자 소유의 단말을 나타낼 수 있다.If the user terminal 1 (110) is a 3D data production terminal, the user terminal 2 (120) is a user who can watch the 3D content data and participate in interactions, etc. when it is distributed by streaming method through the server 130. It can indicate the owned terminal.
즉, 본 명세서에서는 본 발명의 이해를 돕고 설명의 편의를 위해, 상기 사용자 단말1(110)과 사용자 단말2(120)를 3D 데이터 제작 단말과 3D 콘텐츠 시청 단말로 구분하여 설명하였으나, 반드시 이에 한정되는 것은 아니며 서로 그 역할이 변경될 수 있다. 또한, 도 1에 도시된 것과는 달리, 사용자 단말1(3D 데이터 제작 단말)과 사용자 단말2(3D 콘텐츠 시청 단말)는 각각 복수 개일 수 있으며, 본 발명의 시스템(1)은 그들의 동시 접속 내지 이용이 있는 경우 원활한 서비스가 제공될 수 있도록 다양한 지원을 할 수 있다.That is, in this specification, to aid understanding and convenience of explanation of the present invention, user terminal 1 (110) and user terminal 2 (120) are described as 3D data production terminals and 3D content viewing terminals, but are necessarily limited to this. This does not mean that they can change roles. In addition, unlike what is shown in FIG. 1, there may be multiple user terminals 1 (3D data production terminal) and 2 (3D content viewing terminal), and the system 1 of the present invention allows for simultaneous connection or use of them. If available, we can provide a variety of support to ensure smooth service delivery.
사용자 단말1(110)과 사용자 단말2(120)는 각각, PC, TV 등과 같은 고정 단말이거나 스마트폰, 노트북, 태블릿, HMD 등과 같은 이동 단말의 형태일 수 있다. User terminal 1 (110) and user terminal 2 (120) may each be in the form of a fixed terminal such as a PC or TV, or a mobile terminal such as a smartphone, laptop, tablet, or HMD.
실시예에 따라, 사용자 단말1(110)과 사용자 단말2(120)는 각각, 본 발명에 따른 웹 기반 가상 공간 3D 콘텐츠 패키징 및 스트리밍 서비스 제공 시스템(1) 또는 상기 서비스를 위한 전용(dedicated) 단말 장치 형태일 수도 있다. Depending on the embodiment, user terminal 1 (110) and user terminal 2 (120) are each a web-based virtual space 3D content packaging and streaming service providing system (1) according to the present invention or a dedicated terminal for the service. It may be in the form of a device.
다른 실시예에 따라, 사용자 단말1(110)과 사용자 단말2(120)는 각각, 웨어러블 디바이스(wearable device)나 타 단말과 연동되어 작동하는 장치일 수도 있다. 다만, 본 발명에 따른 사용자 단말1(110)과 사용자 단말2(120)는 반드시 전술한 예시에 한정되는 것은 아니며, 상기 시스템(1) 또는 서비스 이용에 필요한 소프트웨어와 하드웨어를 포함한 장치이면 충분하다.According to another embodiment, user terminal 1 (110) and user terminal 2 (120) may each be a wearable device or a device that operates in conjunction with another terminal. However, user terminal 1 (110) and user terminal 2 (120) according to the present invention are not necessarily limited to the above-described examples, and any device including software and hardware necessary for using the system 1 or service is sufficient.
한편, 복수의 사용자 단말1(110)과 사용자 단말2(120)가 모두 동일한 형태나 동일한 성능을 가질 필요는 없다. 또한, 복수의 사용자 단말1(110) 모두가 동일한 3D 툴을 이용하여 동일한 타입의 3D 콘텐츠를 제작할 필요도 없으며, 나아가 상기 서버(130)로부터 동일한 플러그인을 다운로드 받아 설치할 필요 또한 없다.Meanwhile, the plurality of user terminals 1 (110) and 2 (120) do not all need to have the same form or the same performance. Additionally, there is no need for all of the plurality of user terminals 1 (110) to produce the same type of 3D content using the same 3D tool, and furthermore, there is no need to download and install the same plug-in from the server (130).
사용자 단말1(110)은 상기 서버(130)에 의해 운영되는 본 발명과 관련된 웹 서비스에 가입 및/또는 로그인 등을 하고, 자신이 3D 툴을 이용하여 제작한 3D 데이터를 사용자 단말2(120) 등에게 배포하기 위한 3D 콘텐츠로의 패키징 또는 편집(edit) 등의 작업을 해당 웹 서비스를 통해 수행한 후 이를 상기 사용자 단말2(120) 등에게 스트리밍 방식 등으로 배포할 수 있다.User terminal 1 (110) subscribes to and/or logs into a web service related to the present invention operated by the server 130, and sends 3D data created using a 3D tool to user terminal 2 (120). Tasks such as packaging or editing 3D content for distribution to others can be performed through the corresponding web service and then distributed to the user terminal 2 (120), etc. through streaming.
사용자 단말1(110)에서 3D 툴에 의해 3D 데이터의 제작이 완료되면, 상기 제작된 3D 데이터는 기 설치된 플러그인을 통하여 상기 서버(130)의 클라우드 플랫폼으로 전송될 수 있다. 이때, 상기 전송은 실시간, 미리 정의한 특정 시점, 사용자 단말1(110)의 웹 서비스 로그인 시점 등 설정에 따라 이루어질 수 있으며, 이와 달리 자동으로 이루어질 수도 있다.When the production of 3D data is completed using the 3D tool in user terminal 1 (110), the produced 3D data can be transmitted to the cloud platform of the server 130 through a pre-installed plug-in. At this time, the transmission may be performed according to settings such as real-time, a predefined specific point in time, or the web service login time of user terminal 1 (110). Alternatively, it may be performed automatically.
사용자 단말2(120)는 상기 서버(130)에 의해 운영되는 본 발명과 관련된 웹 서비스에 가입 및/또는 로그인 등을 하고, 해당 웹 페이지에서 제공하는 플레이어(Player)를 통하여 상기 사용자 단말1(110)에 의해 배포된 3D 콘텐츠를 스트리밍 방식 등으로 시청하거나 인터렉션에 참여할 수 있다. 실시예에 따라, 상기 사용자 단말2(120)는 상기 플레이어를 서버(130)로부터 별도로 다운로드 받아 설치할 수 있으며, 이와 달리 URL 주소 등으로 접속하여 로그인 또는 로그인 없이 상기 배포된 3D 콘텐츠의 시청 환경을 제공받을 수도 있다.User terminal 2 (120) subscribes to and/or logs in to a web service related to the present invention operated by the server 130, and uses the player provided by the web page to use user terminal 1 (110). ) You can watch 3D content distributed by streaming or participate in the interaction. Depending on the embodiment, the user terminal 2 (120) may separately download and install the player from the server (130), and otherwise provide a viewing environment for the distributed 3D content without logging in or logging in by accessing a URL address, etc. You may receive it.
사용자 단말2(120)는 상기 플레이어를 통해 본 발명의 웹 기반 가상 공간 3D 콘텐츠 스트리밍 서비스를 이용하기 위하여, 디스플레이와 스피커뿐만 아니라, 적절한 콘텐츠 제어를 위한 포인터(pointer), 스타일러스 펜(stylus pen) 또는 마우스(mouse) 등의 인터페이스를 추가적으로 구비하거나 지원할 수 있다.In order to use the web-based virtual space 3D content streaming service of the present invention through the player, user terminal 2 (120) is equipped with not only a display and a speaker, but also a pointer, stylus pen, or device for appropriate content control. An interface such as a mouse may be additionally provided or supported.
한편, 서버(130)는 선술한 바와 같이 사용자 단말1(110)이 3D 데이터 제작 시 사용하는 3D 툴에 상응하는 플러그-인을 상기 사용자 단말1(110)에게 제공할 수 있으며, 상기 사용자 단말1(110)에서 3D 데이터를 보유하고 있다면, 상기 플러그-인을 통하여 상기 3D 데이터를 컷 단위가 아니라 3D 데이터 그대로 임포트(import, 또는 업로드)시킬 수 있도록 하되, 상기 사용자 단말1(110) 이를 웹 상에서 편집(또는 패키징)한 후 사용자 단말2(120) 등에게 스트리밍 방식 등으로 배포하도록 할 수 있다. 이를 위해, 서버(130)는 해당 기능 수행을 위해 필요한 소프트웨어 및 하드웨어를 포함할 수 있다.Meanwhile, as described above, the server 130 may provide user terminal 1 (110) with a plug-in corresponding to the 3D tool used by user terminal 1 (110) when producing 3D data, and the user terminal 1 (110) If 3D data is held in (110), the 3D data can be imported (or uploaded) as 3D data rather than in cut units through the plug-in, and the user terminal 1 (110) can upload it on the web. After editing (or packaging), it can be distributed to user terminal 2 (120), etc. through streaming. To this end, the server 130 may include software and hardware necessary to perform the corresponding function.
서버(130)는 본 발명인 웹 기반 가상 공간 3D 콘텐츠 패키징 서비스를 위해 사용자 단말1(110)의 3D 데이터가 상기 플러그-인을 통하여 웹 상으로 임포트(import)되도록, 클라우드 플랫폼(Cloud platform)이나 데이터베이스(DB: database)를 구축할 수 있다. 한편, 상기 사용자 단말1(110)은 상기 클라우드 플랫폼에 대한 로그인 및/또는 3D 데이터의 임포트(import)를 위해, 서버(130)와 통신하여 발급받은 토큰을 저장하고 있을 수 있으며, 서버(130) 또한 권한을 가진 사용자 여부를 판별하고 로그인 관리를 위해 상기 토큰을 저장하고 있을 수 있다.The server 130 is a cloud platform or database so that the 3D data of user terminal 1 (110) is imported onto the web through the plug-in for the web-based virtual space 3D content packaging service of the present invention. (DB: database) can be built. Meanwhile, the user terminal 1 (110) may store a token issued by communicating with the server 130 for logging in to the cloud platform and/or importing 3D data, and the server 130 Additionally, the token may be stored to determine whether a user has authority and to manage login.
서버(130)는 3D 데이터를 제작하고 3D 콘텐츠를 배포하는 사용자 단말1(110) 및/또는 배포된 3D 콘텐츠를 시청하는 사용자 단말2(120)와의 사이에서 상호 간 데이터 커뮤니케이션을 지원하기 위해 관련 API(Application Program Interface) 등을 지원할 수 있다.The server 130 creates 3D data and provides a related API to support mutual data communication between user terminal 1 (110), which distributes 3D content, and/or user terminal 2 (120), which watches distributed 3D content. (Application Program Interface), etc. can be supported.
그 밖에, 본 발명인 웹 기반 가상 공간 3D 콘텐츠 패키징 및 스트리밍 서비스 제공 시스템(1)에 속한 구성요소들 사이의 통신 내지 데이터 커뮤니케이션은 현재까지 개발되었거나 향후 개발될 다양한 유/무선 통신 네트워크를 통하여 이루어질 수 있으며, 모든 구성요소들이 동일한 통신 네트워크 내지 통신 프로토콜을 사용할 필요는 없다.In addition, communication or data communication between components belonging to the web-based virtual space 3D content packaging and streaming service provision system (1) of the present invention can be achieved through various wired/wireless communication networks that have been developed to date or will be developed in the future. , all components do not need to use the same communication network or communication protocol.
한편, 사용자 단말은 3D 콘텐츠 제작 시 사용하는 3D 툴(예컨대, 언리얼 엔진(Unreal engine), 오토데스크(Autodesk), 3DS Max, 유니티(Unity), 스케치업 등)에 대응되는 플러그-인(plug-in)을 설치하고, 상기 3D 툴을 이용하여 3D 콘텐츠를 제작하면, 상기 설치된 플러그-인을 통하여 3D 데이터를 웹으로 임포트 한 후 이를 외부에 배포하기 위한 3D 콘텐츠로 컨버팅하기 위한 전처리 작업을 수행할 수 있는데, 이를 위해 본 발명은 3D 데이터 패키징 기술을 제공한다. Meanwhile, the user terminal has a plug-in corresponding to the 3D tool used when creating 3D content (e.g., Unreal engine, Autodesk, 3DS Max, Unity, SketchUp, etc.) in) and create 3D content using the 3D tool, import 3D data to the web through the installed plug-in and then perform preprocessing to convert it into 3D content for external distribution. For this purpose, the present invention provides 3D data packaging technology.
따라서, 이하에서는 본 발명의 일실시예에 따른 3D 데이터 패키징 기술을 보다 상세하게 설명하기로 한다.Therefore, hereinafter, the 3D data packaging technology according to an embodiment of the present invention will be described in more detail.
본 발명의 3D 데이터 패키징 기술은, 가상현실(Virtual reality), 증강현실(Augmented reality), 혼합현실(Mixed reality) 또는 메타버스(Metaverse) 등의 환경에서 이용 가능한 가상 공간을 쉽고 빠르게 구축하기 위한 기술이며, 가상 공간의 구축 프로세스를 간소화 및 자동화 시킬 수 있고, 현재까지 존재하는 종래기술의 문제점을 해결할 수 있으므로, 가상 공간 관리자(크리에이터를 포함한다.)가 더욱 쉽고 빠르게 3D 데이터를 변환하여 가상 공간을 구축할 수 있는 효과가 있다. The 3D data packaging technology of the present invention is a technology for easily and quickly building a virtual space that can be used in environments such as virtual reality, augmented reality, mixed reality, or metaverse. It can simplify and automate the construction process of virtual space and solve problems with existing technology, so virtual space managers (including creators) can convert 3D data more easily and quickly to create virtual space. There is an effect that can be built.
종래 기존의 실감형 콘텐츠의 제작은 3D 데이터를 바탕으로 모델링(modeling), 렌더링(Rendering), 컴포지션(Composition)과 같은 반복처리 공정이 필요하였으며, 여러 공정이 요구되기 때문에 많은 시간이 소요되었으며, 최종 결과물 또한 웹을 통한 스트리밍 방식 등으로는 제공받을 수 없었고 이미지나 영상 또는 설치형으로만 경험할 수 있었다. Conventionally, the production of existing realistic content required repetitive processing processes such as modeling, rendering, and composition based on 3D data. It took a lot of time because multiple processes were required, and the final The results could not be provided through streaming through the web, and could only be experienced as images, videos, or installations.
그러나, 본 발명의 일실시예에 따른 3D 데이터 패키징 기술은, 기존과 같이 컷 단위로 3D 데이터를 수신하고 처리하는 웹 빌더(web builder)들과는 달리, 단말에 설치 가능한 플러그-인(Plug-in)을 제공하고 있다. 또한, 이를 통해 단말이 기 제작된 3D 데이터를 웹 상으로 손쉽게 임포트(Import) 시킬 수 있기 때문에 상기 3D 데이터가 어떤 종류의 3D 툴에 의해 제작되었는지 무관하므로, 범용성 및 편의성이 매우 뛰어난 효과가 있다. However, unlike web builders that receive and process 3D data in cut units as before, the 3D data packaging technology according to an embodiment of the present invention uses a plug-in that can be installed on a terminal. is providing. In addition, because this allows the terminal to easily import pre-produced 3D data onto the web, it does not matter what type of 3D tool the 3D data was created with, resulting in excellent versatility and convenience.
또한, 단말은 상기 플러그-인을 통해 웹 상으로 임포트 한 3D 데이터를 이용하여, 자신만의 가상 공간을 나타내는 3D 콘텐츠로의 컨버팅을 위해 3D 데이터 패키징 서비스를 이용할 수 있다. 상기 3D 데이터 패키징 서비스를 통해 자신만의 가상 공간을 나타내는 3D 콘텐츠로의 컨버팅을 완료하면, 상기 3D 콘텐츠를 스트리밍 방식으로 다른 단말에 전송하여 가상 공간으로의 참여 및 상호작용을 유도하는 것이 가능하다. Additionally, the terminal can use the 3D data packaging service to convert 3D data imported onto the web through the plug-in into 3D content representing its own virtual space. Once conversion to 3D content representing one's own virtual space is completed through the 3D data packaging service, it is possible to transmit the 3D content to other terminals in a streaming manner to induce participation and interaction in the virtual space.
즉, 본 발명은 규격화된 파이프라인으로 가상 공간 구축 및 배포 프로세스를 표준화하는 것이 가능하며, 그로 인해 반복공정 시간을 획기적으로 단축할 수 있는 효과가 있다. 또한, 후술하여 설명하겠지만 종래 방식의 360도 이미지, 영상과 같은 다양한 형태뿐만 아니라, 웹, 모바일, 설치형 등 다양한 디바이스 환경에서도 3D 콘텐츠의 구동이 가능할 수 있도록 하여, 보다 높은 접근성과 범용성을 제공할 수 있는 효과가 있다. In other words, the present invention makes it possible to standardize the virtual space construction and distribution process with a standardized pipeline, which has the effect of dramatically shortening the repetitive process time. In addition, as will be explained later, 3D content can be operated not only in various forms such as conventional 360-degree images and videos, but also in various device environments such as web, mobile, and installed, providing higher accessibility and versatility. There is an effect.
아울러, 플러그-인 형태로 가상 공간 구축 및 관리 기능을 제공하되, 후술하는 바와 같이 각각의 기능을 모듈 단위로 제공하기 때문에, 가상 공간의 구축 및 관리에 필요한 물리적/논리적 비용 및 진입 장벽을 현저히 낮춰줄 수 있는 효과 또한 있다.In addition, virtual space construction and management functions are provided in the form of a plug-in, but as described later, each function is provided in module units, significantly lowering the physical/logical costs and entry barriers required for building and managing virtual spaces. There are also effects that can be given.
한편, 본 발명의 3D 데이터 패키징 기술은, 실시간 3D 모델링 데이터 자동 추출 기능, 메타 데이터 추출 기능, 라이트맵 추출 기능, 리소스 경량화 기능, 3D 모델 최적화 기능, 배포(publishing)를 위한 실시간 360도 이미지 재조합 기능 등을 포함할 수 있으며, 이에 제한되지 않고 3D 데이터를 이용하여 가상 공간을 나타내는 3D 콘텐츠로의 컨버팅을 웹 상에서 수행하기 위해 필요한 다른 기능을 더 포함할 수 있다.Meanwhile, the 3D data packaging technology of the present invention includes a real-time 3D modeling data automatic extraction function, a metadata extraction function, a light map extraction function, a resource-lightening function, a 3D model optimization function, and a real-time 360-degree image recombination function for publishing. It may include, but is not limited to this, and may further include other functions necessary to perform conversion to 3D content representing a virtual space using 3D data on the web.
이하, 3D 데이터 패키징 기술의 각 기능을 보다 상세하게 설명하면 다음과 같다.Hereinafter, each function of 3D data packaging technology will be described in more detail as follows.
1. 실시간 3D 모델링 데이터 자동 추출 기능1. Real-time 3D modeling data automatic extraction function
사용자에게 고품질의 가상 공간 3D 콘텐츠를 제작하여 제공하기 위해서는, 공간을 360도로 촬영하여 샘플링 한 이미지의 품질이 중요한 요소라고 볼 수 있다. 그러나, 카메라를 통해 사용자의 시선을 표현하는 가상 공간 3D 콘텐츠의 특성상, 카메라의 위치 또는 방향에 따라 카메라 상에 적용되는 렌더링 효과가 실시간으로 달라지므로, 일반적인 이미지 캡처 및 이미지 병합 방식으로는 가상 공간 3D 콘텐츠 서비스를 웹이나 모바일 환경에서 제공하기 위한 고품질의 360 이미지를 얻을 수 없다.In order to produce and provide high-quality virtual space 3D content to users, the quality of the image sampled by shooting the space in 360 degrees can be considered an important factor. However, due to the nature of virtual space 3D content that expresses the user's gaze through a camera, the rendering effect applied on the camera varies in real time depending on the position or direction of the camera, so general image capture and image merging methods do not provide virtual space 3D content. It is impossible to obtain high-quality 360 images to provide content services in a web or mobile environment.
따라서, 본 발명은 이와 같은 문제점을 해결하고자, 도 2에서 도시한 바와 같이 실시간 렌더링 기반의 3D 모델링 데이터를 자동 추출하는 기능을 제공한다.Therefore, in order to solve this problem, the present invention provides a function to automatically extract 3D modeling data based on real-time rendering, as shown in FIG. 2.
즉, 본 발명은 단말이 기 제작된 3D 콘텐츠 데이터를 앞서 설명한 플러그-인을 통해 웹 상으로 임포트시키면, 상기 3D 콘텐츠 내 카메라를 미리 정해진 특정 위치에서 전방위(360도 × 360도)로 회전시키면서 미리 정해진 타일(tile)을 단위로 하여 상기 3D 콘텐츠 데이터의 이미지 샘플링을 수행한다. In other words, the present invention is that when the terminal imports pre-produced 3D content data onto the web through the plug-in described above, the camera in the 3D content is rotated in all directions (360 degrees × 360 degrees) at a predetermined specific position and Image sampling of the 3D content data is performed using a given tile as a unit.
그 후 샘플링 된 이미지 타일들을 미리 정해진 위치로 겹쳐서 각각의 픽셀 값을 보간(Interpolation)하되, 상기 보간 된 픽셀 값들을 미리 설정된 전용 이미지 포맷인 등장방형(Equirectangular) 표면상에 투사하여 상기 3D 콘텐츠 데이터에 대한 고품질 360도 이미지를 추출할 수 있다. 본 발명에서는 이와 같이 추출된 고품질 360도 이미지를 종래 기술과 구별하기 위해 실시간 360도 이미지라 표현한다. 또한, 위 설명에서 보간이라 함은 확인된 데이터를 사용하여 확인되지 않은 지점의 값을 추정하는 방식을 의미하며, 등장방형 이란 360도 구형(sphere)의 화면을 2:1 비율의 평면에 담아내는 방식을 의미할 수 있다.Afterwards, the sampled image tiles are overlapped at predetermined positions to interpolate each pixel value, and the interpolated pixel values are projected onto an equirectangular surface, which is a preset dedicated image format, to the 3D content data. High-quality 360-degree images can be extracted. In the present invention, the high-quality 360-degree image extracted in this way is expressed as a real-time 360-degree image to distinguish it from the prior art. Additionally, in the above explanation, interpolation refers to a method of estimating the value of an unconfirmed point using confirmed data, and equirectangular refers to a method that captures a 360-degree sphere screen on a plane with a 2:1 ratio. It can mean a method.
한편, 위와 같은 방식에 따라 추출할 수 있는 실시간 360도 이미지는, 상기 3D 콘텐츠가 GPU(Graphic Processing Unit)를 거쳐 화면에 렌더링되는 최종 결과물을 활용하는 방식이기 때문에, 후처리(Post processing) 및 평면 반사(Planar reflection) 등이 모두 적용될 수 있고, 그로 인해 위신호 제거(Anti-aliasing)라고 불리는 계단 현상 방지 효과가, 종래 기술과 비교할 때 현저하게 개선되어 나타나는 것을 도 3과 같이 확인할 수 있다. 여기에서, 위신호 제거란 높은 해상도의 신호를 낮은 해상도에서 나타낼 때 생기는 계단 현상을 억제하거나 최소화 하는 것을 의미한다.On the other hand, the real-time 360-degree image that can be extracted according to the above method utilizes the final result of the 3D content being rendered on the screen through a GPU (Graphic Processing Unit), so post processing and flat Planar reflection, etc. can all be applied, and as a result, it can be seen in Figure 3 that the anti-aliasing effect, called anti-aliasing, is significantly improved compared to the prior art. Here, removing false signals means suppressing or minimizing the staircase phenomenon that occurs when a high-resolution signal is displayed at low resolution.
또한, 본 발명의 일실시예에 따르면 상기와 같은 각 단계는 모듈화되어 구현될 수 있으며, 그로 인해 실시간 360도 이미지의 추출 과정 전부를 모듈화 및/또는 자동화 할 수도 있다. 또한, 추출된 실시간 360도 이미지를 이용하여 플러그-인 내에서 가상 공간으로의 변환, 웹 업로드, 배포 등을 진행할 수도 있다. In addition, according to one embodiment of the present invention, each of the above steps can be implemented in a modular manner, and as a result, the entire real-time 360-degree image extraction process can be modularized and/or automated. Additionally, the extracted real-time 360-degree image can be used for conversion to virtual space, web upload, and distribution within the plug-in.
2. 메타데이터 추출 기능2. Metadata extraction function
3D 콘텐츠 데이터에서 추출한 실시간 360도 이미지 데이터를, 다양한 환경(웹/모바일/HMD 등)에서 재조합하여 배포하기 위해서는, 실시간 360도 이미지를 포함하여 3D 모델, 마커(사용자가 상호작용 가능한 아이콘 또는 오브젝트 등을 포함) 등과 같은 리소스들의 3차원 좌표 및 방향에 대한 메타데이터도 함께 전달되어야 한다. 따라서, 본 발명에서는 3D 콘텐츠 배포에 필요한 메타데이터들을 프로토콜화하되 이를 플러그-인을 통해 추출한 뒤, 추출된 메타데이터들을 가상 공간 별로 적재/관리하는 기능을 제공할 수 있다.In order to reassemble and distribute real-time 360-degree image data extracted from 3D content data in various environments (web/mobile/HMD, etc.), 3D models, markers (icons or objects that users can interact with, etc.) Metadata about the 3D coordinates and directions of resources such as (including ) must also be transmitted. Therefore, the present invention can provide a function to protocolize metadata necessary for 3D content distribution, extract it through a plug-in, and then load/manage the extracted metadata for each virtual space.
가상 공간 콘텐츠 상에서 3D 모델, 마커(오브젝트 등)를 정확한 위치에 배치하고 독립적으로 움직이게 하기 위해서는, 좌표계를 일치시키고 회전 중심축(pivot)을 보정해주어야 한다. In order to place 3D models and markers (objects, etc.) in accurate positions and move them independently in virtual space content, the coordinate systems must be aligned and the rotation center axis (pivot) must be corrected.
따라서 본 발명에서는, 전역 좌표계 상의 위치(Position), 크기(Scale), 회전(Rotation) 수치를, 3D 모델과 마커의 각 정점들과 행렬(matrix) 연산을 수행하여 좌표계를 일치시키되, 위치 벡터(vector)는 별도로 저장하여 회전 중심축을 보정하는 것이 가능하며, 이를 통해 추출된 3D 모델과 마커는 다른 환경(웹/모바일/HMD 등)에서도 독립적으로 제어하는 것이 가능하다.Therefore, in the present invention, the position, scale, and rotation values on the global coordinate system are matched to the coordinate system by performing a matrix operation with each vertex of the 3D model and marker, and the position vector ( vector) can be saved separately to correct the rotation center axis, and the 3D model and marker extracted through this can be controlled independently in other environments (web/mobile/HMD, etc.).
3. 라이트맵 추출 기능3. Lightmap extraction function
한편, 위와 같은 방식에 따라 추출할 수 있는 실시간 360도 이미지는 고품질이기는 하나 정적이므로, 사용자가 3D 모델, 마커 등의 재질이나 구조를 변경하는 제어를 수행하는 데에는 한계가 있을 수 있다. 따라서, 본 발명에서는 도 4에 도시된 바와 같이 3D 모델, 마커의 표면에 미리 정해진 방향으로부터 미리 정해진 크기의 빛이 조사된 형태로 추출이 이루어지도록 할 수 있으며, 실시예에 따라 이를 WebGL(Web Graphic Library)을 기반으로 할 수 있으나 이에 제한되지는 않는다.Meanwhile, the real-time 360-degree image that can be extracted according to the above method is high quality, but is static, so there may be limitations in the user's ability to control changes to the material or structure of the 3D model, marker, etc. Therefore, in the present invention, as shown in FIG. 4, light of a predetermined size can be extracted from a predetermined direction on the surface of the 3D model and marker, and depending on the embodiment, this can be performed using WebGL (Web Graphic). Library), but is not limited to this.
4. 리소스 경량화 기능4. Resource lightweight function
모바일, PC와 같은 환경에서도 가상 공간 3D 콘텐츠를 원활하게 서비스하게 하기 위해서는, 추출된 실시간 360도 이미지와 3D 모델, 마커 등의 리소스들을 경량화 할 필요성이 있다.In order to smoothly service virtual space 3D content in environments such as mobile and PC, there is a need to lightweight resources such as extracted real-time 360-degree images, 3D models, and markers.
이 때, 상기 리소스 경량화는 기술과 서비스의 구현 측면만을 고려하는 것이 아니라, 용량의 감소 및 비용의 감소와 밀접한 연관이 있으므로, 다수의 사용자를 대상으로 서비스를 제공하는 경우 네트워크 트래픽을 감소시킬 수 있기 때문에 사용자 경험을 증대시키고 비용을 최소화할 수 있는 장점을 가질 수 있다. At this time, the resource lightweighting not only considers the implementation aspects of technology and services, but is also closely related to capacity reduction and cost reduction, so network traffic can be reduced when services are provided to multiple users. Therefore, it can have the advantage of increasing user experience and minimizing costs.
따라서, 본 발명에서는 후술하는 바와 같이 이미지 타일링 및 모델 최적화 등의 기능을 포함하고 있어 리소스의 경량화가 가능하고, 이를 통해 비용 또한 최소화 할 수 있는 효과가 있다.Therefore, as will be described later, the present invention includes functions such as image tiling and model optimization, enabling resource reduction, which has the effect of minimizing costs.
한편, 3D 콘텐츠 데이터에서 추출한 실시간 360도 이미지를, 추출한 원본 그대로 로딩하여 가상 공간을 제공하게 되면, 이를 이용하는 이용자는 긴 시간 동안 로딩을 대기하게 되며, 특히 가상 공간 내에서 위치 이동 시 다음 이미지를 불러올 때마다 전체 이미지를 모두 불러와야 할 수 밖에 없어, 로딩을 하는 동안 백색화면을 경험하거나 혹은 매우 긴 대기시간을 겪어야 하는 불편함이 있을 수 있다. On the other hand, if a virtual space is provided by loading the real-time 360-degree image extracted from 3D content data as the extracted original, users who use it will have to wait for a long time for loading, and in particular, when moving the location within the virtual space, it will be difficult to load the next image. Since you have no choice but to load the entire image each time, you may experience the inconvenience of experiencing a white screen or a very long waiting time while loading.
따라서, 본 발명에서는 이러한 문제점을 예방하고 해결하기 위한 리소스 경량화 기능으로서, 추출된 실시간 360도 이미지를, 서로 다른 해상도를 나타내는 3개의 단계(예컨대, 저해상도, 중해상도, 고해상도)로 구분하되 이들을 타일링(멀티레벨 타일링)하여 저장함으로써, 위와 같은 문제점을 해결할 수 있다. Therefore, in the present invention, as a resource-lightening function to prevent and solve these problems, the extracted real-time 360-degree image is divided into three stages representing different resolutions (e.g., low resolution, medium resolution, and high resolution), and these are tiled ( By storing data using multi-level tiling, the above problem can be solved.
즉, 도 5에 도시된 바와 같이, 실시간 360도 이미지를 서로 다른 해상도를 나타내는 3개의 단계(예컨대, 저해상도, 중해상도, 고해상도)로 구분하며, 구체적으로 실시간 360도 이미지를 1면으로 표현한 수십 KB(Kilobyte) 단위 저해상도 프리뷰(Preview) 이미지, 실시간 360도 이미지를 6면으로 분할한 수백 KB(Kilobyte) 단위 중해상도 이미지, 위 6면의 각 이미지를 다시 4분할하여 총 24개의 타일로 이루어진 MB(Megabyte) 단위 고해상도 이미지와 같이 총 3개의 단계로 분할하되 이들을 타일링(Tiling)하여 저장되도록 할 수 있다.That is, as shown in FIG. 5, the real-time 360-degree image is divided into three levels representing different resolutions (e.g., low resolution, medium resolution, and high resolution), and specifically, the real-time 360-degree image is expressed as one side of several tens of KB. (Kilobyte) unit low-resolution preview image, real-time 360-degree image divided into 6 sides, hundreds of KB (Kilobyte) unit medium-resolution image, and each image of the above 6 sides again divided into 4 sides to create a total of 24 tiles (MB) Like a high-resolution image in megabytes, it can be divided into a total of three stages and stored by tiling them.
한편, 웹과 같이 GPU(Graphics Processing Unit)의 사용이 제한된 환경에서 가상 공간에 3D모델, 마커 등을 표시할 경우, 3D 모델이나 마커 자체가 가진 정점(Vertex)의 수가 많다 보면 렌더링 시간이 길어져서 사용자는 화면이 끊겨 보이거나 느려지는 현상 등을 경험하는 문제점이 발생할 수 있다. On the other hand, when displaying 3D models, markers, etc. in virtual space in an environment where the use of GPU (Graphics Processing Unit) is limited, such as the web, the rendering time becomes longer if the number of vertices in the 3D model or marker itself is large. Users may experience problems such as screen interruption or slowdown.
따라서, 본 발명에서는 이러한 문제점을 예방하고 해결하기 위한 또 다른 리소스 경량화 기능으로서, 정점(Vertex) 감소를 위한 파일 포맷 컨버팅 단계 및 정점 그룹화 단계를 수행할 수 있다.Therefore, in the present invention, as another resource-lightening function to prevent and solve this problem, a file format conversion step and a vertex grouping step for vertex reduction can be performed.
먼저, 3D 파일의 포맷을 확인한 뒤, 해당 3D 파일이 이미 미리 정해진 파일 포맷 기준에 해당할 경우에는 상기 파일 포맷 컨버팅 단계가 생략될 수 있다. 그러나, 만약 해당 3D 파일이 미리 정해진 파일 포맷 기준에 해당하지 않는 경우에는 도 6에 도시된 바와 같이 파일 포맷 컨버팅이 수행될 수 있다. First, after checking the format of the 3D file, if the 3D file already meets predetermined file format standards, the file format conversion step can be omitted. However, if the corresponding 3D file does not meet the predetermined file format standards, file format conversion may be performed as shown in FIG. 6.
예컨대, 미리 정해진 파일 포맷 기준은 OBJ, GLTF 라고 가정할 때, 확인된 3D 파일의 포맷이 FBX 파일 포맷인 경우, 이는 미리 정해진 파일 포맷 기준(OBJ, GLTF)에 해당하지 않기 때문에, 앞서 설명한 바와 같이 파일 포맷 컨버팅이 수행될 수 있다. 이 때, 상기 미리 정해진 파일 포맷 기준은, 3D모델, 마커가 미리 정해진 숫자보다 더 적은 수의 정점(vertex)으로 표현되도록 하는 파일 포맷일 수 있으며, 앞서 예시를 들어 설명한 OBJ, GLTF에 제한되는 것은 아니다.For example, assuming that the predetermined file format standards are OBJ and GLTF, if the format of the confirmed 3D file is the FBX file format, this does not correspond to the predetermined file format standards (OBJ, GLTF), so as described above File format conversion may be performed. At this time, the predetermined file format standard may be a file format that allows the 3D model and marker to be expressed with fewer vertices than a predetermined number, and is limited to the OBJ and GLTF described above as examples. no.
본 발명의 일실시예에 따른 정점 그룹화 단계는, 시각적 중요도가 높고 낮음에 따라 가중치를 부여하는 정점 등급매기기(Grading), 정점의 삼각(폴리곤)분할(Triangulation), 기하학적 접근성을 기반으로 정점의 그룹화를 수행하는 클러스터링(Clustering), 그룹화된 정점들의 대표 정점을 도출하는 통합(Synthesis), 중복된 삼각(폴리곤)과 정점을 제거(Elimination), 남은 정점을 연결하여 삼각형을 형성하는 조정(Adjustment of normals) 과정을 거쳐 정점 그룹화(Vertex clustering)를 수행하게 되며, 이를 통해 도 7에 도시된 바와 같이 18개의 정점이 상기 그룹화를 통해 12개의 정점으로 감소되는 것을 확인할 수 있다.The vertex grouping step according to an embodiment of the present invention includes vertex grading, which assigns weights according to high and low visual importance, triangulation (polygon) division of vertices, and grouping of vertices based on geometric accessibility. Clustering that performs, Synthesis that derives representative vertices of grouped vertices, Elimination of duplicate triangles (polygons) and vertices, and Adjustment of normals that connects the remaining vertices to form a triangle. ) process, vertex clustering is performed, and through this, it can be confirmed that 18 vertices are reduced to 12 vertices through the grouping, as shown in FIG. 7.
따라서, 본 발명의 위와 같은 기술적 특징을 이용하면, 3D 모델이나 마커 자체가 가진 정점(Vertex)의 수가 감소될 수 있으므로, 웹과 같이 GPU의 사용이 제한된 환경에서 가상 공간에 3D모델, 마커 등을 표시하더라도, 화면이 끊기거나 느려지는 현상이 현저하게 줄어드는 효과가 있을 수 있다. Therefore, by using the above technical features of the present invention, the number of vertices of the 3D model or marker itself can be reduced, so 3D models, markers, etc. can be created in virtual space in an environment where the use of GPU is limited, such as the web. Even if it is displayed, the phenomenon of screen interruption or slowdown can be significantly reduced.
5. 실시간 360도 이미지 재조합 기능5. Real-time 360-degree image recombination function
실시간 360도 이미지 추출 과정에서 샘플링하여 서버에 적재된 리소스 및 메타데이터들은, 미리 정해진 기준에 따라 재조합하여 재현해야 하며, 이를 위해 본 발명에서는 일 실시예에 따라 큐브릭 렌더링(Cubric Rendering) 방식을 적용할 수 있다. Resources and metadata sampled during the real-time 360-degree image extraction process and loaded on the server must be recombined and reproduced according to predetermined standards. To this end, the present invention applies the Cubric Rendering method according to an embodiment. You can.
상기 큐브릭 렌더링 방식은, 도 8에 도시된 바와 같이 앞서 설명한 타일링 하여 저장된 실시간 360도 이미지 타일들 및 리소스/메타데이터들을 재조합하는 방식이며, 사용자의 시선이 포커싱하는 위치에 따라 필요한 이미지만 렌더링하되, 그와 더불어 시간에 따른 단계적 로딩을 수행해나가는 방식이다. 따라서, 본 발명의 일실시예에 따르면, 가상 공간 서비스의 제공이 빠른 속도로 이루어질 수 있으며 네트워크 트래픽 소모 또한 최소화할 수 있는 효과가 있다.The Kubrick rendering method, as shown in FIG. 8, is a method of recombining the real-time 360-degree image tiles and resources/metadata stored by tiling as described above, and renders only the necessary images according to the position on which the user's gaze focuses, In addition, it is a method that performs step-by-step loading over time. Therefore, according to one embodiment of the present invention, virtual space services can be provided at a high speed and network traffic consumption can also be minimized.
구체적으로, 가상 공간 서비스 상에서 사용자가 특정 위치로 빠르게 이동하는 경우, 이동 중에 잠시 머무는 위치에서는 전면에 보이는 일부 타일만을 로딩하면 되기 때문에, 본래 로딩 해야하는 데이터의 약 1/6만 로딩하면 되므로, 그로 인해 단말에 가해지는 부담 및 데이터의 소모량이 현저하게 낮아질 수 있다. Specifically, when a user quickly moves to a specific location on a virtual space service, only some tiles visible in front need to be loaded at a location where the user stays for a while while moving, so only about 1/6 of the data that needs to be loaded needs to be loaded. As a result, only about 1/6 of the data that needs to be loaded needs to be loaded. The burden on the terminal and data consumption can be significantly reduced.
즉, 도 9에 도시된 바와 같이, 일반 360도 이미지의 경우 초기 화면 로딩 시간(사용자 진입부터 최초 화면 렌더링까지의 시간)이 1650ms가 소요되었으나, 본 발명의 일실시예에 따른 실시간 360도 이미지 및 이를 타일링하여 저장하는 방식을 활용하는 경우 초기 화면 로딩 시간이 320ms가 소요되어 약 80% 감소하는 효과를 보여주고 있으며, 가상 공간 서비스를 이용할 때 소비되는 데이터 소모량 또한 일반 360도 이미지와 비교할 때, 약 40% 가량 절감할 수 있는 효과를 보여주고 있다. 따라서, 본 발명에 따르면 가상 공간 서비스를 이용할 때 네트워크 트랙픽 소모, 단말 부담, 데이터 소모량 모두를 최소화 할 수 있는 효과가 있다.That is, as shown in FIG. 9, for a general 360-degree image, the initial screen loading time (time from user entry to first screen rendering) took 1650 ms, but for a real-time 360-degree image and When using the tiling and saving method, the initial screen loading time takes 320ms, showing the effect of being reduced by about 80%, and the data consumption when using virtual space services is also about 360ms compared to regular 360-degree images. It shows the effect of saving about 40%. Therefore, according to the present invention, there is an effect of minimizing network traffic consumption, terminal burden, and data consumption when using virtual space services.
한편, 본 발명에 따른 웹 기반 가상 공간 구축을 위한 3D 데이터 패키징 및 스트리밍 서비스 처리 시스템(1)은, 실시간 360도 이미지와 3D 정보의 매칭 및 공간 이동 기능, 3D 데이터 저작을 위한 실시간 렌더링 기반 프리셋 제공 기능, 인터렉션을 위한 모듈 단위 마커 제공 기능, 클라우드 로그인 기능 등을 더 포함할 수 있다.Meanwhile, the 3D data packaging and streaming service processing system (1) for building a web-based virtual space according to the present invention provides matching and spatial movement functions between real-time 360-degree images and 3D information, and real-time rendering-based presets for 3D data authoring. It may further include functions, a function to provide module-level markers for interaction, a cloud login function, etc.
실시간 360도 이미지의 경우 이미지의 특성 상 2D로 구성되기 때문에 가상 공간 내에서 놓여진 물체나 벽면 등에 씬 이동포인트를 위치시키더라도 3D 모델이나 마커가 가지고 있는 굴곡은 표현 할 수 없다.In the case of real-time 360-degree images, due to the nature of the image, it is composed of 2D, so even if the scene movement point is placed on an object or wall within the virtual space, the curves of the 3D model or marker cannot be expressed.
따라서, 본 발명에서는 보다 나은 사용자 경험과 몰입도를 제공하기 위해, 앞서 설명하였던 추출된 메타데이터를 활용하여 각 물체나 벽면의 x,y,z 좌표를 연산하여 이동 포인터 모양을 만들되, 그에 대한 반사 값을 표현함으로써 도 10에 도시된 바와 같이 실시간 360도 이미지에서도 3D 모델이나 마커의 굴곡 등 머터리얼(Meterial) 특징을 제공할 수 있다.Therefore, in the present invention, in order to provide better user experience and immersion, the extracted metadata described above is used to calculate the x, y, and z coordinates of each object or wall to create a moving pointer shape, and the reflection of the By expressing values, as shown in FIG. 10, material features such as the curvature of a 3D model or marker can be provided even in a real-time 360-degree image.
한편, 본 발명에서는 가상 공간 서비스 상에서 사용자가 특정 위치로 이동하기 위해 사용하는 공간 이동 방식과 관련, 도 11 상단에 도시된 바와 같이 복수의 화살표로 표시된 종래의 공간 이동 방법의 경우, 제한되고 한정적인 움직임만을 제공할 수 밖에 없다는 문제점이 있어 이러한 문제점을 해결하고자, 마우스 포인터를 이용한 공간 이동 방법을 제공할 수 있다.Meanwhile, in the present invention, in relation to the spatial movement method used by the user to move to a specific location on the virtual space service, in the case of the conventional spatial movement method indicated by a plurality of arrows as shown at the top of FIG. 11, the method is limited and limited. There is a problem that only movement can be provided. To solve this problem, a spatial movement method using a mouse pointer can be provided.
보다 구체적으로, 본 발명의 일실시예에 따르면, 사용자가 가상 공간 서비스 상에서 특정 위치로 이동하기 위해 전체 가상 공간 중 임의의 영역을 선택하고 클릭하면, 상기 클릭된 영역이 바닥이라고 판단되는 경우에는 사용자가 이동을 희망한다고 판단할 수 있으므로, 이 경우 사용자가 이동 가능하도록 설정된 미리 정해진 마우스 포인터 영역 중 상기 클릭된 영역과 가장 가까운 마우스 포인터 영역을 탐색한 뒤, 상기 탐색된 마우스 포인터 영역으로 사용자의 위치이동이 이루어지게 된다.More specifically, according to one embodiment of the present invention, when a user selects and clicks a random area of the entire virtual space to move to a specific location on a virtual space service, if the clicked area is determined to be the floor, the user Since it may be determined that the user wishes to move, in this case, the mouse pointer area closest to the clicked area is searched among the predetermined mouse pointer areas set to allow the user to move, and then the user's position is moved to the searched mouse pointer area. This will come true.
한편, 본 발명에 따른 웹 기반 가상 공간 구축을 위한 3D 데이터 패키징 및 스트리밍 서비스 처리 시스템(1)은, 3D 데이터 저작을 위한 실시간 렌더링 기반 프리셋 제공 기능, 인터렉션을 위한 모듈 단위 마커 제공 기능, 클라우드 로그인 기능 등을 더 포함할 수 있다.Meanwhile, the 3D data packaging and streaming service processing system (1) for building a web-based virtual space according to the present invention has a function of providing real-time rendering-based presets for 3D data authoring, a function of providing module unit markers for interaction, and a cloud login function. It may further include the like.
본 발명의 일실시예에 따르면, 본 발명에 따른 시스템(1)은 웹 기반으로 3D 데이터 패키징 및 스트리밍 서비스를 제공하는 과정에서, 3D 데이터 저작을 위한 실시간 렌더링 기반 프리셋(Preset, 미리 정의된 설정들의 집합)제공 기능을 더 포함할 수 있다.According to one embodiment of the present invention, in the process of providing web-based 3D data packaging and streaming services, the system 1 according to the present invention uses real-time rendering-based presets (Presets, predefined settings) for 3D data authoring. (Aggregation) Additional functions may be included.
상기 프리셋은 구축된 가상 공간을 유지 및 활용함에 있어서 균일한 접근방식을 제공하기 위함이며, 필요한 설정 값들을 미리 최적화 후 자동 적용하도록 할 수 있다. 본 발명에서 상기 프리셋의 종류는 현실적인 공간을 구성하기 위한 환경설정 프리셋, 다양한 재질들을 설정하기 위한 재질설정 프리셋, 실제 존재하는 빛의 값들을 정의한 라이팅 프리셋이 존재하나 이는 어디까지나 예시일 뿐 이에 제한되지는 않는다. The preset is intended to provide a uniform approach in maintaining and utilizing the established virtual space, and the necessary setting values can be optimized in advance and automatically applied. In the present invention, the types of presets include environmental setting presets for creating a realistic space, material setting presets for setting various materials, and lighting presets that define the values of light that actually exist, but these are only examples and are not limited thereto. does not
즉, 각각의 설정된 값이나 정보들은 하나 이상의 프리셋 형태로 각각 내장되었다가 가상 공간 관리자(크리에이터 포함)가 원하는 시점에 편리하게 적용할 수 있다. 따라서, 본 발명은 위와 같은 정량화 및 자동화 된 다양한 프리셋들을 제공함에 따라 가상 공간의 품질을 용이하게 조절할 수 있도록 하며, 나아가 제작에 필요한 시간과 노력을 절감하고, 제작자의 숙련도 요구조건을 낮추는 효과를 줄 수 있다.In other words, each set value or information is embedded in one or more presets and can be conveniently applied at any time desired by the virtual space manager (including the creator). Therefore, the present invention provides the above quantified and automated various presets to easily control the quality of the virtual space, further reducing the time and effort required for production, and lowering the producer's skill requirements. You can.
한편, 본 발명의 일실시예에 따르면 상기 프리셋들은 모두 환경설정 프리셋, 재질설정 프리셋, 라이팅 프리셋 등과 같이 모듈화 된 형태로 제공될 수 있으며, 이를 통해 모듈 단위로 가상 공간이 구축 및 유지/활용될 수 있다. Meanwhile, according to an embodiment of the present invention, all of the above presets may be provided in modular form such as environment setting presets, material setting presets, lighting presets, etc., and through this, virtual spaces can be built and maintained/utilized on a module basis. there is.
구체적으로, 본 발명은 가상 공간 관리자가 가상 공간을 구축하고자 하는 경우 앞서 설명한 기능들 및 모듈화 된 프리셋 등을 통해 모듈 단위 구조 및 모듈 단위 기능을 포함하는 가상 공간 형태로 구축 및 관리 할 수 있는 서비스를 제공할 수 있으며, 이는 가상 공간을 구축하고 관리함에 소비되는 시간적, 비용적 부담을 감소시켜 줄 수 있는 효과 또한 존재한다.Specifically, the present invention provides, when a virtual space manager wishes to build a virtual space, a service that can be built and managed in the form of a virtual space including a module-level structure and module-level functions through the functions described above and modularized presets. This also has the effect of reducing the time and cost burden of building and managing a virtual space.
한편, 본 발명에 따른 시스템(1)은 웹 기반으로 3D 데이터 패키징 및 스트리밍 서비스를 제공하는 과정에서, 인터렉션을 위한 모듈 단위 마커를 제공하는 기능을 더 포함할 수 있다.Meanwhile, the system 1 according to the present invention may further include a function of providing module unit markers for interaction in the process of providing web-based 3D data packaging and streaming services.
가상 공간 서비스의 경우 사용자에게 단순히 가상 공간을 표시하고 그들이 관람하게 하는 것을 넘어 추가적인 상호작용 활동을 제공할 필요가 있다. 즉, 가상 공간 상에서 아이콘, 스크린, 3D 모델 등 다양한 형태의 상호 작용 가능한 오브젝트 또는 마커를 제공하여 사용자들과의 다양한 상호작용을 수행하되 그로 인한 확장성을 확보할 필요가 있다.In the case of virtual space services, there is a need to provide additional interactive activities beyond simply displaying the virtual space to users and allowing them to view it. In other words, it is necessary to provide various types of interactive objects or markers, such as icons, screens, and 3D models in virtual space, to enable various interactions with users, but to secure scalability.
본 발명의 일실시예에 따르면, 상기 오브젝트 또는 마커는 웹 고유의 기능들을 기반으로 동작하므로 가상공간과는 별도로 웹 기반 컨버팅 툴 상에서도 자유롭게 편집이 가능하며, 다양한 형태의 외부 서비스와의 연동도 할 수 있다.According to one embodiment of the present invention, the object or marker operates based on web-specific functions, so it can be freely edited on a web-based converting tool separately from the virtual space, and can also be linked with various types of external services. there is.
본 발명의 일실시예에 따르면, 상기 상호작용 활동을 위한 오브젝트 또는 마커는 3D 콘텐츠의 패키징 과정에서 적용할 수 있으며, 구체적으로 가상 공간의 특정 영역에 삽입되거나, 특정버튼을 클릭하면 뷰어 등을 통해 특정한 정보를 표현 하거나 사전에 정의한 동작을 수행하도록 적용할 수 있다. 예컨대, 동영상 마커를 통해 가상 공간 내 컨퍼런스 홀에서 강연을 하거나, 뷰어로 제품의 상세정보 등을 표기하도록 적용할 수 있으며, 웹소켓(Web Socket)을 이용하여 채팅 서버로 데이터를 송/수신하거나, 외부 API를 연동하여 아이프레임(iframe) 형태로 뷰어에서 단체 화상채팅이나 웨비나를 진행하도록 적용할 수 있다.According to one embodiment of the present invention, the object or marker for the interactive activity can be applied in the packaging process of 3D content, and is specifically inserted into a specific area of the virtual space or displayed through a viewer, etc. when a specific button is clicked. It can be applied to express specific information or perform a predefined action. For example, a video marker can be used to give a lecture in a conference hall in a virtual space, display detailed product information, etc. using a viewer, and send/receive data to a chat server using a Web Socket. By linking an external API, it can be applied to conduct group video chats or webinars in the viewer in the form of an iframe.
본 발명의 일실시예에 따른 오브젝트 또는 마커로는, 이미지나 동영상 또는 웹페이지 등을 모달(modal) 형태로 가상 공간 내에 노출시켜 부가적인 정보를 취득하게 하는 기본 마커, 가상 공간 내부의 특정 벽면이나 오브젝트 상에 이미지 또는 동영상을 재생하는 용도로 사용되는 뷰어 마커, 가상 공간 내에 배치된 인체 등 다양한 형상을 갖는 모델 자체를 마커화하여 상호작용 시 기본 마커의 기능 또는 커스텀 기능 등을 부여할 수 있는 3D 모델 마커, 가상 공간 콘텐츠가 외부 웹서비스 내에 포함될 경우, 외부와 포스트 메시지(Post Message)형태로 데이터 커뮤니케이션을 가능케 하는 외부 상호작용 마커, TTS(Text-To-Speech) 및 얼굴 재구성(Face Reconstruction) 기술로 제작된 AI 휴먼을 가상 공간 내에 배치하는 특수 마커, 외부 링크 혹은 서비스(설문조사, 화상채팅, 웨비나 등)와 연동할 수 있도록 하는 기타 마커 등이 있을 수 있으나, 이에 제한되지는 않는다.Objects or markers according to an embodiment of the present invention include a basic marker that exposes an image, video, or web page in a virtual space in a modal form to obtain additional information, a specific wall inside the virtual space, or A 3D marker that marks the model itself with various shapes, such as a viewer marker used to play images or videos on an object or a human body placed in a virtual space, and gives basic marker functions or custom functions during interaction. Model marker, external interaction marker that enables data communication in the form of a post message with the outside world when virtual space content is included in an external web service, TTS (Text-To-Speech) and face reconstruction technology There may be special markers that place AI humans created in virtual space, external links, or other markers that allow linking with services (surveys, video chats, webinars, etc.), but are not limited to these.
한편, 도 12는 본 발명의 일실시예에 따른 웹 기반 가상 공간 3D 콘텐츠 패키징 서비스를 위한 서버(130)의 구성 블록도이고, 도 13은 본 발명의 일실시예에 따른 프로세서(240)의 상세 구성 블록도이며, 도 14 내지 15는 본 발명의 일실시예에 따른 3D 콘텐츠 처리 과정을 설명하기 위해 도시한 순서도이다.Meanwhile, FIG. 12 is a block diagram of the configuration of the server 130 for a web-based virtual space 3D content packaging service according to an embodiment of the present invention, and FIG. 13 is a detailed view of the processor 240 according to an embodiment of the present invention. It is a structural block diagram, and Figures 14 and 15 are flowcharts shown to explain the 3D content processing process according to an embodiment of the present invention.
먼저 도 12를 참조하면, 웹 기반 가상 공간 3D 콘텐츠 패키징 서비스를 제공하기 위한 서버(130)는, 어카운트(210), IAM(Identity and Access Management)(220), 에디터(230), 프로세서(240), 플레이어(250), 및 CDN(Contents Delivery Network)(260)을 포함하여 구현될 수 있다. 다만, 본 발명은 이에 한정되는 것은 아니며, 하나 또는 그 이상의 다른 구성요소들을 포함하여 구현되거나 그 반대일 수 있다. First, referring to FIG. 12, the server 130 for providing a web-based virtual space 3D content packaging service includes an account 210, IAM (Identity and Access Management) 220, an editor 230, and a processor 240. , a player 250, and a Content Delivery Network (CDN) 260. However, the present invention is not limited to this and may be implemented including one or more other components or vice versa.
한편, 도 12에서는 하나의 구성요소로 표현되었다고 하더라도 그것은 복수의 구성요소들이 포함된 모듈 형태이거나 그 반대일 수 있다. 예를 들어, 도 12의 프로세서(240)는 하나의 모듈 형태로 도 13과 같은 구성일 수 있다. 도 12에서 에디터(230)와 프로세서(240)는 3D 콘텐츠를 배포하기 전 그 처리에 관한 구성이고, 플레이어(250)와 CDN(260)는 3D 콘텐츠의 배포 및 그 처리에 관한 구성으로 볼 수 있다.Meanwhile, even if it is expressed as a single component in FIG. 12, it may be in the form of a module containing a plurality of components or vice versa. For example, the processor 240 of FIG. 12 may have the same configuration as FIG. 13 in the form of a single module. In FIG. 12, the editor 230 and processor 240 are components related to processing 3D content before distributing it, and the player 250 and CDN 260 can be viewed as components related to distribution of 3D content and its processing. .
어카운트(210)는, 사용자 단말(110), 즉 사용자 계정의 등록(register)을 담당할 수 있으며, IAM(220)은, 사용자 계정의 등록 및 관리를 위한 것으로, 토큰(Token) 베이스일 수 있다. 또한 IAM(220)은, 사용자 계정의 접근 레벨 내지 권한 등에 관한 관리도 할 수 있다. 그 밖에, IAM(220)은, 사용자 계정의 사용자 데이터를 관리할 수도 있다.The account 210 may be responsible for registering the user terminal 110, that is, the user account, and the IAM 220 is for registering and managing the user account and may be token-based. . Additionally, the IAM 220 can also manage user account access levels and permissions. In addition, IAM 220 may manage user data of user accounts.
본 발명에서 에디터(230)는, 사용자가 로그인을 하면 어카운트(210)와 IAM(220)을 통해 사용자를 확인하되 그 권한에 따른 동작을 수행할 수 있는데, 예컨대, 권한이 있는 경우 사용자 단말(110)은 서버(130)의 에디터에 접속할 수 있다. 에디터(230)는 웹 에디터의 일종으로, 가상 공간을 나타내는 3D 콘텐츠의 프리뷰 기능(preview function)을 제공할 수 있으며, 좌표 기반으로 가상 공간 내 오브젝트의 핸들링이 가능하고, 이들을 배포하는 기능을 제공할 수 있다. 에디터(230)는 전술한 기능과 관련된 데이터를 클라우드 플랫폼으로부터 전달받아 제공할 수 있다.In the present invention, when a user logs in, the editor 230 can verify the user through the account 210 and IAM 220 and perform operations according to the authority. For example, if the user has the authority, the editor 230 can check the user through the account 210 and IAM 220. ) can access the editor of the server 130. The editor 230 is a type of web editor that can provide a preview function of 3D content representing a virtual space, can handle objects in the virtual space based on coordinates, and can provide a function to distribute them. You can. The editor 230 can receive and provide data related to the above-described functions from the cloud platform.
전술한 에디터(230)가 기본 설정 등과 관련된 것이라면, 프로세서(240) 는 기본 설정 등에 따른 실제 데이터의 처리와 관련된 것으로 볼 수 있다. 프로세서(240)는 API를 통하여 플러그-인으로부터 3D 콘텐츠 데이터를 다운로드하고 에디터(230)를 통하여 메타데이터(metadata), 3D 모델 파일들(3D model files) 및/또는 다양한 360 이미지들을 수신하여 프로세싱할 수 있다. 한편, 실시예에 따라, 상기 에디터(230)는 전술한 프로세서(240)의 기능까지 포함하는 의미일 수 있다.If the above-described editor 230 is related to basic settings, etc., the processor 240 can be viewed as related to processing actual data according to basic settings, etc. The processor 240 downloads 3D content data from the plug-in through the API and receives and processes metadata, 3D model files, and/or various 360 images through the editor 230. You can. Meanwhile, depending on the embodiment, the editor 230 may also include the functions of the processor 240 described above.
한편, 플러그-인의 데이터 커뮤니케이션, 즉 프로토콜(Protocol)은 다음과 같다.Meanwhile, the data communication of the plug-in, that is, the protocol, is as follows.
로그인과 관련해서는, 예를 들어 RESTful API(Application Programming Interface)를 통해 Authzip(IAM) 서버(220) 단으로 로그인 요청을 보내어 토큰을 발급받고, 상기 토큰을 통하여 이후 서버(130)와의 통신에서 인증 절차를 수행할 수 있다. 한편, 데이터의 다운로드/업로드(Data download/upload)와 관련해서는, 예를 들어 RESTful API를 통해 백스테이지(310)에서 관리하는 투어 정보(tour information)를 읽어 들이고, 구축된 데이터를 프로세싱하여 생성 혹은 갱신할 수 있다. 3D 모델, 360 이미지 등의 리소스도 백스테이지 API를 통해 업로드 될 수 있다.Regarding login, for example, a token is issued by sending a login request to the Authzip (IAM) server 220 through a RESTful API (Application Programming Interface), and the authentication process is performed in subsequent communication with the server 130 through the token. can be performed. Meanwhile, regarding data download/upload, for example, tour information managed by the backstage 310 is read through RESTful API, and the constructed data is processed to generate or It can be renewed. Resources such as 3D models and 360 images can also be uploaded through the backstage API.
도 13을 참조하면, 프로세서(240)는 백스테이지(backstage)(310), 관계형 데이터베이스(RDB, Relational Database)(320), 람다(Lambda)(330) 및 심플 스토리지 서비스(S3, Simple Storage Service)(340)를 포함할 수 있다. Referring to FIG. 13, the processor 240 includes a backstage 310, a relational database (RDB) 320, a Lambda 330, and a simple storage service (S3). It may include (340).
백스테이지(310)는 플러그-인을 통해 수신되는 가상 공간 데이터와, 에디터(230)를 통해 수신되는 메타데이터(metadata), 3D 모델 파일들(3D model files), 360 이미지들을 수신하여 실제 프로세싱할 수 있다. 이러한 백스테이지(310)는 투어 스키마 관리(tour schema management), 공간 메타데이터 관리(spatial metadata management), 3D 모델 및 360 이미지 리소스 관리(3D model and 360 image resource management), 에디팅 퍼미션 관리(editing permission management), 배포 관리(version)(publish management), 컨커런트 액세스 제어(concurrent access control) 등을 수행할 수 있다.The backstage 310 receives virtual space data received through a plug-in, metadata, 3D model files, and 360 images received through the editor 230 and performs actual processing. You can. This backstage 310 includes tour schema management, spatial metadata management, 3D model and 360 image resource management, and editing permission management. ), version management (publish management), concurrent access control, etc. can be performed.
백스테이지(310)는 페이 관리(pay management), 제품 플랜 관리(product plan management), 순환 페이먼트 지원(recurring payment support) 등을 위한 페이먼트 모듈(payment module)로 리소스 초과 체크(resource exceed check)를 전송할 수 있다.The backstage 310 transmits a resource exceed check to the payment module for pay management, product plan management, recurring payment support, etc. You can.
관계형 데이터베이스(320)는, 백스테이지(310)에서 처리된 메타데이터를 저장할 수 있다. 관계형 데이터베이스(320)는, 트랜잭션 보증(transaction guarantee)과 관련된 데이터도 저장할 수 있다.The relational database 320 may store metadata processed in the backstage 310. The relational database 320 may also store data related to transaction guarantees.
람다(330)는, 백스테이지(310)로부터 이미지를 수신하여, 크롭(crop), 압축(compression) 등과 같은 이미지 프로세싱을 담당할 수 있다. 람다(330)는, 백스테이지(310)로부터 모델을 수신하여 모델 프로세싱(model processing)을 담당할 수도 있다.Lambda 330 may receive an image from the backstage 310 and be responsible for image processing such as cropping and compression. Lambda 330 may receive a model from the backstage 310 and be responsible for model processing.
심플 스토리지 서비스(340)는, 백스테이지(310)와 람다(330)에서 처리된 데이터를 저장할 수 있다. 심플 스토리지 서비스(340)는, 3D 모델과 360 이미지뿐만 아니라 백스테이지(310)를 통해 배포된 메타데이터 파일을 저장할 수 있다. 이 때, 메타데이터 파일은 json 타입일 수 있으나, 이에 제한되지는 않는다.The simple storage service 340 can store data processed in the backstage 310 and lambda 330. The simple storage service 340 can store metadata files distributed through the backstage 310 as well as 3D models and 360 images. At this time, the metadata file may be of json type, but is not limited thereto.
플레이어(250)는, 사용자 단말(120)의 요청에 따라 배포된 3D 가상 공간 콘텐츠의 재생을 지원할 수 있다. 상기 플레이어(250)는 본 발명에 따라 3D 데이터에서 추출, 경량화, 자동화, 패키징 과정을 거쳐 배포된 3D 가상 공간 콘텐츠의 재생을 지원하여, 단말이 가상 공간에 방문하거나 참여할 수 있도록 하는 웹 기반 서비스이며, 배포된 3D 가상 공간 콘텐츠의 메타데이터를 기반으로 리소스영상, 이미지, 3D 마커 등)들을 로드하여 렌더링 하는 기능, 씬 간의 이동 및 테마변경 기능, 각종 마커를 통한 부가정보 제공, 반응형 웹 서비스 등의 기능을 제공할 수 있다.The player 250 may support playback of 3D virtual space content distributed according to a request from the user terminal 120. The player 250 is a web-based service that supports playback of 3D virtual space content distributed through the process of extraction, lightweighting, automation, and packaging from 3D data according to the present invention, allowing the terminal to visit or participate in the virtual space. , Function to load and render resource images, images, 3D markers, etc.) based on metadata of distributed 3D virtual space content, function to move between scenes and change themes, provision of additional information through various markers, responsive web service, etc. functions can be provided.
플레이어(250)는, 앞서 설명한 바와 같이 일반 사용자를 대상으로 별도의 로그인 과정 없이 3D 가상 공간 콘텐츠를 경험하고 참여할 수 있도록 제공될 수도 있으나, 이와 달리 외부 홈페이지에 임베드(Embed) 형태로 제공할 경우에는 정해진 URL 만을 통해서 상기 3D 가상 공간 콘텐츠에 접근할 수 있도록 하기 위해 HTTP 프로토콜의 리퍼러(Referer) 헤더를 기반으로 하여 접근을 제한하거나 우회하도록 설정할 수도 있다. 리퍼러는 웹 상에서 다른 페이지로 이동할 시 이동 전의 도메인을 기록하는 헤더 값으로, 특정 웹 사이트 상에서 플레이어(250)로 진입할 때 화이트리스트(Whitelist)에서 도메인을 비교하여, 일치하면 접근하도록 허용하고 불일치하면 제한을 하는 일종의 방화벽이 구현되도록 할 수 있다. 사용자는 AWS S3(Simple storage service)와 AWS CloudFront(CDN)상에 배포된 메타데이터와 리소스를 HTTP를 통해 로드하게 된다.As described above, the player 250 may be provided to general users so that they can experience and participate in 3D virtual space content without a separate login process. However, if provided in an embedded form on an external homepage, the player 250 may be provided to general users. In order to allow access to the 3D virtual space content only through a designated URL, access can be restricted or bypassed based on the Referer header of the HTTP protocol. The referrer is a header value that records the domain before moving when moving to another page on the web. When entering the player 250 on a specific website, the referrer compares the domain in the whitelist. If it matches, access is allowed. If it does not match, access is allowed. It is possible to have some kind of firewall implemented that imposes restrictions. Users load metadata and resources distributed on AWS S3 (Simple storage service) and AWS CloudFront (CDN) through HTTP.
플레이어(250)는, 사용자에게 메타버스 환경의 가상 공간 투어를 제공할 수 있으며, 재생 중인 3D 콘텐츠에 대한 사용자 단말(120)의 다양한 액션(요청)에 대응할 수 있다. 이 때, 상기 다양한 액션이라 함은 예를 들어, 핫스팟(hotspot) 선택에 따라 뷰 제공, 화면 전환, 층 이동 등을 포함할 수 있으며, 더 나아가서는 본 발명에서 설명한 마커 등을 통해 제공할 수 있는 다양한 기능을 포함할 수 있다. 유사하게, 플레이어(250)는 사용자 단말(120)의 쿼리 파라미터 옵션들을 지원할 수도 있는데, 여기서 쿼리 파라미터 옵션들에는 앞서 설명한 임베드(embed), 씬 시작(start scene) 등이 포함될 수 있다. 한편, 플레이어(250)는, 반응형 웹(responsive web) 서비스를 제공할 수도 있다.The player 250 can provide a virtual space tour of the metaverse environment to the user and can respond to various actions (requests) of the user terminal 120 for the 3D content being played. At this time, the various actions may include, for example, providing a view, changing the screen, moving to a floor, etc. according to the selection of a hotspot, and further, can be provided through markers, etc. described in the present invention. It can contain a variety of functions. Similarly, the player 250 may support query parameter options of the user terminal 120, where the query parameter options may include embed, start scene, etc. described above. Meanwhile, the player 250 may provide a responsive web service.
한편, 누구나 쉽고 빠르게 실시간으로 3D 콘텐츠를 바탕으로 하는 가상 공간 서비스를 경험할 수 있도록 하기 위해서는, 표준화되고 간소화된 인프라 운영환경을 구축하는 것이 필수이다. 이상적인 표준 인프라 환경은 일관성을 확보하고 복잡성을 줄이는 것에서 시작되며, 일관된 구성요소, 인터페이스(Interface), 프로세스(Process)를 통해 달성할 수 있다.Meanwhile, in order to allow anyone to easily and quickly experience virtual space services based on 3D content in real time, it is essential to establish a standardized and simplified infrastructure operating environment. An ideal standard infrastructure environment begins with ensuring consistency and reducing complexity, which can be achieved through consistent components, interfaces, and processes.
간소화된 인프라는 관리와 운영이 용이하기 때문에 프로비저닝(Provisioning), 확장, 문제해결, 장애복구 등을 쉽게 수행할 수 있다. 잘 알려져 있고 단순화된 인프라를 사용한다면 표준화된 운영절차와 프로세스를 바탕으로 보다 적은 수의 인력이 효율적으로 인프라 운영을 할 수 있게 된다. 따라서, 효율적이고 안정적으로 인프라 운영을 할 수 있다면, 결국 사용자들에게 실시간으로 고품질의 가상 공간 서비스를 제공할 수 있게 되는 것이다. 따라서, 본 발명은 일정기간 또는 순간적으로 높은 트래픽에서의 무결성과 고가용성을 확보하는 것이 가능하고, 컴퓨팅 리소스의 낭비를 차단하는 효율성을 보유하며, 변화하는 워크로드를 지원할 수 있는 유연성과 함께, 구축된 가상공간 자산을 안전하게 보관할 수 있는 보안성 등을 종합적으로 고려하여, 온프레미스(On-premise)가 아닌 클라우드를 사용한 인프라를 이용하는 것이다.Simplified infrastructure is easy to manage and operate, making provisioning, expansion, troubleshooting, and disaster recovery easy. If a well-known and simplified infrastructure is used, a smaller number of people can efficiently operate the infrastructure based on standardized operating procedures and processes. Therefore, if the infrastructure can be operated efficiently and stably, it will eventually be possible to provide high-quality virtual space services to users in real time. Therefore, the present invention is capable of securing integrity and high availability under high traffic for a certain period of time or instantaneously, has efficiency in preventing waste of computing resources, and has the flexibility to support changing workloads. By comprehensively considering the security of storing virtual space assets safely, an infrastructure using the cloud is used rather than on-premise.
과거에는 인프라 확장을 위해서는 서버의 증설이 필요하였으며, 이를 위해 구매한 서버가 물리적으로 도착하기까지 상당한 시간이 걸리는 불편함이 있었으나, 이와 달리 클라우드의 경우 비용 결제 후 즉시 사용이 가능하여 만약 트래픽이 폭주할 경우 즉각적인 인프라 증설이 가능하여 빠르고 손쉬운 대응이 이루어질 수 있다. In the past, expansion of infrastructure required additional servers, and there was the inconvenience of taking a significant amount of time for the servers purchased for this to physically arrive. However, in the case of the cloud, it can be used immediately after payment, so there is no need to worry if traffic surges. If so, immediate infrastructure expansion is possible, allowing for a quick and easy response.
유사하게, 클라우드의 CDN(AWS CloudFront)을 WEB 서버 대신 사용하기 때문에 HTTPS 엔드포인트를 제공할 뿐만 아니라 대기 시간 또한 줄이고 콘텐츠를 빠르게 전송할 수 있으므로, 사용자 폭주에 대비한 유휴 서버를 확보할 필요가 없음에 따른 비용효율화 및 전세계 어디서든 실시간 3D 가상 공간 콘텐츠를 제공할 수 있는 안정성을 확보할 수 있다.Similarly, since the cloud's CDN (AWS CloudFront) is used instead of a WEB server, it not only provides HTTPS endpoints, but also reduces waiting time and delivers content quickly, eliminating the need to secure idle servers in preparation for a deluge of users. This ensures cost efficiency and the stability to provide real-time 3D virtual space content anywhere in the world.
또한 서비스 구축에 필요한 인프라의 규모에 대해 예상이 어긋나는 경우, 과거에는 인프라 부족 또는 잉여 발생 시 상응하는 비용 부담이 발생했지만, 클라우드를 사용할 경우에는 실시간으로 증감이 가능하되, 사용한 만큼만 비용을 지불하면 되므로 비용 절감 및 효율적으로 비용을 관리할 수 있는 효과가 있다. In addition, if the size of the infrastructure required to build a service is different from expectations, in the past there was a corresponding cost burden when there was a shortage or surplus of infrastructure, but when using the cloud, it is possible to increase or decrease in real time, but you only have to pay for what you use. It has the effect of reducing costs and managing costs efficiently.
또한, 구축된 실시간 3D 가상 공간 콘텐츠를 높은 보안성을 토대로 안전하게 보관할 수 있으며, 글로벌 클라우드 서비스 업체들은 전세계 주요 대륙에 데이터 센터를 보유하고 있어 어디서나 빠른 속도로 실시간 3D 가상 공간 콘텐츠를 경험할 수 있는 효과가 있다.In addition, the built real-time 3D virtual space content can be safely stored based on high security, and global cloud service providers have data centers on major continents around the world, allowing you to experience real-time 3D virtual space content at high speed from anywhere. there is.
CDN(260)는, 플레이어(250)의 요청에 따라 AWS 클라우드 프론트와 캐싱을 지원하고, 상기 플레이어(250)의 요청을 심플 스토리지 서비스(340)에 전달할 수 있다.The CDN 260 supports AWS cloud front and caching according to the request of the player 250, and can forward the request of the player 250 to the simple storage service 340.
서버(130)(에디터와 프로세서를 포함)는 실시간 360도 이미지 및 3D 모델을 활용하여 실감도 높은 3D 가상 공간 콘텐츠를 구축할 수 있는 웹 에디터 서비스를 제공할 수 있다. 또한, 서버(130)는 실감도 높은 3D 가상 공간 콘텐츠 구축을 위하여, 관리 기능, 투어 메인 기능, 임포트 기능, 편집 기능, 및 배포 기능을 제공할 수 있고, 가상 공간 통계 기능을 제공할 수도 있다. The server 130 (including an editor and a processor) can provide a web editor service that can build highly realistic 3D virtual space content using real-time 360-degree images and 3D models. In addition, the server 130 may provide management functions, tour main functions, import functions, editing functions, and distribution functions in order to construct highly realistic 3D virtual space content, and may also provide virtual space statistics functions.
가상 공간 통계 기능이란 구체적으로 3D 가상 공간 콘텐츠에 접근한 사용자의 고객행동 데이터를 분석하여 콘텐츠에 접근한 사용자수, 체류시간, 유입경로, 선호페이지, 클릭이벤트, 국가별 사용자, 유지율 등을 구글 어낼리틱스(Google Analytics) 등을 이용하여 커스텀 이벤트(custom event)형태로 저장하여 제공할 수 있으나, 이는 예시일 뿐 다양한 형태로 제공할 수 있다. 또한, 통계 정보뿐만 아니라 사용자의 비정형 로그 데이터를 실시간으로 수집하고 도식화 된 대시보드(dashboard) 형태로 제공하는 것 또한 가능할 수 있다.The virtual space statistics function specifically analyzes the customer behavior data of users who accessed 3D virtual space content and analyzes the number of users who accessed the content, stay time, inflow path, preferred page, click event, users by country, retention rate, etc. through Google. It can be saved and provided in the form of a custom event using Google Analytics, etc., but this is only an example and can be provided in various forms. In addition, it may be possible to collect not only statistical information but also user's unstructured log data in real time and provide it in the form of a schematic dashboard.
상기 관리 기능은, 투어 생성 및 관리뿐만 아니라 복수의 사용자 계정들이 팀(team)으로 작업하는 경우에는 해당 투어가 공유될 수 있도록 처리할 수 있다. 상기 관리 기능에서는 또한, 가이드(guide)도 제공할 수 있다.The management function not only creates and manages tours, but also allows the tours to be shared when multiple user accounts work as a team. The management function may also provide a guide.
상기 투어 메인 기능은, 예를 들어 도 31의 (a)에 도시된 바와 같이, 투어에 대한 제목/설명/태그/로고/대표 이미지 등을 기본 설정 사항, 시작 메시지와 같은 안내 문구 관리뿐만 아니라 CMS 프로젝트 연동 기능(예를 들어, 채팅, 고객문의, 통계)을 제공할 수 있다.For example, as shown in (a) of FIG. 31, the tour main function not only manages basic settings such as title/description/tag/logo/representative image for the tour and guidance text such as a start message, but also manages the CMS. Project integration functions (e.g. chat, customer inquiry, statistics) can be provided.
임포트 기능은, 예를 들어 도 31의 (b)에 도시된 바와 같이, 해당 투어에 필요한 이미지 생성/변경/삭제 등 기능, 필터 및 검색 기능, 플로어(Floor) 및 테마(Theme) 생성/변경/삭제 기능 등을 제공할 수 있다. 한편, 임포트 기능은, 멀티플 업데이트(Multiple update)도 지원할 수 있다.The import function, for example, as shown in (b) of FIG. 31, includes functions such as creating/editing/deleting images required for the tour, filter and search functions, and creating/changing/changing floors and themes. A delete function, etc. can be provided. Meanwhile, the import function can also support multiple updates.
편집 기능은, 키맵/프리뷰 기능, 3D 모델링 기능 지원, 이동 및 각종 액션(Hotspot) 편집 기능, Undo/Redo 기능, 자동 저장 기능, 동시 작업 제한 기능, 기타 편집 관련 기능 등을 제공할 수 있다. 예를 들어, 도 32의 (a)에서는 이러한 편집 기능과 관련하여 TOP 뷰를, 도 32의 (b)에서는 ISO 뷰를 예시하였다. 도 32의 (a)와 도 32의 (b)에서 이미지 내 원형 아이템은 카메라 포인트와 관련된 핫스팟을 나타내고 이러한 핫스팟의 개수는 임의 설정이 가능하다. 그 밖에, 상기 이미지 내 복수의 핫스팟들 중 하나의 핫스팟이 선택되면, 선택된 핫스팟에 설정된 카메라 포인트 예를 들어, 카메라 앵글도 표시될 수 있다.Editing functions can provide keymap/preview functions, 3D modeling function support, movement and various action (Hotspot) editing functions, Undo/Redo functions, auto-save functions, simultaneous operation limitation functions, and other editing-related functions. For example, Figure 32 (a) illustrates the TOP view in relation to this editing function, and Figure 32 (b) illustrates the ISO view. In Figures 32(a) and 32(b), circular items in the images represent hotspots related to camera points, and the number of these hotspots can be arbitrarily set. In addition, when one hotspot among the plurality of hotspots in the image is selected, a camera point, for example, a camera angle, set at the selected hotspot may also be displayed.
그 밖에, 편집 기능과 관련하여, 전술한 핫스팟들 중 복수의 핫스팟들이 소정 시간에 순차적으로 선택이 된 경우에는, 선택된 순서에 따라 핫스팟의 순서가 결정되고, 임의로 상기 순서에 따라 도 32의 (a)와 도 32의 (b)과 같이, 우측 화면(일종의 프리뷰 기능)이 자동 재생될 수 있도록 설정할 수 있다. 또는, 복수의 핫스팟들 중 하나의 핫스팟이 선택되면, 미리 설정되거나 선택된 핫스팟의 이해를 돕기 위해 다음 선택 추천 핫스팟이 표시되도록 하여 투어 가이드를 할 수도 있다.In addition, in relation to the editing function, when a plurality of hotspots among the above-described hotspots are sequentially selected at a predetermined time, the order of the hotspots is determined according to the selected order, and the order of hotspots is randomly selected according to the order (a) of FIG. 32 ) and (b) in Figure 32, the right screen (a type of preview function) can be set to automatically play. Alternatively, when one hotspot among a plurality of hotspots is selected, a tour guide may be provided by displaying the next recommended hotspot to help understand the preset or selected hotspot.
비록 도시되진 않았으나, 도 32의 (a)와 도 32의 (b)의 좌측 이미지 내 각 핫스팟에는 넘버링이 제공되고, 미리 설정된 소정 시간 내에 제공된 넘버링 중 최초 넘버링과 최종 넘버링 또는 제1 넘버링에서 제2 넘버링(각각, 임의의 넘버링)이 선택되면, 넘버링 순서에 따라 자동 재생될 수도 있다. 상기 넘버링은 사용자 단말(110)이나 서버(130)에 의해 설정되거나 사용자 단말(120)에 의해 자주 시청된 뷰의 수를 기초로 자동 설정될 수도 있다. 상기에서, 선택은 드래그 방식으로 이루어질 수도 있다.Although not shown, numbering is provided to each hotspot in the left images of Figures 32 (a) and 32 (b), and the first numbering and final numbering among the numbering provided within a predetermined time or the second numbering in the first numbering If numbering (respectively, arbitrary numbering) is selected, it may be automatically played according to the numbering order. The numbering may be set by the user terminal 110 or the server 130, or may be automatically set based on the number of views frequently viewed by the user terminal 120. In the above, selection may be made by dragging.
그 밖에, 전술한 바와 달리, 도 32의 (a)와 도 32의 (b)의 좌측 이미지에서 하나의 핫스팟이 선택되거나 디폴트 핫스팟에 따라 도 32의 (a)와 도 32의 (b)의 우측 이미지가 제공된 경우에는, 좌측의 다른 핫스팟을 선택하지 않더라도 카메라 앵글의 변화에 따라 이어지는 핫스팟으로 이동할 수 있도록 제공할 수 있다. 예를 들어, 이 경우 도 32의 (a)와 도 32의 (b)의 좌측 이미지에는 상기 카메라 앵글의 변화에 따라 선택 가능한 핫스팟 정보가 선택된 핫스팟과 유사한 방식으로 하이라이트(highlight) 표시되어 제공되고, 우측 이미지에서는 다른 핫스팟으로의 이동 선택 여부 가이드가 제공될 수 있다.In addition, unlike the above, one hotspot is selected from the left images of Figures 32 (a) and (b) of Figure 32, or the right side of Figures 32 (a) and (b) according to the default hotspot. If an image is provided, it can be provided so that you can move to the next hotspot according to a change in camera angle even if you do not select another hotspot on the left. For example, in this case, in the left images of Figures 32(a) and 32(b), hotspot information that can be selected according to changes in the camera angle is highlighted and provided in a manner similar to the selected hotspot, In the image on the right, a guide may be provided on whether to select a move to another hotspot.
배포 기능과 관련해서는, 도 33과 같이 최종 검수 화면(프리뷰) 및 배포 기능과, 씬별 진입 URL을 제공할 수 있다. 상기 배포 기능은 호스팅, 임베딩 등 방식을 포함할 수 있다.Regarding the distribution function, the final inspection screen (preview), distribution function, and entry URL for each scene can be provided, as shown in Figure 33. The distribution function may include hosting, embedding, etc.
한편, 에디터의 데이터 커뮤니케이션, 즉 프로토콜은 다음과 같다.Meanwhile, the editor's data communication, or protocol, is as follows.
로그인과 관련해서는, 어카운트 도메인으로 재지정(redirect)하여 통합 로그인 처리하고 콜백(callback)으로 토큰을 받아와서 로그인 처리할 수 있다.Regarding login, you can redirect to the account domain to process integrated login and receive a token as a callback to process login.
투어 생성/변경/삭제 등과 관련해서는, 예를 들어 RESTful API를 통해 백스테이지(310)에 단계별로 불러오기/저장을 수행할 수 있다. 사용자 단말(110)에서 리소스 파일(image, model, etc.)을 업로드를 하는 경우도 전술한 바와 같다.Regarding tour creation/change/deletion, etc., for example, step-by-step loading/saving can be performed on the backstage 310 through RESTful API. The case of uploading a resource file (image, model, etc.) from the user terminal 110 is the same as described above.
동시접속 제한과 관련해서는, 예를 들어 웹소켓(Websocket)을 사용하여 백스테이지(310)에 현재 연결된 세션을 관리할 수 있다.Regarding simultaneous access restrictions, for example, sessions currently connected to the backstage 310 can be managed using Websocket.
상기 플레이어(250)는, 웹빌더로 제작된 투어를 재생할 수 있는 웹 서비스로, 배포된 투어 메타데이터를 기반으로 리소스(이미지 및 영상, 3D 모델 등)들을 로드(load)하여 렌더링(rendering)하는 기능, 씬 간 이동 기능 및 테마 변경 기능, 그 밖에 각종 기능들을 핫스팟 버튼 혹은 콘텐츠 내 부착된 형태로 제공하는 기능, 쿼리 파라미터(query parameter) 형태로 부가 기능 제공, 반응형 웹 지원 기능 등을 제공할 수 있다. 상기에서, 각종 기능에는 이미지 슬라이더(image slider), 비디오 뷰어(video viewer), 3D 모델 뷰어(3D model viewer), 커스텀 HTML 뷰어(custom HTML viewer) 등이 포함될 수 있다.The player 250 is a web service that can play tours created with a web builder, and loads and renders resources (images, videos, 3D models, etc.) based on distributed tour metadata. functions, the ability to move between scenes and change themes, the ability to provide various other functions as hotspot buttons or attached to content, the provision of additional functions in the form of query parameters, and responsive web support functions. You can. In the above, various functions may include an image slider, video viewer, 3D model viewer, custom HTML viewer, etc.
한편, 플레이어(250)와 관련된 데이터 커뮤니케이션, 즉 프로토콜은 다음과 같다. 3D 콘텐츠 메이커인 사용자 단말(110)과 달리, 일반 사용자 대상으로 로그인 과정 없이 볼 수 있는 구조를 가질 수 있다. 데이터 로드와 관련하여, 심플 스토리지 서비스와 클라우드 프런트 상에 배포된 메타데이터, 리소스들을 HTTP로 로드할 수 있다. 채팅과 관련하여, 예를 들어 웹소켓을 이용하여 채팅 서버로 데이터를 송수신할 수 있다. 문의 폼과 관련하여, 예를 들어 RESTful API로 자피어(zapier) 서비스로 데이터를 전송할 수 있다. 통계와 관련하여, 앞서 설명한 바와 같이 예컨대, 고객 행동 데이터를 분석 서버(예를 들어, 구글 어낼리틱스와 같은)에 커스텀 이벤트(Custom event) 형태로 저장할 수도 있다. 상기 고객 행동 데이터에는, 씬 방문/체류시간(디폴트 타임 윈도우(default time window)를 미리 설정된 임의의 시간동안(예를 들어, 15seconds))로 카운트할 수 있으며, 핫스팟 액션 등도 포함될 수 있다.Meanwhile, the data communication, that is, the protocol, related to the player 250 is as follows. Unlike the user terminal 110, which is a 3D content maker, it can have a structure that allows general users to view it without a login process. Regarding data loading, metadata and resources distributed on the simple storage service and cloud front can be loaded using HTTP. Regarding chatting, for example, data can be sent and received to a chat server using websockets. Regarding the inquiry form, data can be sent to the Zapier service, for example, via RESTful API. Regarding statistics, as described above, for example, customer behavior data may be stored in the form of a custom event in an analysis server (e.g., Google Analytics). The customer behavior data may count scene visit/stay time (default time window for a preset random time (e.g., 15 seconds)), and may also include hotspot actions, etc.
서버(130)와 사용자 단말(110) 사이에서 3D 콘텐츠 처리 과정을 도 14 내지 15를 참조하여 설명하면, 다음과 같다.The 3D content processing process between the server 130 and the user terminal 110 will be described with reference to FIGS. 14 and 15 as follows.
먼저, 도 14를 참조하면, 사용자 단말(110)에서 3D 툴을 실행하여 3D 콘텐츠를 제작할 수 있다(S110).First, referring to FIG. 14, 3D content can be produced by executing a 3D tool on the user terminal 110 (S110).
서버(130)는 API를 이용하여 플러그-인을 통하여 사용자 단말(110)에서 제작된 3D 콘텐츠 데이터를 그대로 수신할 수 있다(S120).The server 130 can receive 3D content data produced in the user terminal 110 as is through a plug-in using the API (S120).
서버(130)(웹빌더)는 수신한 3D 콘텐츠 데이터를 편집 등 패키징(packaging)할 수 있다(S130).The server 130 (web builder) can edit and package the received 3D content data (S130).
서버(130)는 패키징한 3D 콘텐츠를 배포할 수 있다(S140).The server 130 can distribute the packaged 3D content (S140).
도 15를 참조하여, 패키징 작업 방식을 설명하면, 다음과 같다.Referring to FIG. 15, the packaging work method is described as follows.
서버(130)는 API를 이용하여 사용자 단말(110)에서 제작된 3D 콘텐츠 데이터가 수신되면, 이를 패키징하는데 이 경우, 패키징 작업 방식을 선택할 수 있다(S210). 이는 서버(130)에서 사용자 단말(110)의 이용 편의를 위하여 플로우 생성과 관련하여 템플릿(template, 또는 프리셋)을 제공함에 따른 것이다.When the server 130 receives 3D content data produced by the user terminal 110 using an API, it packages it. In this case, a packaging operation method can be selected (S210). This is because the server 130 provides a template (or preset) in relation to flow creation for the convenience of use of the user terminal 110.
제1 방식은, 서버(130)에서 디폴트값 정의가 가능한 모든 데이터가 지정되어 있는 신규 플로우를 생성하는 것이다(S220). 상기 제1 방식은 서버(130)에서 제공하는 템플릿의 프레임만 이용하는 방식일 수 있다.The first method is to create a new flow in the server 130 in which all data for which default values can be defined are specified (S220). The first method may be a method that uses only the frame of the template provided by the server 130.
반면, 제2 방식은, 서버(130)에서 템플릿에 샘플(sample)로 생성되어 있는 시퀀스(sequence), 모듈, 아이템 등을 그대로 이용하여 신규 플로우를 생성하는 것이다(S230). 상기 제2 방식은 서버(130)에서 제공하는 템플릿을 그래도 이용하는 방식일 수 있다.On the other hand, the second method is to create a new flow by using the sequence, module, item, etc. created as a sample in the template in the server 130 (S230). The second method may still use the template provided by the server 130.
한편, 제3 방식은, 서버(130)에서 템플릿 없이 신규 플로우를 자동 생성하는 것으로, 이 경우 시퀀스도 사용자가 생성할 수 있다(S240). 상기 제3 방식은 예컨대, API를 통해 사용자 단말(110)로부터 플러그-인을 통해 추출한 3D 콘텐츠 데이터를 바로 배포하는 방식일 수 있다.Meanwhile, in the third method, the server 130 automatically creates a new flow without a template. In this case, the user can also create the sequence (S240). The third method may be a method of directly distributing 3D content data extracted through a plug-in from the user terminal 110 through an API, for example.
한편, 상기 S230 단계와 S240 단계에서 신규 플로우가 생성이 된 경우에는, 서버(130)는 사용자 단말에서 설정, 공유 등 변경 사항과 이미지, 투어, 비디어 등의 모듈 편집 기능을 제공할 수 있다(S250).Meanwhile, when a new flow is created in steps S230 and S240, the server 130 may provide changes such as settings and sharing and editing functions for modules such as images, tours, and videos on the user terminal ( S250).
상기 S250 단계 이후 전술한 제1 내지 제3 방식으로 처리된 플로우 데이터가 배포될 수 있다. 이 때, 상기 배포 방식과 관련하여, 전술한 플레이어로 호스팅 배포, 임베딩 스크립트 생성, 파일 형태로 저장 등이 채택될 수 있다. 호스팅 배포 방식의 경우, 임의로 사용자 계정당 10개의 플로우 생성이 가능하도록 할 수 있다. After step S250, flow data processed in the first to third methods described above may be distributed. At this time, in relation to the distribution method, hosting distribution with the above-mentioned player, creation of an embedding script, storage in file format, etc. may be adopted. In the case of hosting distribution, 10 flows can be arbitrarily created per user account.
다음으로, 3D 가상 공간 콘텐츠 스트리밍 서비스에 대해 설명하면, 다음과 같다.Next, the 3D virtual space content streaming service is described as follows.
도 16은 본 발명의 일실시예에 따른 3D 가상 공간 콘텐츠 스트리밍 서비스를 위한 서버(130)의 구성 블록도이며, 도 17은 본 발명의 일실시예에 따른 3D 가상 공간 콘텐츠의 처리 과정을 설명하기 위해 도시한 순서도이다.Figure 16 is a block diagram of the configuration of the server 130 for a 3D virtual space content streaming service according to an embodiment of the present invention, and Figure 17 illustrates the processing process of 3D virtual space content according to an embodiment of the present invention. This is a flow chart shown for this purpose.
도 16을 참조하면, 3D 가상 공간 콘텐츠의 스트리밍 서비스를 위한 서버(130)는, 어카운트(610), IAM(620), 페이먼트 모듈(630), 라이브 콘솔(Live Console)(640), 프로세서(650), 클라우드 플랫폼(660), 플레이어(670), CAM(680), 시그널링 서버(690) 등을 포함할 수 있다. 3D 가상 공간 콘텐츠의 스트리밍 서비스를 위한 서버(130)는 반드시 도 16에 도시된 구성요소에 한정되지 않으며, 하나 또는 그 이상의 구성요소들을 더 포함하거나 그 반대일 수 있다. 개별 구성요소로 도시되었다고 하더라도 실시예에 따라 하나 또는 그 이상의 구성요소들이 모듈화될 수도 있고 그 반대일 수도 있다.Referring to FIG. 16, the server 130 for streaming service of 3D virtual space content includes an account 610, an IAM 620, a payment module 630, a Live Console 640, and a processor 650. ), cloud platform 660, player 670, CAM 680, signaling server 690, etc. The server 130 for a streaming service of 3D virtual space content is not necessarily limited to the components shown in FIG. 16 and may further include one or more components or vice versa. Even if shown as individual components, one or more components may be modularized or vice versa, depending on the embodiment.
한편, 도 16을 설명함에 있어서, 전술한 도 12 내지 13과 동일한 구성요소들은 해당 설명을 참조하고 여기서 중복 설명은 생략한다. 이하에서는 도 12 내지 13과 차이나는 구성을 위주로 하여 3D 가상 공간 콘텐츠의 스트리밍 서비스 제공에 대해 설명한다.Meanwhile, in describing FIG. 16, the same components as those in FIGS. 12 and 13 described above are referred to in the corresponding description, and redundant description is omitted here. Hereinafter, the provision of a streaming service for 3D virtual space content will be described, focusing on configurations that are different from those in FIGS. 12 and 13.
라이브 콘솔(Frontend)(640)은 3D 가상 공간 콘텐츠의 업로드/설정 변경 등을 담당하는 콘솔 웹 서비스로서, 다음과 같은 기능을 제공할 수 있다.The live console (Frontend) 640 is a console web service responsible for uploading/changing settings of 3D virtual space content, and can provide the following functions.
라이브 콘솔(640)은 라지 파일 업로드 기능, 플랜 선택 기능, 제어 패널 제공 기능을 제공할 수 있다. 관련하여, 콘텐츠 파일은 EXE 포맷(format)을 가지며 픽셀 스트리밍(pixel streaming enabled)이 가능할 수 있다. 라이브 콘솔(640)은 제어 패널 제공을 통하여 콘텐츠 온/오프, 버전 등에 대한 설정할 수 있으며, 최대 연결(Max connection), 퀄리티(Quality)(QoS: 상시 준비 VM 개수, 화질: FHD, HD, 등) 제어 등 커스터머 한계 설정(customer limit setting) 기능을 수행할 수 있다.The live console 640 can provide a large file upload function, a plan selection function, and a control panel provision function. Relatedly, the content file has an EXE format and may be pixel streaming enabled. The live console 640 provides a control panel to set content on/off, version, etc., as well as maximum connection and quality (QoS: number of always-ready VMs, quality: FHD, HD, etc.) Customer limit setting functions such as control can be performed.
한편, 라이브 콘솔(640)의 데이터 커뮤니케이션(프로토콜)은, 예를 들어 RESTful API를 통하여 프로세서(650), 즉 라이브와이어(Livewire) 백엔드에 파일을 업로드 및 제어 요청 전달할 수 있다.Meanwhile, the data communication (protocol) of the live console 640 can upload files and transmit control requests to the processor 650, that is, the Livewire backend, through RESTful API, for example.
플레이어(프론트엔드)(670)는, 스트리밍 플레이어로서 플레이어 내 다른 URL(예컨대, https://olimplayer.com/live/{content_id})로 WebRTC 기반으로 라이브 스트리밍 서비스를 제공할 수 있으며, 콘텐츠 연결을 위한 대기 화면 제공과 같은 불안정한 연결 제어 기능, WebRTC를 통한 화면 실시간 전송 기능, 콘텐츠 제어 기능(사용자 컨트롤 전송) 기능 등을 포함할 수 있다.The player (frontend) 670, as a streaming player, can provide a live streaming service based on WebRTC to another URL (e.g., https://olimplayer.com/live/{content_id}) within the player, and provides content connection. It may include unstable connection control functions such as providing a standby screen, real-time screen transmission function through WebRTC, and content control function (user control transmission) function.
플레이어(670)의 데이터 커뮤니케이션(프로토콜)은, 예를 들어 RESTful API를 통하여 프로세서(650)(즉, 라이브와이어)로부터 메타데이터 및 접속 프로토콜을 수신할 수 있으며, WebRTC를 통하여 VM(가상머신)으로부터 실시간 화면 데이터를 수신할 수 있다.Data communication (protocol) of the player 670 can, for example, receive metadata and connection protocols from the processor 650 (i.e., LiveWire) through a RESTful API, and from a VM (virtual machine) through WebRTC. Real-time screen data can be received.
프로세서(650)는 라이브와이어(백엔드)로 라이브 서비스의 메인 백엔드로 콘텐츠 관리, 사용자 요청 관리, 가상머신 관리 등을 수행할 수 있다.The processor 650 is a LiveWire (backend) and can perform content management, user request management, virtual machine management, etc. as the main backend of the live service.
프로세서(650)는 사용자별 콘텐츠 파일 관리, 콘텐츠 스트리밍 옵션 관리 등 콘텐츠 관리 기능, 리퀘스트 큐(Request queue)를 통해 연결까지 대기해야 하는 사용자 요청 및 상태 관리 등 사용자 요청 관리 기능, VM 스케줄러를 통해 재사용 극대화를 통해 비용을 최소화하고 사용자 경험을 높이는 가상 머신 관리 기능 등을 제공할 수 있다.The processor 650 provides content management functions such as content file management for each user and content streaming option management, user request management functions such as user request and status management that must wait for connection through a request queue, and maximizes reuse through a VM scheduler. It is possible to provide virtual machine management functions that minimize costs and improve user experience.
프로세서(650)의 데이터 커뮤니케이션(프로토콜)은, RESTful API를 통하여, 상기 라이브 콘솔(640)와 플레이어(670)에 API를 제공 및 클라우드 플랫폼(660)에 제어 및 상태 확인용으로 이용할 수 있다. 프로세서(650)는 웹소켓을 통하여 가상머신 상태 확인 및 기타 실시간 데이터용으로 이용할 수 있다.The data communication (protocol) of the processor 650 can be used to provide an API to the live console 640 and the player 670 and to the cloud platform 660 for control and status confirmation through RESTful API. The processor 650 can be used to check virtual machine status and other real-time data through web sockets.
라이브 콘솔(640)은 EXE 파일과 설정 요청을 프로세서(650)으로 전달할 수 있다. 프로세서(650)는 EXE 파일과 VM 액션들을 클라우드 플랫폼(660)으로 업로드할 수 있다. 여기서, 클라우드 플랫폼은 VM들과 공유 스토리지를 포함할 수 있다. CAM(Content Access Manager)(680)는 룰 기반 액세스 컨트롤을 수행하며, 퍼블릭/프라이빗(public/private) 체크와 페이드(paid) 체크를 프로세서(650)와의 관계에서 수행할 수 있다. 시그널링 서버(690)는 플레이어(670) 동작 요청에 따라 어드레스 교환(address exchange), 연결 메이커(connection maker), 퀄리티 컨트롤을 위한 시그널링을 프로세서(650)와의 관계에서 수행할 수 있다. 플레이어(670)는 클라우드 플랫폼(660)의 가상머신과의 관계에서 WebRTC 프로토콜에 따라 TURN 서버(미도시)를 통하여 릴레이 기능을 수행할 수 있다. 클라우드 플랫폼(660)은 GPU(Graphic Process Unit)의 지원을 받는 윈도우 기반 VM을 포함할 수 있는데, ElasticSearch(미도시)는 VM과 플레이어(670)를 통한 씬, 레이어, 핫스팟 등에 대한 사용자 액션 데이터에 관한 로그들을 수집할 수 있으며, 플레이어로 리턴할 수도 있다.The live console 640 can transmit EXE files and settings requests to the processor 650. The processor 650 may upload EXE files and VM actions to the cloud platform 660. Here, the cloud platform may include VMs and shared storage. The CAM (Content Access Manager) 680 performs rule-based access control and can perform public/private checks and paid checks in relationship with the processor 650. The signaling server 690 may perform signaling for address exchange, connection maker, and quality control in relationship with the processor 650 according to the operation request of the player 670. The player 670 can perform a relay function through a TURN server (not shown) according to the WebRTC protocol in relationship with the virtual machine of the cloud platform 660. The cloud platform 660 may include a Windows-based VM supported by a GPU (Graphics Process Unit), and ElasticSearch (not shown) provides user action data for scenes, layers, hotspots, etc. through the VM and player 670. Logs can be collected and returned to the player.
도 17을 참조하여, 3D 가상 공간 콘텐츠 파일 처리 과정을 설명하면, 다음과 같다.With reference to FIG. 17, the 3D virtual space content file processing process is described as follows.
사용자 단말(110)에서 3D 가상 공간 콘텐츠와 같은 라지 콘텐츠 파일이 생성되면, 실시간으로 라이브 콘솔(640)에서 상기 생성된 3D 가상 공간 콘텐츠 파일을 수신할 수 있다(S310).When a large content file such as 3D virtual space content is created in the user terminal 110, the generated 3D virtual space content file can be received in real time from the live console 640 (S310).
라이브 콘솔(640)은 API를 통해 수신한 3D 가상 공간 콘텐츠 파일과 설정 요청을 프로세서(650)에 업로드할 수 있다(S320).The live console 640 may upload the 3D virtual space content file and settings request received through the API to the processor 650 (S320).
프로세서(650)는 가상머신 스케줄링에 따른 가상머신 액션 데이터와 수신된 3D 가상 공간 콘텐츠 파일을 가상머신들을 포함한 클라우드 플랫폼(660)으로 업로드할 수 있다(S330).The processor 650 may upload virtual machine action data according to virtual machine scheduling and the received 3D virtual space content file to the cloud platform 660 including virtual machines (S330).
클라우드 플랫폼(660)에서 상기 프로세서(650)에 의해 스케줄링 된 가상머신을 통하여 수신된 3D 가상 공간 콘텐츠 파일을 처리할 수 있다(S340). 이 때, 가상머신에 의해 처리된 3D 가상 공간 콘텐츠 파일은 공유 저장소에 저장될 수 있다.The cloud platform 660 may process the 3D virtual space content file received through a virtual machine scheduled by the processor 650 (S340). At this time, the 3D virtual space content file processed by the virtual machine can be stored in shared storage.
시그널링 서버(690)를 거쳐 클라우드 플랫폼(660)의 가상머신에 의해 처리된 3D 가상 공간 콘텐츠는 플레이어(670)로 업로드되고 상기 플레이어(670)에서 스트리밍 서비스로 제공할 수 있다(S350).3D virtual space content processed by the virtual machine of the cloud platform 660 via the signaling server 690 is uploaded to the player 670 and can be provided as a streaming service by the player 670 (S350).
전술한 실시예와 관련하여, 이하에서는 3D 콘텐츠와 같은 빅데이터의 스트리밍을 위한 클라우드 구축 및 VM 스케줄링 프레임워크에 관하여 첨부된 도면을 참조하여 설명한다. 상기 클라우드 구축은 전술한 도 16의 클라우드 플랫폼에 대응 또는 반영될 수 있다. 이는 사용자 요청에 따른 VM 인스턴스(instance) 생성 및 스트리밍 실행 가능한 백엔드 서버 구축, 클라우드 환경 구축, 고신뢰/고성능 스트리밍 서비스 제공을 위한 VM 스케줄링 프레임워크에 관한 것이다.In relation to the above-described embodiments, the following describes a cloud construction and VM scheduling framework for streaming big data such as 3D content with reference to the attached drawings. The cloud construction may correspond to or reflect the cloud platform of FIG. 16 described above. This concerns a VM scheduling framework for creating VM instances according to user requests, building backend servers capable of running streaming, building a cloud environment, and providing high-reliability/high-performance streaming services.
웹소켓 및 RESTful API와 관련하여, 노멀 클라이언트들을 위한 웹소켓은, run(activate)/exit(deactivate), 그리고 어드미니스터(administrator)를 위한 RESTful API는 VM 생성(create)/VM 삭제(delete)/VM 상태(status) 등에 활용될 수 있다. 사용자 요청 큐의 핸들링, 파일 시스템과 같이 자동으로 마운트되는 공유 콘텐츠 스토어, VM 스케줄러, SQL 로그 기반 모니터링 등이 관계될 수 있다. 상기에서 VM 스케줄러와 관련하여, 예를 들어 기실행된 대기 가상머신 인스턴스가 있는 경우에 재활용 방안, 동시접속 제한 방안, 사용자 계정 비활성 및 연결 종료 시 일정시간 대기 후 인스턴스 종료 방안 등이 고려될 수 있다.Regarding WebSocket and RESTful API, WebSocket for normal clients is run(activate)/exit(deactivate), and RESTful API for administrator is VM create/delete. /Can be used for VM status, etc. This may involve handling of user request queues, automatically mounted shared content stores such as file systems, VM schedulers, SQL log-based monitoring, etc. Regarding the VM scheduler above, for example, in the case where there is a pre-executed standby virtual machine instance, a recycling method, a method of limiting simultaneous connections, a method of terminating the instance after waiting for a certain period of time when the user account is deactivated and the connection is terminated, etc. may be considered. .
도 18은 프레임워크의 전체 아키텍쳐를 도시한 도면이며, 도 19 내지 30은 각 시나리오에 따른 빅데이터 스트리밍 처리 과정을 설명하기 위해 도시한 도면이다.Figure 18 is a diagram showing the overall architecture of the framework, and Figures 19 to 30 are diagrams to explain the big data streaming processing process according to each scenario.
도 18을 참조하면, 프레임워크의 전체 아키텍처는, 클라이언트 단, VM 스케줄링 프레임워크 단, 및 클라우드 플랫폼 단으로 구성될 수 있다.Referring to FIG. 18, the overall architecture of the framework may be composed of a client stage, a VM scheduling framework stage, and a cloud platform stage.
각 단의 구성과 설명은 후술하는 각 시나리오에 따른 빅데이터 스트리밍 처리 과정과 함께 설명하며, 해당 구성요소들에 대한 상세 설명은 전술한 도 16의 설명을 참조한다.The configuration and description of each stage are explained along with the big data streaming processing process according to each scenario, which will be described later, and for a detailed description of the corresponding components, refer to the description of FIG. 16 described above.
먼저, 빅테이터 스트리밍 처리 과정에 대한 시나리오는 다음과 같이 정의될 수 있다. 제1 시나리오는 새로운 VM과 함께 액티베이션(activation)(도 19 및20 참조), 제2 시나리오는 재사용 가능한 VM 및 VM상의 콘텐츠와 함께 액티베이션(도 21 및 22 참조), 제3 시나리오는 새로운 VM과 함께 액티베이션(activation)(도 23 및 24 참조), 제4 시나리오는 재사용 가능한 VM 및 VM상의 콘텐츠와 함께 액티베이션(도 25 및 26 참조), 제5 시나리오는 새로운 VM과 함께 액티베이션(activation)(도 27 및 28 참조), 및 제6 시나리오는 재사용 가능한 VM 및 VM상의 콘텐츠와 함께 액티베이션(도 29 및 30 참조)이다.First, the scenario for the big data streaming processing process can be defined as follows. The first scenario is activation with a new VM (see Figures 19 and 20), the second scenario is activation with a reusable VM and the content on the VM (see Figures 21 and 22), and the third scenario is with a new VM. Activation (see Figures 23 and 24), the fourth scenario is Activation with a reusable VM and content on the VM (see Figures 25 and 26), and the Fifth Scenario is Activation with a new VM (Figures 27 and 28), and the sixth scenario is activation with reusable VMs and content on the VMs (see FIGS. 29 and 30).
먼저, 도 19와 20을 참조하여, 제1 시나리오(VM 인스턴스가 존재하지 않고 자원 할당이 가능한 경우)에 따른 처리 과정을 설명한다.First, with reference to FIGS. 19 and 20, the processing according to the first scenario (when a VM instance does not exist and resource allocation is possible) will be described.
클라이언트1에서 콘텐츠 식별자(contentId)와 함께 액티베이션 요청을 하면(1), VM 스케줄러는 스케줄링 큐를 통해 VM 스테이터스 테이블로 페치 요청(fetch request)을 전송할 수 있다(2). VM 스케줄러의 VM 스테이터스 테이블은 페치 요청 수신에 따라 데이터베이스에 로그 요청을 할 수 있다(3).When client 1 makes an activation request with a content identifier (contentId) (1), the VM scheduler can send a fetch request to the VM status table through the scheduling queue (2). The VM status table of the VM scheduler can make a log request to the database upon receiving a fetch request (3).
클라우드 플랫폼에서는 새로운 VM을 생성하고, 이렇게 생성된 새로운 VM을 콘텐츠 식별자와 함께 할당할 수 있다(4). 이때, 새롭게 생성된 VM 정보는 콘텐츠 식별자와 함께 VM 스테이터스 테이블에 기록될 수 있다.In the cloud platform, a new VM can be created and the new VM created in this way can be assigned with a content identifier (4). At this time, the newly created VM information may be recorded in the VM status table along with the content identifier.
VM 스케줄러는 VM 스테이터스 테이블을 참조하여 VM 정보(콘텐츠 식별자와 할당된 VM)를 시그널링 서버로 전송하고(5), 할당된 VM에서 시그널링 서버를 시그널링할 수 있다(6).The VM scheduler may refer to the VM status table to transmit VM information (content identifier and assigned VM) to the signaling server (5), and signal the signaling server from the assigned VM (6).
시그널링 서버는 레디 메시지를 VM 스케줄러로 전송하고(7), VM 스케줄러는 할당된 VM 정보와 함께 클라이언트1의 액티베이션 요청에 응답한다(8).The signaling server sends a ready message to the VM scheduler (7), and the VM scheduler responds to Client 1's activation request with the allocated VM information (8).
클라이언트1이 시그널링 서버를 시그널링하면(9), 클라이언트1과 할당된 VM 사이에 WebRTC가 연결되어 액티베이션된다(10).When Client 1 signals the signaling server (9), WebRTC is connected and activated between Client 1 and the assigned VM (10).
도 20을 참조하면, 클라이언트는 서버(130)와 통신을 위해 웹소켓 생성 요청을 하고, 서버(130)는 웹소켓을 생성할 수 있다.Referring to FIG. 20, the client may request the creation of a web socket for communication with the server 130, and the server 130 may create a web socket.
이렇게 웹소켓이 생성되면, 클라이언트는 액티베이션 요청을 하고, 스케줄링 큐에서 요청 큐를 생성하여 VM 스케줄러로 전달하면, VM 스케줄러는 VM 스케줄링을 수행할 수 있다. When a WebSocket is created in this way, the client requests activation, creates a request queue in the scheduling queue, and transmits it to the VM scheduler, and the VM scheduler can perform VM scheduling.
VM 스케줄링 과정을 살펴보면, VM 스케줄러는 먼저, 상기 요청된 큐가 기존 VM 인스턴스인지 판단하여, 상기 요청된 큐가 기존 VM 인스턴스가 아니라면, VM 스케줄러는 VM 추가 시동이 가능 여부를 판단하여 가능하면, 새로운 VM 인스턴스(VM-N)을 시동하고, 시동된 VM 인스턴스에 콘텐츠 식별자를 할당하고, 해당 VM을 할당할 수 있다.Looking at the VM scheduling process, the VM scheduler first determines whether the requested queue is an existing VM instance. If the requested queue is not an existing VM instance, the VM scheduler determines whether additional VM startup is possible and, if possible, creates a new VM instance. You can start up a VM instance (VM-N), assign a content identifier to the started VM instance, and assign the VM.
할당된 VM의 정보는 WebRTC를 통해 클라이언트로 전달되고, WebRTC를 통해 클라이언트와 VM-N이 연결될 수 있다.Information on the assigned VM is delivered to the client through WebRTC, and the client and VM-N can be connected through WebRTC.
도 21과 22을 참조하여, 제2 시나리오(기존 콘텐츠에 해당하는 VM 인스턴스가 이미 존재하는 경우)에 따른 처리 과정을 설명한다.Referring to Figures 21 and 22, the processing according to the second scenario (when a VM instance corresponding to existing content already exists) will be described.
도 21과 22의 과정을 설명함에 있어서, VM 할당과 관련된 내용을 제외하고는 동일한바, 이전 설명을 참조하고, 여기서는 제1 시나리오와의 차이점을 위주로 설명한다.In explaining the processes of FIGS. 21 and 22, they are the same except for the content related to VM allocation, so refer to the previous description, and here, the differences from the first scenario will be mainly explained.
도 21을 참조하면, VM 스케줄러는 페치 요청에 따라 VM 스테이터스 테이블을 살펴본 결과, 만약 해당 콘텐츠 식별자와 동일한 VM이 이미 존재하는 경우에는, - 전술한 제1 시나리오와 같이 새로운 VM 시동 및 할당이 아니라 - 해당 VM을 재사용하여 재할당할 수 있다.Referring to FIG. 21, the VM scheduler examines the VM status table according to the fetch request, and if a VM identical to the content identifier already exists, - rather than starting and assigning a new VM as in the first scenario described above - The VM can be reused and reallocated.
도 22를 참조하면, VM 스케줄러는 수신된 페치 요청이 기존 VM 인스턴스에 관한 것이고, 해당 VM 인스턴스의 콘텐츠 식별자가 페치 요청된 콘텐츠 식별자와 같으면, 해당 VM을 재사용하도록 할당할 수 있다.Referring to FIG. 22, if the received fetch request is for an existing VM instance and the content identifier of the VM instance is the same as the content identifier requested to fetch, the VM scheduler may assign the VM to be reused.
도 23과 24를 참조하여, 제3 시나리오(VM 인스턴스는 존재하나 해당 콘텐츠 식별자는 없는 경우)에 따른 처리 과정을 설명한다.Referring to Figures 23 and 24, the processing according to the third scenario (when a VM instance exists but the corresponding content identifier is not present) will be described.
도 23과 24의 과정을 설명함에 있어서, VM 할당과 관련된 내용을 제외하고는 동일한바, 이전 설명을 참조하고, 여기서는 제1 시나리오 및 제2 시나리오와의 차이점을 위주로 설명한다.In explaining the processes of FIGS. 23 and 24, they are the same except for the content related to VM allocation, so refer to the previous description, and here, the differences between the first scenario and the second scenario will be mainly explained.
도 23을 참조하면, VM 스케줄러는 페치 요청에 따라 VM 스테이터스 테이블을 살펴본 결과, 만약 해당 콘텐츠 식별자와 동일한 VM이 이미 존재하는 경우에는, - 전술한 제1 시나리오와 같이 새로운 VM 시동 및 할당이 아님 - 해당 VM을 재사용하여 재할당할 수 있다. 다만, 이 경우, 제2 시나리오에서 이미 동일한 콘텐츠가 해당 VM에 할당된 것을 그대로 재사용하는 것이 아니라, 제3 시나리오는 할당 가능한 재사용 VM은 있으나 동일한 콘텐츠 식별자를 가지지 않은 경우이다. 따라서, VM 스케줄러는 재사용 가능한 VM에 페치 요청된 콘텐츠 식별자와 함께 할당할 수 있다.Referring to FIG. 23, the VM scheduler examines the VM status table according to the fetch request, and if a VM identical to the content identifier already exists, - this is not a new VM startup and allocation as in the first scenario described above - The VM can be reused and reallocated. However, in this case, in the second scenario, the same content that has already been assigned to the corresponding VM is not reused, but in the third scenario, there is a reusable VM that can be assigned but does not have the same content identifier. Therefore, the VM scheduler can assign a reusable VM with the content identifier requested to be fetched.
도 24를 참조하면, VM 스케줄러는 수신된 페치 요청이 기존 VM 인스턴스에 관한 것이나 해당 VM 인스턴스의 콘텐츠 식별자가 페치 요청된 콘텐츠 식별자와 동일하지 않으면, 해당 VM 인스턴스에 상기 콘텐츠 식별자를 부여하여 해당 VM이 재사용되도록 할당할 수 있다.Referring to FIG. 24, if the received fetch request is for an existing VM instance, but the content identifier of the VM instance is not the same as the content identifier requested to fetch, the VM scheduler assigns the content identifier to the VM instance so that the VM is It can be allocated to be reused.
도 25와 26을 참조하여, 제4 시나리오(스트리밍 데이터)에 따른 처리 과정을 설명한다.With reference to FIGS. 25 and 26, the processing process according to the fourth scenario (streaming data) will be described.
도 25와 26을 참조하면, 클라이언트는 시그널링 서버와 웹소켓을 생성하고, 시그널링 서버는 VM과 웹소켓을 생성할 수 있다. 이렇게 시그널링 서버가 클라이언트와 VM 사이에 각각 웹소켓을 생성하면, 클라이언트와 VM은 WebRTC에 의해 스트리밍 서비스를 할 수 있다.Referring to Figures 25 and 26, the client can create a signaling server and a web socket, and the signaling server can create a VM and a web socket. If the signaling server creates a web socket between the client and the VM, the client and the VM can provide streaming services through WebRTC.
도 27을 참조하여, 제5 시나리오(기존 VM 인스턴스 상태 조회)에 따른 처리 과정을 설명한다.Referring to FIG. 27, the processing process according to the fifth scenario (inquiry of existing VM instance status) will be described.
클라이언트에서 기존 VM 인스턴스 상태 조회 요청을 전송하면, 스케줄링 큐에서 큐를 생성하여 VM 스케줄러로 전송하고, VM 스케줄러는 VM 스테이터스 테이블에서 해당 VM 인스턴스를 조회하여 그 결과를 클라이언트로 리턴(return)(응답)할 수 있다.When a client sends a request to query the status of an existing VM instance, a queue is created in the scheduling queue and sent to the VM scheduler, and the VM scheduler searches the VM status table for the corresponding VM instance and returns the result to the client (response). can do.
도 28과 29를 참조하여, 제6 시나리오(VM 인스턴스 디액티베이션)에 따른 처리 과정을 설명한다.With reference to FIGS. 28 and 29, the processing process according to the sixth scenario (VM instance deactivation) will be described.
도 28과 29를 참조하면, 클라이언트에서 VM 디액티베이션 요청을 시그널링 서버로 전송하면, 시그널링 서버는 연결 해제(disconnection message)를 VM 스케줄러로 전송할 수 있다.Referring to Figures 28 and 29, when the client transmits a VM deactivation request to the signaling server, the signaling server may transmit a disconnection message to the VM scheduler.
VM 스케줄러는 VM 스테이터스 테이블을 업데이트하고, 데이터베이스에 로그 클라이언트와 VM 정보를 기록한다. 그리고 VM 스케줄러는 클라우드 플랫폼에 해당 VM (인스턴스)의 디액티베이션 요청을 전송하고, 클라우드 플랫폼에서 해당 VM을 디액티베이트할 수 있다.The VM scheduler updates the VM status table and records log client and VM information in the database. And the VM scheduler can send a deactivation request for the corresponding VM (instance) to the cloud platform and deactivate the corresponding VM in the cloud platform.
도 30에서는 해당 시나리오에 이용되는 각 구성요소들 사이의 인터페이스, 즉 API를 예시한 것으로, 클라이언트는 VM 스케줄러와 웹소켓 API가 설정되고, 클라이언트(어드미니스터)는 VM 스케줄러와 RESTful API가 설정될 수 있다.Figure 30 illustrates the interface, or API, between each component used in the scenario. For the client, the VM scheduler and WebSocket API are set, and for the client (administrator), the VM scheduler and RESTful API are set. You can.
VM 스케줄러와 클라우드 플랫폼의 VM 사이, 및 VM 스케줄러와 시그널링 서버 사이에는 RESTful API가 설정될 수 있다.A RESTful API can be set up between the VM scheduler and the VMs of the cloud platform, and between the VM scheduler and the signaling server.
클라이언트와 시그널링 서버 사이, 시그널링 서버와 VM 사이, 클라이언트와 VM 사이에는 각각, 웹소켓 API가 설정될 수 있다.A WebSocket API can be set between the client and the signaling server, between the signaling server and the VM, and between the client and the VM, respectively.
다만, 도 30에 예시된 API는 일실시예로서, 반드시 이에 한정되는 것은 아니다.However, the API illustrated in FIG. 30 is an example and is not necessarily limited thereto.
도 34는 다른 실시예에 따른 3D 콘텐츠 데이터 처리 과정을 설명하기 위해 도시한 순서도이다.Figure 34 is a flow chart illustrating a 3D content data processing process according to another embodiment.
도 34는 API를 이용하여 사용자 단말(110)에 설치된 플러그-인을 통하여 3D 툴에서 제작된 콘텐츠 데이터를 가져온 후에, 서버(130)에서 처리 과정에서 수정, 추가, 삭제 등 변경이나 업데이트가 있는 경우에 자동으로 상기 사용자 단말(110)의 3D 툴에 반영되도록 하는 것에 관한 실시예이다. Figure 34 shows a case where after importing content data produced in a 3D tool through a plug-in installed on the user terminal 110 using an API, there is a change or update such as correction, addition, or deletion during processing in the server 130. This is an embodiment of automatically reflecting the 3D tool of the user terminal 110.
한편, 전술한 내용의 반대의 경우도 가능하다. 즉, API를 이용하여 사용자 단말(110)에 설치된 플러그-인을 통하여 3D 툴에서 제작된 콘텐츠 데이터를 가져온 후에, 사용자 단말(110)의 3D 툴에서 해당 콘텐츠 데이터의 업데이트가 있으면, 서버(130) 단에서 별도의 동작을 하지 않더라도 실시간 반영이 되도록 하는 것이다. Meanwhile, the opposite case of the above is also possible. That is, after importing content data produced in a 3D tool through a plug-in installed on the user terminal 110 using an API, if there is an update of the content data in the 3D tool of the user terminal 110, the server 130 This is to ensure that it is reflected in real time even if no separate operation is performed at the stage.
한편, 상기 과정에서, 변경이나 업데이트가 있는 경우에 이전 작업 내용과 차이점을 식별 가능하도록 새로운 파일명을 가질 수 있도록 제어할 수 있다. 이는 여러 번의 작업 과정에서 작업에 따른 오류나 실수 등에 따른 문제를 미연에 방지하기 위함이다. 한편, 반영되는 업데이트 내용은 식별 가능하도록 표시하여 해당 업데이트 내용을 직관적으로 판단할 수 있도록 서비스할 수 있다.Meanwhile, in the above process, when there is a change or update, it can be controlled to have a new file name so that differences from the previous work can be identified. This is to prevent problems caused by errors or mistakes during multiple work processes. Meanwhile, the reflected update content can be displayed so that it can be identified so that the update content can be intuitively judged.
도 34를 참조하여, 본 실시예를 설명하되, S410 내지 S430 단계는 전술한 도 14의 S110 내지 S130 단계와 동일한 바, 그를 참조하고 중복 설명은 생략한다.The present embodiment will be described with reference to FIG. 34, but steps S410 to S430 are the same as steps S110 to S130 of FIG. 14, so reference is made to them and redundant description is omitted.
서버(130)는 패키징 과정에서 업데이트 내용이 있는지 판단하고(S440), 판단 결과 업데이트 내용이 있는 경우에는 해당 내용을 추출하여 제어 커맨드가 포함된 제어 데이터를 생성할 수 있다(S450).The server 130 determines whether there is update content during the packaging process (S440), and if there is update content as a result of the determination, the server 130 may extract the content and generate control data including a control command (S450).
서버(130)는 S450 단계에서 생성된 제어 데이터를 사용자 단말(110)로 전송하여(S460), 3D 툴 상의 3D 콘텐츠에 자동 반영되도록 할 수 있다(S470). 이 경우, 태그(tag)를 통하여 해당 3D 콘텐츠에 대한 내용임을 표시하여 함께 저장하고, 추후 3D 툴을 실행하여 해당 3D 콘텐츠를 호출하면 업데이트가 있다는 표시와 함께 가이드를 제공하고, 선택에 따라 자동으로 업데이터가 반영된 3D 콘텐츠를 3D 툴 상에 제공할 수 있다. 한편, 전술한 3D 툴을 실행하여 해당 3D 콘텐츠를 호출하기 전에 복수의 업데이트가 있는 경우에는, 예를 들어 시간대 순으로 업데이트를 구분하여 표시하거나 최종 버전의 업데이트만 표시할 수도 있다. 전자의 경우에는 각 구분된 업데이트의 간략한 내용을 표시하여 직관적으로 업데이트 반영 여부를 선택할 수 있도록 할 수 있다.The server 130 may transmit the control data generated in step S450 to the user terminal 110 (S460) so that it is automatically reflected in 3D content on the 3D tool (S470). In this case, it is saved together by indicating that it is about the 3D content through a tag, and later, when the 3D tool is run and the 3D content is called, a guide is provided along with an indication that there is an update, and the content is automatically updated according to the selection. 3D content reflecting the updater can be provided on a 3D tool. Meanwhile, if there are multiple updates before executing the above-described 3D tool and calling the corresponding 3D content, for example, the updates may be displayed separately in chronological order, or only the latest version of the update may be displayed. In the former case, brief contents of each separated update can be displayed so that users can intuitively select whether or not to reflect the update.
도 35는 서버(130)의 구성 블록도이다.Figure 35 is a block diagram of the server 130.
먼저, 도 35는 서버(130)의 구성 블록도로서, 본 발명의 일실시예에 따른 서버(130)는 메모리(memory)(2510)와 프로세서(processor)(2520)를 포함하여 구현될 수 있다. First, Figure 35 is a block diagram of the server 130. The server 130 according to an embodiment of the present invention may be implemented including a memory 2510 and a processor 2520. .
상기 메모리(2510)는 하나 또는 그 이상의 데이터베이스(DB: database) 일 수 있으며, 전술한 각종 데이터베이스에 해당할 수 있다.The memory 2510 may be one or more databases (DB) and may correspond to the various databases described above.
상기 프로세서(2520)는 도 12 내지 15, 도 16 내지 17, 도 19 내지 29, 및 도 34에서 기술한 각종 기능을 수행할 수 있다. 상기 프로세서(2520)는 도 31 내지 33에 도시된 사용자 인터페이스가 제공되도록 처리할 수 있다.The processor 2520 can perform various functions described in FIGS. 12 to 15, 16 to 17, 19 to 29, and 34. The processor 2520 can process the user interface shown in FIGS. 31 to 33 to be provided.
이상 상술한 바와 같이, 본 발명은 3D 공간과 공간상에서 이루어지는 행위들을 접근이 용이한 웹 기반의 3D 가상 공간 콘텐츠로 변환시키며, 이에 필요한 위치 정보나 시각화 내용 등에 관한 자동 변환 기능, 호스팅 자동 구축, 상기 행위에 관한 다양한 관련 기능들을 웹 빌더를 통해 제어하고 팀 단위와 같은 이해관계자들이 손쉽게 협업할 수 있는 저작툴을 제공할 수 있다.As described above, the present invention converts 3D space and actions performed in the space into easily accessible web-based 3D virtual space content, including automatic conversion function for location information and visualization contents required for this, automatic hosting construction, and the above. Various related functions related to behavior can be controlled through a web builder and an authoring tool can be provided that allows stakeholders such as teams to easily collaborate.
한편, 상술한 방법은, 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터 판독 가능 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터 판독 가능 매체에 여러 수단을 통하여 기록될 수 있다. 본 발명의 다양한 방법들을 수행하기 위한 실행 가능한 컴퓨터 코드를 저장하는 컴퓨터 판독 가능 매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, CD, DVD 등)와 같은 저장 매체를 포함한다.Meanwhile, the above-described method can be written as a program that can be executed on a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable medium. Additionally, the data structure used in the above-described method may be recorded on a computer-readable medium through various means. Computer-readable media storing executable computer code for performing the various methods of the present invention include magnetic storage media (e.g., ROM, floppy disk, hard disk, etc.), optical readable media (e.g., CD, DVD, etc.) etc.) and other storage media.
본원 발명의 실시예들과 관련된 기술 분야에서 통상의 지식을 가진 자는 상기 기재의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로, 개시된 방법들은 한정적인 관점이 아닌 설명적 관점에서 고려되어야 한다. 본 발명의 범위는 발명의 상세한 설명이 아닌 특허청구 범위에 나타나며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those skilled in the art related to the embodiments of the present invention will understand that the above-described material may be implemented in a modified form without departing from its essential characteristics. Therefore, the disclosed methods should be considered from an illustrative rather than a restrictive perspective. The scope of the present invention is indicated in the claims, not the detailed description of the invention, and all differences within the equivalent scope should be construed as being included in the scope of the present invention.
본 발명인 3D 콘텐츠의 웹 배포를 위한 이미지 및 객체 데이터의 경량화를 수행하는 방법 및 이를 위한 장치는 다양한 이미지 및 객체 데이터의 경량화를 수행하는 방법 및 장치에 이용할 수 있다.The present inventor's method and device for lightweighting image and object data for web distribution of 3D content can be used in various methods and devices for lightweighting image and object data.
Claims (7)
사용자 단말로부터 가상 공간 3D 컨텐츠에 대한 접속 요청을 수신하는 단계; 및
상기 요청에 대응하여 상기 사용자 단말에게 가상 공간 3D 컨텐츠를 스트리밍으로 제공하는 단계;를 포함하되,
상기 가상 공간 3D 컨텐츠는 상기 가상 공간의 360도 x 360도에 해당하는 전 방위를 미리 정해진 크기의 타일(Tile) 단위로 촬영한 타일 이미지가 적어도 하나 이상 결합된 것이고,
상기 가상 공간 3D 콘텐츠를 스트리밍으로 제공하는 단계는, 상기 가상 공간을 적어도 하나 이상의 영역으로 구분하고, 상기 구분된 영역 중 상기 사용자의 가상 공간 내 현재 위치 또는 현재 시선에 상응하는 특정 영역에 대한 적어도 하나 이상의 타일 이미지의 렌더링을 가장 먼저 수행하여 상기 사용자 단말로 제공하는 것을 포함하는,
가상 공간 3D 컨텐츠의 스트리밍 서비스 제공 방법.In a method for a server to provide a streaming service of virtual space 3D content,
Receiving a request to access virtual space 3D content from a user terminal; and
Including providing streaming virtual space 3D content to the user terminal in response to the request,
The virtual space 3D content is a combination of at least one tile image taken in tile units of a predetermined size in all directions corresponding to 360 degrees x 360 degrees of the virtual space,
The step of providing the virtual space 3D content by streaming includes dividing the virtual space into at least one area, and at least one of the divided areas for a specific area corresponding to the user's current location or current gaze in the virtual space. Including first performing rendering of the above tile images and providing them to the user terminal,
A method of providing streaming services for virtual space 3D content.
상기 가상 공간을 적어도 하나 이상의 영역으로 구분하는 것은,
상기 가상 공간을 서로 같은 크기 또는 서로 다른 크기를 갖는 육면체에 상응하는 큐브(Cube) 형태로 구분하여 상기 가상 공간을 서로 같은 크기 또는 서로 다른 크기를 갖는 6개의 영역으로 구분하는 것을 포함하는,
가상 공간 3D 컨텐츠의 스트리밍 서비스 제공 방법.According to paragraph 1,
Dividing the virtual space into at least one area,
Including dividing the virtual space into cubes corresponding to hexahedrons of the same size or different sizes and dividing the virtual space into six areas of the same size or different sizes.
A method of providing streaming services for virtual space 3D content.
상기 가상 공간 내에서 상기 사용자의 위치 또는 시선이 이동되는 경우,
상기 구분된 영역 중 상기 이동된 위치 또는 이동된 시선에 상응하는 이동 영역에 대한 적어도 하나 이상의 타일 이미지의 렌더링을 수행하여 상기 사용자 단말로 제공하는,
가상 공간 3D 컨텐츠의 스트리밍 서비스 제공 방법.According to paragraph 1,
When the user's position or gaze moves within the virtual space,
Rendering at least one tile image for a moving area corresponding to the moved position or the moved gaze among the divided areas and providing the image to the user terminal.
A method of providing streaming services for virtual space 3D content.
상기 구분된 영역 중 상기 특정 영역을 제외한 나머지 영역에 대한 적어도 하나 이상의 타일 이미지에 대해서는,
상기 특정 영역에 대한 타일 이미지의 렌더링을 수행한 이후, 미리 정해진 기준에 따라 순차적으로 렌더링을 수행하여 상기 사용자 단말로 제공하는,
가상 공간 3D 컨텐츠의 스트리밍 서비스 제공 방법.According to paragraph 1,
Regarding at least one tile image for the remaining areas excluding the specific area among the divided areas,
After rendering the tile image for the specific area, rendering is performed sequentially according to predetermined standards and provided to the user terminal.
A method of providing streaming services for virtual space 3D content.
상기 특정 영역에 대한 적어도 하나 이상의 타일 이미지는 미리 정해진 수준의 고해상도 렌더링을 수행하고,
상기 나머지 영역에 대한 적어도 하나 이상의 타일 이미지는 미리 정해진 수준의 중해상도 또는 저해상도 렌더링을 수행하는,
가상 공간 3D 컨텐츠의 스트리밍 서비스 제공 방법.According to clause 4,
At least one tile image for the specific area performs high-resolution rendering at a predetermined level,
At least one tile image for the remaining area performs mid- or low-resolution rendering at a predetermined level,
A method of providing streaming services for virtual space 3D content.
상기 가상 공간 3D 컨텐츠에 대한 접속 요청은,
상기 가상 공간 3D 콘텐츠에 대한 플레이어(Player)를 통해 상기 사용자 단말이 상기 가상 공간에 대한 접속을 요청하는 경우 또는 상기 사용자 단말이 상기 가상 공간 3D 콘텐츠에 대한 URL 주소를 통해 상기 가상 공간에 대한 접속을 요청하는 경우를 포함하는,
가상 공간 3D 컨텐츠의 스트리밍 서비스 제공 방법.According to paragraph 1,
A request to access the virtual space 3D content is,
When the user terminal requests access to the virtual space through a player for the virtual space 3D content, or when the user terminal requests access to the virtual space through a URL address for the virtual space 3D content Including when requested,
A method of providing streaming services for virtual space 3D content.
가상 공간 3D 컨텐츠를 포함하고 있는 메모리부; 및
제어부;를 포함하되,
상기 제어부는 사용자 단말로부터 가상 공간 3D 컨텐츠에 대한 접속 요청을 수신하고,
상기 요청에 대응하여 상기 사용자 단말에게 가상 공간 3D 컨텐츠를 스트리밍으로 제공하도록 제어하되,
상기 가상 공간 3D 컨텐츠는 상기 가상 공간의 360도 x 360도에 해당하는 전 방위를 미리 정해진 크기의 타일(Tile) 단위로 촬영한 타일 이미지가 적어도 하나 이상 결합된 것이고,
상기 제어부가 상기 가상 공간 3D 콘텐츠를 스트리밍으로 제공하도록 제어하는 것은, 상기 가상 공간을 적어도 하나 이상의 영역으로 구분하고, 상기 구분된 영역 중 상기 사용자의 가상 공간 내 현재 위치 또는 현재 시선에 상응하는 특정 영역에 대한 적어도 하나 이상의 타일 이미지에 대해 미리 정해진 수준의 고해상도 렌더링을 수행하여 상기 사용자 단말로 제공하는 것을 포함하는,
가상 공간 3D 컨텐츠의 스트리밍 서비스 제공 장치.In a device that provides a streaming service of virtual space 3D content,
A memory unit containing virtual space 3D content; and
Including a control unit;
The control unit receives a request to access virtual space 3D content from the user terminal,
In response to the request, control to provide streaming virtual space 3D content to the user terminal,
The virtual space 3D content is a combination of at least one tile image taken in tile units of a predetermined size in all directions corresponding to 360 degrees x 360 degrees of the virtual space,
Controlling the control unit to provide streaming of the virtual space 3D content includes dividing the virtual space into at least one area, and, among the divided areas, a specific area corresponding to the user's current location or current gaze in the virtual space. Including performing high-resolution rendering at a predetermined level on at least one tile image and providing it to the user terminal,
A device that provides streaming services for virtual space 3D content.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210081931 | 2021-06-23 | ||
KR20210081931 | 2021-06-23 | ||
KR1020230102547A KR20230118794A (en) | 2021-06-23 | 2023-08-06 | Method and apparatus for providing 3d contents packaging and streaming service based on web to construct and control of virtual space |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230102547A Division KR20230118794A (en) | 2021-06-23 | 2023-08-06 | Method and apparatus for providing 3d contents packaging and streaming service based on web to construct and control of virtual space |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240067843A true KR20240067843A (en) | 2024-05-17 |
Family
ID=84538787
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220027730A KR102565481B1 (en) | 2021-06-23 | 2022-03-03 | Method, apparatus and system for providing virtual space 3d contents packaging and streaming service based on web |
KR1020230102547A KR20230118794A (en) | 2021-06-23 | 2023-08-06 | Method and apparatus for providing 3d contents packaging and streaming service based on web to construct and control of virtual space |
KR1020240043869A KR20240049245A (en) | 2021-06-23 | 2024-03-31 | Method and apparatus for extracting 360-degree spatial images and metadata of 3d data |
KR1020240043867A KR20240049244A (en) | 2021-06-23 | 2024-03-31 | Method and apparatus for performing weight lightening of image and object data for web publishing of 3d contets |
KR1020240053711A KR20240067843A (en) | 2021-06-23 | 2024-04-23 | Method and apparatus for providing streaming service of virtual space 3d contents |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220027730A KR102565481B1 (en) | 2021-06-23 | 2022-03-03 | Method, apparatus and system for providing virtual space 3d contents packaging and streaming service based on web |
KR1020230102547A KR20230118794A (en) | 2021-06-23 | 2023-08-06 | Method and apparatus for providing 3d contents packaging and streaming service based on web to construct and control of virtual space |
KR1020240043869A KR20240049245A (en) | 2021-06-23 | 2024-03-31 | Method and apparatus for extracting 360-degree spatial images and metadata of 3d data |
KR1020240043867A KR20240049244A (en) | 2021-06-23 | 2024-03-31 | Method and apparatus for performing weight lightening of image and object data for web publishing of 3d contets |
Country Status (1)
Country | Link |
---|---|
KR (5) | KR102565481B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102566879B1 (en) * | 2023-01-03 | 2023-08-11 | (주)언커버3디모델링 | 3-Dimension Modeling Distribution Method and Computer Program |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102280719B1 (en) | 2016-12-30 | 2021-07-22 | 구글 엘엘씨 | Rendering content in a 3d environment |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140088052A (en) * | 2014-05-16 | 2014-07-09 | 연세대학교 산학협력단 | Contents complex providing server |
EP3465619A2 (en) * | 2016-05-27 | 2019-04-10 | Holobuilder Inc, | Augmented and virtual reality |
US11450065B2 (en) * | 2018-09-24 | 2022-09-20 | Magic Leap, Inc. | Methods and systems for three-dimensional model sharing |
-
2022
- 2022-03-03 KR KR1020220027730A patent/KR102565481B1/en active IP Right Grant
-
2023
- 2023-08-06 KR KR1020230102547A patent/KR20230118794A/en active Application Filing
-
2024
- 2024-03-31 KR KR1020240043869A patent/KR20240049245A/en active Application Filing
- 2024-03-31 KR KR1020240043867A patent/KR20240049244A/en active Application Filing
- 2024-04-23 KR KR1020240053711A patent/KR20240067843A/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102280719B1 (en) | 2016-12-30 | 2021-07-22 | 구글 엘엘씨 | Rendering content in a 3d environment |
Also Published As
Publication number | Publication date |
---|---|
KR20240049244A (en) | 2024-04-16 |
KR102565481B1 (en) | 2023-08-09 |
KR20220170737A (en) | 2022-12-30 |
KR20230118794A (en) | 2023-08-14 |
KR20240049245A (en) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12083423B2 (en) | Video game overlay | |
US11583766B2 (en) | Add-on management systems | |
US10300380B2 (en) | Qualified video delivery | |
US10719192B1 (en) | Client-generated content within a media universe | |
CN103095828B (en) | The Web3D synchronous conferencing system played up based on cloud and realize synchronous method | |
US10403022B1 (en) | Rendering of a virtual environment | |
US9486706B2 (en) | Voice overlay | |
WO2010141522A1 (en) | Qualified video delivery | |
US20220254114A1 (en) | Shared mixed reality and platform-agnostic format | |
KR20240067843A (en) | Method and apparatus for providing streaming service of virtual space 3d contents | |
Behr et al. | webvis/instant3dhub: Visual computing as a service infrastructure to deliver adaptive, secure and scalable user centric data visualisation | |
US20210264686A1 (en) | Method implemented by computer for the creation of contents comprising synthesis images | |
US12134034B2 (en) | Qualified video delivery methods | |
EP2930621B1 (en) | Network-based Render Services and Local Rendering for Collaborative Environments | |
KR20230050853A (en) | Method, apparatus and system for providing web contents service | |
US20230334751A1 (en) | System and method for virtual events platform | |
Goetz et al. | Collaboration by illustration: real-time visualization in Web3D | |
Gu et al. | Virtual interactive online exhibition architecture in E-commerce based on flash 3D and flex | |
CN115965732A (en) | Cloud rendering system, method, device, equipment, medium and product of three-dimensional model | |
CN117149178A (en) | Cloud-based meta-universe application publishing and managing method and device | |
EP2916223A1 (en) | 3D simulation environment for supply chain and production process management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent |