KR20240051993A - 아바타 신체를 위한 레이어링된 의류에 대한 은면 제거 - Google Patents

아바타 신체를 위한 레이어링된 의류에 대한 은면 제거 Download PDF

Info

Publication number
KR20240051993A
KR20240051993A KR1020247009361A KR20247009361A KR20240051993A KR 20240051993 A KR20240051993 A KR 20240051993A KR 1020247009361 A KR1020247009361 A KR 1020247009361A KR 20247009361 A KR20247009361 A KR 20247009361A KR 20240051993 A KR20240051993 A KR 20240051993A
Authority
KR
South Korea
Prior art keywords
clothing
cage
modified
avatar
hidden
Prior art date
Application number
KR1020247009361A
Other languages
English (en)
Inventor
세르게이 마키브
병문 김
시 첸
Original Assignee
로브록스 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 로브록스 코포레이션 filed Critical 로브록스 코포레이션
Publication of KR20240051993A publication Critical patent/KR20240051993A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/16Cloth
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Processing Or Creating Images (AREA)

Abstract

자동화된 케이지 대 케이지 피팅 기법은 온라인 게임과 같은, 3D 환경에서 3D 아바타를 위한 타겟 3D 지오메트리에 3차원(3D) 지오메트리를 피팅하는 데 사용된다. 의류 아이템의 각 그래픽 표현은 내부 케이지와 외부 케이지가 제공된다. 의류 아이템의 내부 케이지(현재 레이어)는 3D 아바타에 피팅되어 있는 다른 의류 아이템의 외부 케이지(이전/밑에 있는 레이어)에 매핑된다. 이 매핑은 현재 레이어가 이전 레이어의 형상을 따를 수 있게 한다. 이 기법은 레이어를 밑에 있는 의류 레이어(들) 위에 피팅될 수 있게 하여, 임의의 신체 지오메트리가 임의의 의류 지오메트리에 피팅되도록 허용한다. HSR(hidden surface removal) 작업은 위에 있는 레이어에 의해 숨겨진 밑에 있는 레이어의 면을 식별하기 위해 수행될 수 있으며, 이러한 은면은 렌더링되지 않는다.

Description

아바타 신체를 위한 레이어링된 의류에 대한 은면 제거
본 출원은 35 U.S.C. § 119(e)에 따라 2021년 10월 14일에 출원된 미국 특허 가출원 번호 제63/255,489호 및 2022년 9월 8일에 출원된 미국 특허 가출원 번호 제63/404,925호에 대해 우선권을 주장하는 국제 출원이며, 두 출원 모두 전체 내용이 참조로 여기에서 포함된다.
본 개시는 일반적으로 컴퓨터 그래픽에 관한 것이며, 보다 구체적으로 전자 게임, 가상 경험 또는 다른 3D 환경에서 3차원(3D) 아바타를 위한 레이어링된 의류와 같은, 밑에 있는 그래픽 객체 위에 레이어링된 의류의 그래픽 표현을 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능매체에 관한 것이지만 이에 국한되지는 않는다.
멀티 유저 전자 게이밍 또는 가상 경험 환경은 전형적으로 전자 게임의 플레이어를 나타내는 아바타의 사용을 포함한다. 상이한 3차원(3D) 아바타는 아바타마다 지오메트리/형상이 다르다. 예컨대, 아바타는 상이한 신체 형상(예컨대, 키가 큰, 키가 작은, 근육질의, 마른, 남성, 여성, 인간, 동물, 외계인 등),팔다리(limb) 수 및 유형 등을 가질 수 있으며, 다수의 의류 및/또는 아바타가 착용하는 액세서리(예컨대, 몸통 위에 착용하는 셔츠, 셔츠 위에 착용하는 재킷, 재킷 위에 착용하는 스카프, 머리 위에 착용하는 모자 등)으로 커스터마이징 가능하다.
아바타에 의류를 레어어링할 때, 계산적으로 효율적인 방식으로 만족스러운 시각적 결과를 얻는 것이 어려울 수 있다.
제1 양태에 따르면, 컴퓨터 구현 방법은 3차원(3D) 아바타에 레이어링된 의류를 제공한다. 방법은:
아바타 신체를 갖는 3D 아바타의 신체 케이지의 신체 특징 포인트를 식별하는 단계;
아바타 신체를 따르는 변형된 첫 번째 옷을 획득하기 위해, 첫 번째 옷의 내부 케이지의 내부 특징 포인트를 신체 케이지의 신체 특징 포인트에 매핑하는 단계;
변형된 첫 번째 옷에 의해 숨겨진 신체 케이지의 면(face)을 식별하기 위해 제1 HSR(hidden surface removal) 작업을 수행하는 단계;
변형된 첫 번째 옷으로 아바타 신체를 적어도 부분적으로 감싸서, 아바타 신체에 변형된 첫 번째 옷을 피팅하는 단계 - 신체 케이지의 식별된 면에 대응하는 아바타 신체의 면은 렌더링되지 않음 -;
첫 번째 옷의 외부 케이지를 따르는 변형된 두 번째 옷을 획득하기 위해, 두 번째 옷의 내부 케이지의 내부 특징 포인트를 변형된 첫 번째 옷의 외부 케이지의 외부 특징 포인트에 매핑하는 단계;
변형된 두 번째 옷에 의해 숨겨진 변형된 첫 번째 옷의 외부 케이지의 면을 식별하기 위해 제2 HSR 작업을 수행하는 단계; 및
변형된 첫 번째 옷이 피팅된 아바타 신체를 변형된 두 번째 옷으로 적어도 부분적으로 감싸서, 아바타 신체에 변형된 두 번째 옷을 피팅하는 단계를 포함하고, 외부 케이지의 식별된 면에 대응하는 변형된 첫 번째 옷의 면은 렌더링되지 않는다.
다른 양태에 따르면, 프로세서에 의한 실행에 응답하여, 프로세서로 하여금 동작을 수행하거나 수행을 제어하게 하는 명령어가 저장된 비일시적 컴퓨터 판독 가능 매체가 제공된다. 동작은:
아바타 신체를 갖는 3D 아바타의 신체 케이지의 신체 특징 포인트를 식별하는 것;
아바타 신체를 따르는 변형된 첫 번째 옷을 획득하기 위해, 첫 번째 옷의 내부 케이지의 내부 특징 포인트를 신체 케이지의 신체 특징 포인트에 매핑하는 것;
변형된 첫 번째 옷에 의해 숨겨진 신체 케이지의 면을 식별하기 위해 제1 HSR(hidden surface removal) 작업을 수행하는 것;
변형된 첫 번째 옷으로 아바타 신체를 적어도 부분적으로 감싸서, 아바타 신체에 변형된 첫 번째 옷을 피팅하는 것 - 신체 케이지의 식별된 면에 대응하는 아바타 신체의 면은 렌더링되지 않음 -;
첫 번째 옷의 외부 케이지를 따르는 변형된 두 번째 옷을 획득하기 위해, 두 번째 옷의 내부 케이지의 내부 특징 포인트를 변형된 첫 번째 옷의 외부 케이지의 외부 특징 포인트에 매핑하는 것;
변형된 두 번째 옷에 의해 숨겨진 변형된 첫 번째 옷의 외부 케이지의 면을 식별하기 위해 제2 HSR 작업을 수행하는 것; 및
변형된 첫 번째 옷이 피팅된 아바타 신체를 변형된 두 번째 옷으로 적어도 부분적으로 감싸서, 아바타 신체에 변형된 두 번째 옷을 피팅하는 것을 포함하고, 외부 케이지의 식별된 면에 대응하는 변형된 첫 번째 옷의 면은 렌더링되지 않는다.
또 다른 양태에 따르면, 장치가 제공되며, 장치는:
프로세서; 및
프로세서에 결합되고, 프로세서에 의한 실행에 응답하여, 프로세서로 하여금 동작을 수행하거나 수행을 제어하도록 하는 저장된 명령어를 갖는 비일시적 컴퓨터 판독 가능 매체를 포함하고, 동작은:
아바타 신체를 갖는 3D 아바타의 신체 케이지의 신체 특징 포인트를 식별하는 것;
아바타 신체를 따르는 변형된 첫 번째 옷을 획득하기 위해, 첫 번째 옷의 내부 케이지의 내부 특징 포인트를 신체 케이지의 신체 특징 포인트에 매핑하는 것;
변형된 첫 번째 옷에 의해 숨겨진 신체 케이지의 면을 식별하기 위해 제1 HSR(hidden surface removal) 작업을 수행하는 것;
변형된 첫 번째 옷으로 아바타 신체를 적어도 부분적으로 감싸서, 아바타 신체에 변형된 첫 번째 옷을 피팅하는 것 - 신체 케이지의 식별된 면에 대응하는 아바타 신체의 면은 렌더링되지 않음 -;
첫 번째 옷의 외부 케이지를 따르는 변형된 두 번째 옷을 획득하기 위해, 두 번째 옷의 내부 케이지의 내부 특징 포인트를 변형된 첫 번째 옷의 외부 케이지의 외부 특징 포인트에 매핑하는 것;
변형된 두 번째 옷에 의해 숨겨진 변형된 첫 번째 옷의 외부 케이지의 면을 식별하기 위해 제2 HSR 작업을 수행하는 것; 및
변형된 첫 번째 옷이 피팅된 아바타 신체를 변형된 두 번째 옷으로 적어도 부분적으로 감싸서, 아바타 신체에 변형된 두 번째 옷을 피팅하는 것을 포함하고, 외부 케이지의 식별된 면에 대응하는 변형된 첫 번째 옷의 면은 렌더링되지 않는다.
도 1은 일부 실시예에 따른, 예시적인 신체 케이지를 도시한다.
도 2는 일부 실시예에 따른, 또 다른 예시적인 신체 케이지를 도시한다.
도 3은 일부 실시예에 따른, 대응 신체 부위로 그룹화된 신체 케이지의 부분의 예시를 도시한다.
도 4는 일부 실시예에 따른, 신체 케이지 위에서 변형된 의류 레이어의 예시를 도시한다.
도 5는 일부 실시예에 따른, 도 4의 의류 레이어와 신체 케이지의 부분에 기초하여 형성된 외부 케이지의 예시를 도시한다.
도 6은 일부 실시예에 따른, 메시와 케이지의 예시를 도시하는 다이어그램이다.
도 7은 일부 실시예에 따른, 의류의 레이어와 그 케이지의 표현을 나타내는 다이어그램을 도시한다.
도 8 및 9는 일부 실시예에 따른, 은면 제거(Hidden Surface Removal(HSR)) 전후의 아바타를 도시한다.
도 10은 일부 실시예에 따라, 표면이 잠재적으로 가시적인지를 결정하기 위한 예시적인 기법을 도시하는 다이어그램이다.
도 11-14는 일부 실시예에 따른, HSR을 수행하는 방법을 나타내는 다이어그램이다.
도 15는 일부 실시예에 따른, 레이어링된 의류를 갖는 3D 아바타를 지원할 수 있는 3D환경 플랫폼을 포함하는 예시적인 시스템 아키텍처의 다이어그램이다.
도 16은 일부 실시예에 따른, 3D 아바타에 HSR과 레이어링된 의류를 제공하기 위한 컴퓨터 구현 방법을 예시하는 흐름도이다.
도 17-19는 일부 구현에 따른, HSR에 대한 가시성 결정 개선에 관한 다이어그램이다.
도 20은 HSR을 수행할 때 직면할 수 있는 문제의 예시를 도시한다.
도 21은 숨겨진 케이지 수축 기법의 예시를 도시한다.
도 22는 일부 실시예에 따른, 예시적인 컴퓨팅 장치를 예시하는 블록도이다.
다음의 상세한 설명에서, 여기에서 일부를 형성하는 첨부하는 도면에 대한 참조가 이루어진다. 도면에서, 유사한 부호는 문맥에서 달리 지시하지 않는 한, 전형적으로 유사한 컴포넌트를 식별한다. 상세한 설명, 도면 및 청구범위에 설명된 예시적인 실시예는 제한되도록 의미하지 않는다. 여기에서 제시된 대상의 사상 또는 범위를 벗어나지 않으면서, 다른 실시예가 이용될 수 있고, 그리고 다른 변경이 이루어질 수 있다. 여기에서 일반적으로 설명되고 도면에 예시된, 본 개시의 양태는 매우 다양한 상이한 구성으로 배열, 대체, 조합, 분리 및 설계될 수 있으며, 이들 모두는 여기에서 고려된다.
본 명세서에서 "일 실시예", "실시예", "예시적인 실시예" 등에 대한 참조는 설명된 실시예가 특정 특징, 구조 또는 특성을 포함할 수 있다는 것을 나타내지만, 모든 실시예가 반드시 특정 특징, 구조 또는 특성을 포함할 필요는 없다. 또한, 그러한 구절이 반드시 동일한 실시예를 지칭하는 것은 아니다. 또한, 특정 특징, 구조 또는 특성이 실시예와 관련하여 설명될 때, 그러한 특징, 구조 또는 특성은 명시적으로 설명되었는지 여부에 관계없이, 다른 실시예와 관련하여 영향을 받을 수 있다.
본 개시는 3D 아바타를 위한 자동화된 케이지 대 케이지 피팅 기법을 설명한다. 기법은 의류의 레이어를 의류의 밑에 있는 레이어(들) 위에 피팅되게 하고, 그에 의해 아바타의 임의의 체형이나 기타 의류 아이템과 호환되는 의류 아이템을 만들기 위해 복잡한 계산을 요구하거나 미리 정의된 지오메트리에 의해 부과된 제한이 없는 커스터마이징화를 제공하는 것을 포함하여, 임의의 신체 지오메트리가 임의의 의류 지오메트리에 피팅되도록 허용한다. 케이지 대 케이지 피팅은 또한 아바타 제작자(아바타 신체 제작자 또는 신체 제작자라고도 지칭됨) 또는 의류 아이템 제작자가 복잡한 계산을 수행하도록 요구하지 않고, 게이밍 플랫폼 또는 게이밍 소프트웨어(또는 3D 환경을 제공하도록 동작하는 기타 플랫폼/소프트웨어)에 의해 알고리즘적으로 수행된다. 여기에서 사용된 "의류(clothing)" 또는 "옷(piece of clothing)"이라는 용어는 의류 및 액세서리, 그리고 아바타 케이지의 특정 부분과 관련하여 아바타에 배치될 수 있는 임의의 기타 아이템의 그래픽 표현을 포함하는 것으로 이해된다.
아바타의 신체 부위 및/또는 다른 옷 위에 옷이 레이어링되는 경우, HSR(hidden surface removal) 기법이 여기에 개시된다. 예컨대, 계산 성능 및 미학적 이유로 특정 의류에 의해 겹쳐지거나/커버되는 (밑에 있는 옷 또는 신체 부위의) 표면은 렌더링(예컨대, 가시화됨)되어서는 안 된다. HSR은 특정 시야각에서 볼 수 없는 표면(또는 그 일부)을 식별한 후, 해당 표면이 숨겨지도록(또는 그렇지 않다면 렌더링되지 않도록) 렌더링하여, 그래픽(예컨대, 레이어링된 의류가 그 위에 배치되어 있는 아바타)의 자연스럽게 보이는 부분이 보이도록 허용하는 과정을 포함한다.
순전히 예시 및 설명의 목적으로, 게이밍 플랫폼에 의해 제공되는 3D 게임에서 사용되는 3D 아바타의 맥락에서 다양한 실시예가 여기에서 설명된다. 그러한 게이밍 환경은 단지 예시일 뿐이라는 점을 이해해야 한다. 여기에서 설명된 케이지 대 케이지 레이어링 기법의 다른 실시예는 가상 현실(VR) 회의, 3D 세션(예컨대, 온라인 강의 또는 3D 아바타를 포함하는 다른 유형의 프리젠테이션), 증강 현실(AR) 세션, 또는 하나 이상의 3D 아바타에 의해 3D 환경에서 표현되는 하나 이상의 사용자를 포함할 수 있는 다른 유형의 3D 환경과 같은, 다른 유형의 3D 환경에 적용될 수 있다.
게임 또는 다른 3D 세션 동안 런타임에서, 플레이어/사용자는 특정 아바타 신체를 선택하기 위해 신체 라이브러리에 액세스하고, 선택된 신체에 배치할 옷을 선택하기 위해 의류 라이브러리에 액세스한다. 아바타를 제시하는 3D 환경 플랫폼은 이후 옷이 신체의 형상에 따르도록 조정(적절한 변형, 자동으로 결정)하고, 그에 의해 옷을 자동으로 신체(및 아바타가 착용한 경우, 임의의 중간 레이어)에 피팅하기 위한 케이지 대 케이지 피팅 기법을 구현한다. 옷이 신체 및/또는 밑에 있는 옷 위에 피팅되는 경우, 은면이 렌더링된 결과에 보이지 않도록 HSR이 수행될 수 있다. 사용자는 밑에 있는 옷 위에 피팅하도록 추가 옷을 추가로 선택할 수 있으며, 추가 옷은 밑에 있는 옷의 지오메트리와 매칭하도록 변형된다.
여기에 설명된 실시예는 "케이지"와 "메시"의 개념에 기초한다. 신체 “메시”(또는 “렌더 메시(render mesh)”)는 아바타의 실제 가시적 지오메트리이다. 신체 메시는 팔, 다리, 몸통, 머리 부분 등과 같은 신체 부위의 그래픽 표현을 포함하며, 임의의 형상, 크기 및 지오메트릭 토폴로지가 될 수 있다. 유사하게, 의류 “메시”(또는 “렌더 메시”)는 셔츠, 바지, 모자, 신발 등 또는 그 일부와 같은, 옷을 그래픽으로 나타내는 임의의 메시일 수 있다.
이에 비해, “케이지”는 아바타 신체 주위의 특징 포인트의 엔벨로프를 나타내며, 신체 메시보다 단순하고, 신체 메시의 대응하는 정점과 약한 대응성을 갖는다. 아래에서 더 상세히 설명하겠지만, 케이지는 아바타 신체의 특징 포인트의 세트뿐만 아니라 의류의 특징 포인트의 세트도 나타내는 데 사용될 수 있다.
도 1은 일부 구현에 따른, 예시적인 신체 케이지(100)를 도시한다. 도 1의 예시에서의 신체 케이지(100)는 마네킹 역할을 하는 휴머노이드 신체 형상의 외부 표면/윤곽을 감싸거나 겹쳐지는 외부 케이지이다. 신체 케이지(100)에 의해 감싸진 밑에 있는 휴머노이드 신체 형상(마네킹, 도시되지 않음)는 다수의 다각형과 그 정점을 포함하는 신체 메시로 표현되거나 구성될 수 있다. 신체 메시의 다각형(의류 메시의 것뿐 아니라)은 삼각형일 수 있으며, 각 삼각형의 표면적은 "면(face)" 또는 "메시 면(mesh face)"을 제공한다.
신체 케이지(100)는 마네킹의 형상을 정의하거나 그 외 식별하거나 대응하는 복수의 특징 포인트(102)를 포함한다. 일부 실시예에서, 특징 포인트(102)는 마네킹 상의 다수의 다각형(또는 다른 지오메트릭 형상)의 세그먼트/측면(104)의 정점에 의해 형성된다. 다양한 실시예에 따르면(그리고 도 1에 도시되지는 않았지만), 다각형은 삼각형일 수 있으며, 각 삼각형의 표면적은 "면" 또는 "케이지 면"을 제공한다. 일부 실시예에서, 특징 포인트(102)는 반드시 임의의 폴리곤의 정점에 의해 형성될 필요 없이, 이산적인 포인트일 수 있다.
도 1의 신체 케이지(100)는 손가락을 제외한 휴머노이드 신체 지오메트리에 대해 642개의 특징 포인트(또는 일부 다른 수의 특징 포인트)가 있는 저해상도 신체 케이지의 예시를 제공한다. 다른 예시는 475개의 특징 포인트가 있는 신체 케이지를 사용할 수 있다. 예컨대, 손가락을 포함하는 휴머노이드 지오메트리의 신체 케이지는 1164개의 특징 포인트(또는 일부 다른 수의 특징 포인트)를 가질 수 있다. 더 높은 해상도의 신체 케이지는 2716개의 특징 포인트(또는 일부 다른 수의 특징 포인트)를 포함할 수 있다. 이러한 특징 포인트의 수(및 그 범위)는 단지 일부 예시이다 - 특징 포인트의 수는 원하는 해상도, 3D 플랫폼의 처리 기능, 사용자 선호도, 마네킹의 크기/형상과 같은 요소에 의존하여 구현마다 다를 수 있다.
케이지는 모든 임의의 아바타 체형 또는 의류 형상에 대해 제공될 수 있다. 예컨대, 도 2는 일부 실시예에 따른, 또 다른 예시적인 신체 케이지(200)를 도시한다. 도 2의 예시에서 신체 케이지(200)는 일반적인 게이밍 아바타 신체 형상의 신체 메시의 외부 표면/윤곽을 감싸거나 겹쳐지는 외부 케이지이다. 도 1의 신체 케이지(100)와 비교되면, 도 2의 신체 케이지(200)는 동일한 수의 특징 포인트를 가질 수 있다. 일부 실시예에서, 신체 케이지(200)는 신체 케이지(100)와 비교하여, 개수가 상이한 다수의 특징 포인트를 가질 수 있으며, 예컨대 게임 아바타의 상이한(더 단순하거나 더 복잡한) 지오메트릭 형상의 결과로 그리고/또는 다른 요소(들)에 기초하여 특징 포인트(202)의 개수가 더 적거나 많을 수 있다. 따라서, 하나의 신체 케이지에서 다른 것까지의 특징 포인트의 수는 상이한 신체 형상 또는 다른 신체 특성에 대해 적절하게 선택될 수 있다.
일부 실시예에서, 대역폭 및 성능/효율성 목적 또는 다른 이유(들)에 대해, 케이지의 특징 포인트의 수는 475개의 특징 포인트(또는 일부 다른 수의 특징 포인트)와 같이, 위에 제공된 것보다 더 적은 수로 감소될 수 있다. 또한, 일부 실시예에서, 신체 케이지의 특징 포인트(정점)는 각각 신체 형상의 일부를 나타내는 복수의 그룹(예컨대, 15개의 그룹)으로 배열될 수 있다. 도 3은 일부 실시예에 따라, 대응하는 신체 부위로 그룹화되는 신체 케이지(300)의 부분의 예시를 도시한다.
보다 구체적으로, 도 3에 도시된 15개의 신체 부위는 (휴머노이드 마네킹에 대해): 머리, 몸통, 고관절, 오른발, 왼발, 아래쪽 왼 다리, 아래쪽 오른 다리, 위쪽 왼 다리, 위쪽 오른 다리, 왼손, 오른손, 아래쪽 왼팔, 아래쪽 오른팔, 위쪽 왼팔, 및 위쪽 오른팔이다. 임의의 신체 형상의 부위 수는 도시된 15개 신체 부위보다 많거나 적을 수 있다. 예컨대, "외팔" 아바타 캐릭터는 손, 아래쪽 팔, 위쪽 팔의 생략으로 인해, 신체 부위가 12개(15개가 아님)일 수 있다. 또한, 다른 신체 형상은 신체 지오메트리, 원하는 해상도, 처리 능력, 아바타 캐릭터의 유형(예컨대, 동물, 외계인, 괴물 등) 등과 같은 요인에 의존하여, 더 적거나 더 많은 수의 신체 부위를 포함할 수 있다.
도 3의 15개 그룹/부위 각각은 아바타 신체의 해당 부분을 정의하는 특징 포인트를 포함한다. 그러한 특징 포인트의 그룹(들)은 차례로 대응하는 옷에 매핑될 수 있다. 예컨대, 아래쪽 왼/오른 팔, 위쪽 왼/오른 팔, 및 몸통을 정의하는 신체 케이지(300)의 특징 포인트는 재킷의 이너 케이지와 매핑되도록 외부 케이지로 사용될 수 있어, 재킷의 그래픽 표현은 왼/오른 팔과 아바타 신체의 몸통 위에 논리적으로 상응하게 피팅하는 왼/오른 팔과 재킷의 몸통을 렌더링하는 그래픽 메시로 구성된다.
또한, (도 3에 도시된 바와 같이) 다수의 그룹으로의 이러한 분리는 비전형적인 신체 형상에 걸쳐 옷의 커스터마이징된 피팅을 가능하게 한다. 예컨대, 3D 아바타는 왼팔이 없는 "외팔" 아바타 캐릭터의 형태일 수 있다. 따라서, 해당 3D 아바타를 위한 신체 케이지는 왼손, 아래쪽 왼팔, 위쪽 왼팔에 대응하는 특징 포인트의 그룹이 누락된다. 재킷이 이후 해당 3D 아바타에 위에 피팅하기 위해 선택되면, 재킷의 아래쪽 오른팔, 위쪽 오른팔 및 몸통이 3D 아바타(신체 마네킹)의 대응하는 아래쪽 오른팔, 위쪽 오른팔 및 몸통 위에 피팅하도록 변형될 수 있고, 신체 마네킹에는 변형할 왼쪽 팔 케이지가 없으므로 재킷의 아래쪽 왼팔과 위쪽 왼팔은 변형되지 않는다(예컨대, 부모 공간(parent space)에서 원래 형태로 고정(rigid)되어 유지).
도 4는 일부 실시예에 따른, 신체 케이지(도 3에 도시된 신체 케이지(300)와 같은) 위에서 변형된 의류 레이어(400)의 예시를 도시한다. 의류 레이어(400)는 정점, 가장자리 및 면(삼각형 면 또는 다른 다각형 면일 수 있음)의 집합으로 구성된 다각형 메시(402)(예컨대, 의류 메시)를 사용하여 생성/렌더링될 수 있는 부분을 갖는 재킷(도 4에서 회색 음영으로 도시됨)의 그래픽 표현이다.
의류 레이어(400)는 신체 케이지(300)의 특징 포인트에 대응되는 특징 포인트를 갖는 내부 케이지(도 4에는도시되지 않음)를 포함한다. 구체적으로, 의류 레이어(400)의 내부 케이지의 특징 포인트를 아래쪽 왼오른팔, 위쪽 왼오른팔, 및 몸통을 구성하는 신체 케이지(300)의 특징 포인트에 매핑한다. 일부 실시예에서, 이러한 매핑은 의류 레이어(400)의 내부 케이지의 특징 포인트를 신체 케이지(300)의 팔 및 몸통의 대응하는 특징 포인트의 좌표 위치에 직접 매핑하는 것을 포함한다. 이러한 매핑은 양 케이지가 동일한 수의 특징 포인트를 갖는 경우 1:1 대응을 수반할 수 있고, 매핑은 n:1 또는 1:n(n은 1보다 큰 정수)일 수 있으며, 이 경우 하나의 케이지의 다수의 특징 포인트가 다른 케이지의 동일한 특징 포인트에 매핑될 수 있다 (또는 일부 특징 포인트가 매핑되지 않을 수 있음).
의류 레이어(400)는 의류 레이어(400)의 내부 케이지의 특징 포인트와 이격되어 연결되는 특징 포인트를 갖는 외부 케이지를 더 포함한다. 의류 레이어(400)의 외부 케이지의 특징 포인트는 그렇지 않으면 재킷의 후드(404), 커프스(406), 직선 절단 몸통(straight-cut torso)(408) 등과 같은 특징을 정의하기 위하여, 재킷의 외부 표면 윤곽/지오메트리를 따라 정의되거나 달리 위치된다.
다양한 실시예에 따르면, 공간적 거리(예컨대, 의류 레이어(400)의 내부 케이지의 특징 포인트와 의류 레이어(400)의 외부 케이지의 대응하는 특징 포인트 사이의 공간적 거리)는 기존 레이어(또는 아바타 신체)의 외부 케이지 위에 의류 레이어(400)를 피팅하는 과정 동안 일정하게 유지된다. 이러한 방식으로, 재킷의 내부를 아바타의 몸통과 팔에 '피팅'시키기 위하여, 의류 레이어(400)의 내부 케이지의 특징 포인트가 신체 케이지(300)의 특징 포인트에 매핑될 수 있다. 이후, 의류 레이어(400)의 내부 케이지의 특징 포인트와 의류 레이어(400)의 외부 케이지의 대응하는 특징 포인트 사이의 거리를 일정하게 유지하면서, 재킷의 외부 윤곽 또한 아바타 신체의 형상을 매칭시키기 위해 변형될 수 있고, 그에 의해 후드, 커프스, 직선 절단 몸통 및 재킷의 기타 표면 특징의 시각적 외관(그래픽 표현)을 적어도 부분적으로 보존하는 동시에 도 4에 도시된 바와 같은 아바타 신체의 형상에 매칭한다. 이러한 방식으로, 의류 레이어(400)는 키가 큰, 키가 작은, 날씬한, 근육질의, 휴머노이드, 동물, 외계인 등과 같은, 아바타 신체(신체 케이지)의 임의의 형상/크기에 피팅시키기 위하여 임의의 적절한 방식으로 변형될 수 있다.
일부 실시예에서, 다른 의류 레이어(들) 위에 추가 의류 레이어가 배치될 수 있다(예컨대, 사용자 선택에 응답하여). 도 5는 일부 실시예에 따른, 외부 케이지(500)를 형성하는 데 사용되는, 도 4의 의류 레이어 및 신체 케이지(300)의 일부의 예시를 도시한다. 보다 구체적으로, 신체 케이지(300)의 노출된 부분의 특징 포인트와 재킷의 외부 표면을 따른 특징 포인트로 이루어진 복합 외부 케이지(500)가 되게 하기 위해, 도 4의 의류 레이어(400)의 외부 케이지의 특징 포인트는 이제 신체 케이지(300)의 특징 포인트와 결합된다. 예컨대, 재킷의 노출된 외부 표면(재킷의 몸체, 후드, 및 소매로 형성됨)은 특징 포인트의 세트를 제공하고, 재킷에 의해 덮이지 않은 노출된 다리, 손, 머리 및 신체의 가슴의 일부는 또 다른 특징 포인트의 세트를 제공하고, 이 두 특징 포인트의 세트(결합됨)는 외부 케이지(500)의 특징 포인트를 제공한다.
재킷의 외부 표면/형상에 대응하여 이를 정의하는 도 5의 외부 케이지(500)의 특징 포인트는 도 4의 의류 레이어(400)의 외부 케이지와 동일한 특징 포인트일 수 있다. 일부 실시예에서, 도 4의 재킷(의류 레이어(400))의 외부 케이지에 대한 특징 포인트에 비해, 도 5의 외부 케이지(500)의 재킷 영역에 대해 서로 다른 및/또는 추가 및/또는 더 적은 특징 포인트가 사용될 수 있다. 예컨대, 외부 케이지(500) 위의 다음 의류 레이어에 더 높은 해상도나 더 정확한 피팅을 원하는 경우 및/또는 가능한 경우 더 적은 특징 포인트를 사용하여 제공되는 처리/대역폭 효율성 향상과 같은 다른 고려사항으로 인해, (도 4의 의류 레이어(400)의 외부 케이지와 비교하여) 재킷 영역에 의해 둘러싸인 외부 케이지(500)에 대해 추가 특징 포인트가 계산될 수 있다. 유사하게, 외부 케이지(500) 위의 다음 의류 레이어에 대해 더 낮은 해상도 또는 덜 정확한 피팅이 있는 경우, (의류 레이어(400)의 외부 케이지와 비교하여) 재킷 영역에 의해 둘러싸인 외부 케이지(500)에 대해 특징 포인트가 계산될 수 있다.
동작 중에, 사용자가 재킷(의류 레이어(400)) 및/또는 아바타 신체의 다른 부분 위에 추가적인 의류 레이어(외투 또는 기타 의류 물품과 같은)를 피팅하기 위한 입력을 제공하면, 이후 그러한 추가적인 의류 레이어의 내부 케이지의 특징 포인트는 외부 케이지(500)의 대응하는 특징 포인트에 매핑된다. 변형은 따라서 도 4와 관련하여 설명한 것과 유사한 방식으로 수행될 수 있다.
따라서, 의류를 레어링하기 위한 도 4 및 도 5의 예시에 따르면, 아바타 신체의 "외부 케이지"(신체 케이지(300))의 특징 포인트와 첫 번째 의류 레이어의 "내부 케이지"의 특징 포인트를 매칭시켜, 첫 번째 의류 레이어(의류 레이어(400))를 신체에 감싼다. 이 매칭은 내부 케이지와 외부 케이지 사이에서 정확히 매칭하는 특징 포인트 수에 의존할 필요가 없도록 하기 위하여, 케이지의 UV 공간(여기에서, UV는 좌표계를 지칭함)에서 수행될 수 있다. 예컨대, 특징 포인트는 위치 및 텍스처 공간 좌표를 모두 갖는 정점일 수 있다. 텍스처 공간 좌표는 일반적으로 U,V 좌표에 대해 각각 [0,1] 범위로 표현된다. 텍스처 공간은 정점에 대해 "래핑되지 않은(unwrapped)" 정규화된 좌표 공간으로 간주될 수 있다. UV 공간에서 두 정점 세트의 대응을 수행하고 해당 위치를 사용하지 않음으로써, 정확한 정점 대 정점 인덱스 매핑에 대한 엄격한 요구 사항을 제거하여 정규화된 공간에서 정점 대 정점 대응을 수행할 수 있다.
여기에서 설명된 기법에 따라, 각각의 아바타 신체 및 의류 아이템은 "내부 케이지" 및 "외부 케이지"와 연관된다. 아바타 신체의 경우, 내부 케이지는 디폴트 "마네킹"을 나타내고(그리고 상이한 마네킹이 상이한 아바타 신체 형상에 대해 제공될 수 있음), 아바타 신체의 "외부 케이지"는 아바타 신체 형상을 둘러싸는 엔벨로프를 나타낸다. 의류 아이템의 경우, "내부 케이지"는 의류 아이템이 밑에 있는 신체(또는 이전 의류 레이어가 이미 피팅된 신체 주위)를 감싸는 방법을 정의하는 데 사용되는 내부 엔벨로프를 나타내고, "외부 케이지"는 아바타 신체에 착용할 때 다음 의류 레이어가 이 특정 의류 아이템을 감싸는 방식을 나타낸다.
위에서 설명한 대로, 메시는 아바타 및/또는 그 의류의 실제 가시적 지오메트리이다. 예컨대, 신체 메시(body mesh)는 아바타 신체의 팔, 다리, 몸통, 머리 부분 등을 그래픽적으로 표현한 것을 포함하고, 의류 메시(clothing mesh)는 의류를 그래픽적으로 표현한 것을 포함한다. 이에 비해, 위에 도시되고 설명된 케이지는 밑에 있는 메시의 해당 정점과 어느 정도 일치할 수 있는 아바타 신체 및/또는 의류 주위의 특징 포인트의 엔벨로프를 나타낸다.
도 6은 일부 실시예에 따른, 메시(602) 및 케이지(604)의 예시를 도시하는 다이어그램(600)이다. 더 구체적으로, 다이어그램(600)은 메시(602) 위에 놓이거나/둘러싸는 케이지(604)의 측면도를 나타낸다.
메시(602)는 신체 메시(예컨대, 손, 팔 등과 같은 아바타의 신체의 일부를 그래픽적으로 묘사함)이거나 의류 메시(예컨대, 소매, 후드 등과 같은 옷의 일부를 그래픽적으로 묘사함)일 수 있다. 메시(602)는 다각형(예컨대, 삼각형)의 외향 표면(outwardly facing surface)에 의해 형성된 메시 면(606)을 포함할 수 있다. 메시(602)는 복수의 다각형과 그에 대응하는 메시 면을 포함할 수 있으며, 다각형은 세그먼트 측면과 정점에서 서로 연결되어 있다.
유사하게, 케이지(604)는 이전에 도시되고 위에서 설명한 바와 같이, 복수의 다각형(예컨대, 삼각형) 및 그에 대응하는 케이지 면을 포함할 수 있다. 도 6의 다이어그램(600)은 케이지(604)의 각각의 다각형의 외향 표면에 의해 형성된 2개의 케이지 면(608, 610)을 도시한다. 이들 다각형은 세그먼트 또는 정점일 수 있는 612에서 서로 결합될 수 있다.
면(606, 608, 610) 및/또는 다른 면 또는 메시 또는 케이지의 그 일부는 추가적인 옷이 메시(602) 및 케이지(604) 위에 레이어링될 때 숨겨지거나 잠재적으로 숨겨질 수 있다. 아래에 추가로 설명되는 바와 같이, 여기에 개시된 HSR 기법은 그러한 면/표면 또는 그 일부가 숨겨져야 하는지를 결정한 다음, 숨겨진 표면이 렌더링되지 않도록 숨겨진 표면을 제거하는 작업을 수행한다.
도 6의 다이어그램(600)에 도시되고, 앞서 설명한 바와 같이, 케이지(604)는 메시(602) 위에 놓이거나/둘러싼다. 다양한 실시예에 따르면, 거리 S(예컨대, 메시(602) 표면에 대해 수직/법선 방향에서 픽셀 단위의 거리)가 케이지(604)가 생성되어 메시(602) 위에 배치될 때 메시(602)와 케이지(604) 사이에 있을 수 있다.
거리 S는 메시(602)와 케이지(604)의 서로 다른 구역에 걸쳐 변할 수 있다. 예컨대, 거리 S는 케이지(604)가 메시(602)와 접촉하는 일부 구역에서 실질적으로 0일 수 있고, 거리 S는 메시(602)와 케이지(604) 사이에 공간적 분리가 있는 다른 구역에서는 0보다 클 수 있다.
또한, 다이어그램(600)은 단일 메시 면(606)이 2개의 케이지 면(608 및 610)에 의해 둘러싸여 있음을 보여준다. 이는 단지 예시일 뿐이다. 일부 구역에서는 케이지 면과 메시 면의 일대일 중첩, 일부 구역에서는 케이지 면과 메시 면의 일대다 중첩, 일부 구역에서는 케이지 면과 메시 면의 다대일 중첩 등이 있을 수 있다. 나아가 메시 면과 케이지 면의 에지가 반드시 서로 정렬될 필요는 없다. 예컨대, 도 6의 다이어그램(600)에서, 케이지 면(608)의 왼쪽 에지는 메시 면(606)의 왼쪽 에지와 실질적으로 정렬된다. 이에 비해, 케이지 면(610)의 오른쪽 에지는 더 연장되거나 혹은 메시 면(606)의 오른쪽 에지와 정렬되지 않는다.
다양한 실시예에 따르면, 그리고 도 1 내지 5와 관련하여 위에 도시되고 설명된 바와 같이, 케이지는 신체 위 및/또는 의류 메시(예컨대, 옷 또는 의류 레이어) 위에 둘러싸여 있으며, 따라서 이러한 케이지는 밑에 있는 표면의 모양 및 윤곽을 따르는 외부 케이지가 된다. 의류의 다음 레이어는 내부 및 외부 케이지가 제공될 수 있어, 이러한 의류의 다음 레이어의 변형은 의류의 다음 레이어의 내부 케이지 포인트를 밑에 있는 신체 또는 의류 레이어의 외부 케이지의 해당 포인트에 매핑, 일치 혹은 연관시킴으로써 달성된다. 일부 실시예에서, 밑에 있는 신체 또는 의류 레이어의 외부 케이지 자체는 의류의 다음 레이어의 내부 케이지이거나 내부 케이지가 된다.
의류의 특정 옷/레이어의 내부 케이지와 외부 케이지의 경우, 이러한 내부 케이지와 외부 케이지의 지점은 서로 매핑될 수 있어, 이 특정 레이어의 내부 케이지의 포인트가 밑에 있는 레이어의 외부 케이지의 포인트와 관련하여 연관/위치될 때, 의류의 특정 레이어의 변형은 그 외부 케이지의 포인트가 그 내부 케이지의 포인트의 변위를 추적하거나/따를 때 발생한다.
일부 실시예에 따르면, 밑에 있는 신체 부위 또는 의류 레이어에 일치하도록 의류 레이어를 변형하는 것은 방사형 기초 함수(radial basis function(RBF)) 기법의 사용을 포함할 수 있다. 변형 및 순차적 레이어링에 사용될 수 있는 RBF 기법의 일부 예시는 여기에 참조로 포함된 미국 특허 출원 제17/375,066호에 개시되어 있다.
다음으로 도 7을 참조하면, 다이어그램(700)은 개별 의류 레이어(702)의 표현을 도시한다. 레이어(702)는 한 쌍의 케이지(예컨대, 외부 케이지(704) 및 내부 케이지(706))에 의해 정의되거나, 이를 포함하거나, 이에 의해 감싸진다. 레이어(702)는 또한 속이 채워진 점으로 도시된 특징 포인트(정점)를 갖는 외부 케이지(704)와 속이 빈 점으로 도시된 특징 포인트(정점)를 갖는 내부 케이지(706)와 함께 돌출부(708)를 포함한다. 내부 케이지(706)의 특징 포인트와 외부 케이지(704)의 특징 포인트 사이에 1 대 1 대응이 없을 수 있는 일부 레이어 지오메트리에서(예컨대, 특징 포인트 중 하나가 없거나 잘못 정렬됨), 보간 기법은 누락된 특징 포인트를 정의하는 데 사용될 수 있다(예컨대, 누락된 값을 재구성하거나 채우기).
대응하는 도트들(돌출부(708) 외부) 사이의 거리 D1은 외부 케이지의(704) 특징 포인트와 내부 케이지(706)의 대응하는 특징 포인트 사이의 거리이다. 거리 D1은 예컨대, 0보다 크거나 같은 값 또는 그 이상의 픽셀을 가질 수 있다. 거리 D2는 돌출부(708)를 따라 외부 케이지(704)에서 특징 포인트와 내부 케이지(706)에서 대응하는 특징 포인트 사이의 거리이다. 거리 D2는 하나의 픽셀, 두 개의 픽셀 또는 더 많은 수의 픽셀의 값을 가질 수 있어서, 예컨대, 거리 D2는 거리 D1보다 크다.
거리 D1 및 D2는 새로운 레이어가 기존 레이어 위에 일치하게 피팅됨에 따라 보존될 수 있다. 이러한 방식으로, 의류 레이어의 표면 특징의 시각적 외관은 레이어가 변형되어 적어도 부분적으로 보존될 수 있다. 예컨대, 아바타 위에 피팅된 "헐렁한" 바지 한 벌은 아바타 신체 또는 밑에 있는 의류 레이어가 상이한 형상/윤곽(날씬하거나 그 외 헐렁하지 않음)을 가질 수 있더라도 여전히 "헐렁한" 것으로 나타난다. 또 다른 예시로서, "스파이크 재킷(spiked jacket)"이 아바타 위에 피팅될 수 있고, 각 스파이크의 피크와 골을 따르기보다는 재킷의 "스파이크"에 의해 매달린 스카프의 시각적 외관을 제공하기 위하여, 이후 스카프가 스파이크 재킷 위에 일치하게 피팅될 수 있다.
일부 상황에서는 밑에 있는 레이어 위에 하나 이상의 옷을 겹쳐 놓으면 아바타가 부자연스럽거나 비현실적으로 보이는 부풀어오른("부푼(puffy)") 모습을 보일 수 있다. 다양한 실시예에 따르면, 부기(puffiness) 조절 기법을 사용하여 부푼 외관을 제거하거나 감소시킬 수 있다.
예컨대, 거리 D1 및/또는 D2의 값은 레이어(702) 전체에 걸쳐 균일하지 않도록 레이어(702)의 특정 부분을 따라 조정될 수 있다. 이러한 조정은 RBF 함수에 보간 또는 분산 값을 추가하거나, 혹은 예컨대 RBF 함수에서 사용되는 값을 조작/변경함으로써 수행될 수 있다.
일부 실시예에서, 부기에 대한 하나 이상의 임계값이 제공될 수 있다. 예컨대, 기존 레이어 위에 레이어(702)를 추가하면 부기 임계값이 초과되는 경우, 결과적인 부기 값이 임계값 아래가 되도록 레이어의 거리 D1 및/또는 D2가 줄어들 수 있다. 다양한 기법이 최하부 표면(예컨대 신체 표면)과 최상부 표면(예컨대 의류의 마지막 레이어의 외부 표면) 사이의 최대 허용 거리, 다른 레이어에 대한 한 레이어의 두께 백분율, 허용가능한 레이어 수, 또는 다른 방법 및 이들의 조합과 같은, 부기 임계값을 설정하거나 결정하기 위해 사용될 수 있다.
도 8 및 9는 일부 실시예에 따른 HSR 적용 전후의 아바타를 도시한다. 도 8에서, 여러 옷(또는 머리카락과 같은 기타 자산)은 아바타의 밑에 있는 신체 모양 및/또는 의류의 밑에 있는 레이어에 일치하도록 변형된 다음 아바타 상에 피팅/배치(예컨대, 렌더링)되었다. 도 8에 도시된 옷에는 부츠, 스커트, 스웨터, 재킷이 포함된다.
옷의 레이어링에 관하여, 레이어링은 아바타의 신체를 덮는 속옷, 속옷을 덮는 스커트, 속옷과 스커트의 적어도 일부를 덮는 스웨터, 및 스웨터와 스커트의 적어도 일부를 덮는 재킷을 포함할 수 있다. HSR이 수행되지 않은 상태에서, 도 8은 겹쳐진 의류 레이어에 의해 덮여 있기 때문에 보이지 않을 것으로 예상되는 밑에 있는 의류 레이어의 적어도 일부 부분/표면이 렌더링되어 실제로 보이는 것을 나타낸다. 다양한 옷에 대한 투명도 설정도 이러한 밑에 있는 표면의 가시성 정도에 영향을 미칠 수 있다.
비효율적인 그래픽 처리(예컨대, 보여서는 안 되는 다양한 표면을 불필요하게 렌더링하는 것) 외에도 도 8의 예에서는 HSR의 결어가 또한 바람직하지 않은 외관을 제공한다. 예컨대, 숨겨질 것으로 예상되는 밑에 있는 옷 표면의 번짐(bleed-through)(예컨대, 가시성)으로 인해 부자연스러운 외관이 초래된다.
도 8에 도시된 것과 비교하여. 도 9는 여기에 설명된 HSR이 적용된 후의 아바타를 도시한다. 도 9의 아바타 및 의류 레이어는 렌더링되어 희미해져 있는, 밑에 있는 신체 부위와 의류의 표면이 렌더링되지 않아 보이지 않는다. 다음에 설명되는 것은 도 9에 도시된 것과 같은 시각적 외관을 달성하기 위해 HSR을 수행하는 기법이다.
도 10은 일부 실시예에 따라 표면이 잠재적으로 보이는지 여부를 결정하는 예시적인 기법을 도시하는 다이어그램(1000)이다. 보다 구체적으로, 케이지의 하나 이상의 면(1002)은 잠재적으로 가시적인 면 세트(potentially visible set(PVS))의 일부를 형성하며, 도 10에 도시된 기법은 다각형(1004-1010)을 갖는 의류 메시로 구성된 의류의 레이어/옷에 의해 겹쳐지는 경우 케이지의 면(1002)이 보이는지 여부를 결정한다.
다양한 실시예에 따르면, 도 10의 의류 레이어/옷은 그 원래(변형 전) 상태가 아닌 위에서 설명한 것과 같은 방식으로 밑에 있는 레이어 위에 피팅되도록 이미 변형되었다. 가시성 결정/계산이 수행될 때 변형된 상태에 있음으로써, 변형된 의류 레이어/옷은 밑에 있는 케이지 면의 다각형의 배열 및/또는 위치와 더 밀접하게 일치하고 이에 따라 이들 케이지 면의 가시성을 정확하게 평가할 수 있다.
앞서 설명한 바와 같이, 케이지(면(1002)을 포함하는 복수의 면을 가짐)는 밑에 있는 신체 메시 및/또는 의류 메시를 둘러싸므로 밑에 있는 신체/의류 메시(들)의 프록시(proxy)로 간주될 수 있다. 도 10의 예시적인 의류 메시(의류 레이어)의 다각형(1004-1010)은 의류 레이어에 개구부(1012)를 정의하도록 배열되고 형상화된다. 예컨대, 개구부(1012)는 천이 없는 의류의 에지의 틈새, 천에 있는 구멍 등일 수 있다. 개구부(1012)는 또한 고글 렌즈, 안면 가리개, 플라스틱/유리 부분 등일 수 있다.
의류 메시의 다각형(1004-1010)에 의해 겹쳐진 경우 면(1002)이 보이는지 여부를 결정하기 위해, 복수의 광선(1014-1026)이 면(1002)의 포인트(1028)(또는 여러 포인트)로부터 대략적으로 원뿔형 방향으로 투사된다. 포인트(1028)는 면(1002) 상의 복수의 포인트 중 하나일 수 있다. 이러한 포인트는 면(1002) 상에 무작위로 위치할 수 있거나 및/또는 미리 정의된 위치에 있을 수 있다.
도 8에 도시된 바와 같이, 광선(1020, 1022)은 다각형을 빗나가 개구부(1012)를 통과하는 반면, 다른 광선(1014, 1016, 1018, 1024, 1026)은 의류 메시의 다각형(1004, 1006, 1010) 중 하나 이상에 부딪친다. 다양한 실시예에 따르면, 적어도 하나의 광선이 의류 메시의 다각형(면)을 빗나가면 면(1002)이 보이는 것으로 간주된다. 다른 실시예에서, 면이 보이는 것으로 간주하기 위해 최소 수의 광선(예컨대, 1보다 큰 수)이 사용될 수 있다.
다양한 실시예에 따르면, 위의 가시성 결정은 하나의 포인트에서 광선을 투사한 후 다른 포인트에서 광선을 투사하는 등을 순차적으로 반복함으로써 수행된다. 특정 포인트로부터의 어떠한 광선도 의류 메시를 관통하지 않으면 다음 포인트에서 광선이 투사된다. 특정 포인트로부터의 하나 이상의 광선이 의류 메시를 빗나간 것으로 결정된 후 면(1002)은 보이는 것으로 결정되며, 어떠한 추가 광선도 면(1002)의 다른 포인트에서 투사될 필요가 없다.
도 11-14는 일부 실시예에 따라 HSR을 수행하는 방법을 도시하는 다이어그램이며, 이는 앞서 전술한 메시 및 케이지 배열, 변형 및 레이어링 기법, 가시성 결정 기법 등에 적어도 부분적으로 기초할 수 있다. 먼저 도 11을 참조하면, 옷(예컨대 두꺼운 실선으로 긴 소매 셔츠로 묘사된 의류 메시(1100))은 아바타 신체의 몸통(1102)과 각 팔(1104)에 피팅되도록 변형되었다.
도 10의 가시성 결정 기법을 사용하면, 몸통(1102) 및 팔(1104)에 대응되고 의류 메시(1100) 밑에 있는 아바타 신체의 신체 케이지의 케이지 면은 보이지 않는(숨겨지는) 것으로 결정된다. 따라서 몸통(1102) 및 팔(1104)에 대응하는 신체 케이지 부분은 보이지 않는 것으로 설정되는(도 11에서 파선으로 도시됨) 반면, (의류 메시(1100) 외부에 위치하는) 신체 케이지 부분은 보이게 설정된다. 따라서, 머리(1106), 각 다리(1108) 및 각 손(1110)에 대응하는 신체 케이지의 면(도 11에서 실선으로 표시된)은 물론 의류 메시(1100)의 면도 보이는 것으로 설정된다.
다음으로 도 12에서, 외부 케이지(1200)(굵은 실선으로 표시된)는 신체 메시의 보이는 부분(예컨대, 머리(1106), 각 다리(1108) 및 각 손(1110))에 대해 및/또는 아바타 신체의 임의의 다른 가시적 표면에 대해, 의류 메시(1100)용으로 형성되거나, 겹쳐지거나, 혹은 제공되며, 이들 모두는 도 12에서 두껍지 않은 실선으로 집합적으로 도시된다. 소매와 손 부분(원 1202로 표시됨)은 도 13에 대한 예로서 다음에 설명되며, 메시의 면을 위에 있는 케이지의 해당 면에 매핑하기 위해 HSR의 일부로 수행되는 작업과 관련된다.
구체적으로 도 13에서, 의류 메시(1100)의 슬리브는 팔(1104)에 제공된다. 도 12에서 이전에 위에서 설명하고, 도 13에도 도시된 바와 같이, 외부 케이지(1200)는 의류 메시(1100)와 손(1110)을 감싸고 있다.
의류 메시(1100)는 소매의 손 끝에 있는 특정 면(1300)(굵은 실선으로 표시됨)을 포함하는 복수의 메시 면을 포함한다. 유사하게, 외부 케이지(1200)는 또한 굵은 실선으로 도시된 면(1302, 1304)을 포함하는 복수의 케이지 면을 포함한다. 면(1302)은 소매에서 면(1300)을 둘러싸고, 면(1304)은 소매에서 면(1300)의 일부와 또한 손목 근처/손목에서 손(1110)의 일부를 둘러싼다.
의류 메시(1100)의 각 면에 대해, HSR 방법은 외부 케이지(1200)의 어느 면(들)이 의류 메시(1100)의 해당 면과 관련되는지(또는 그렇지 않으면 연관되거나 매핑되는지) 결정한다. 따라서, 도 13의 예시에 대해, HSR 방법은 외부 케이지(1200)의 면(1302, 1304)이 의류 메시(1100)의 면(1300)과 관련되어 있다고 판단한다.
이러한 면 사이의 관계 결정은 외부 케이지(1200)의 면(1302, 1304)이 의류 메시(1100)의 면(1300)에 영향을 미친다는 결정에 대응한다. 일부 실시예에 따르면, 관련된 면(1302, 1304)은 면(1300)의 각 정점을 식별함으로써 식별될 수 있으며, 이후 정점에 가장 가까운 외부 케이지(1200)의 면을 식별한다. 예컨대, 면(1302 및 1304)은 면(1300)의 정점(1306)에 가장 가깝다. 의류 메시(1300)의 각 면의 정점으로부터의 거리는 거리(S)(도 6에 도시된 것과 같은) 및/또는 의류 메시(1300)의 면으로부터의 다른 논-노멀(non-normal) 또는 노멀 거리에 기초할 수 있다.
도 13에서 관련된 면을 결정한 후, 해당 데이터는 의류 메시(1100)에 대한 하나 이상의 벡터, 구성 데이터, 메타데이터 또는 기타 데이터 구조(들)로 저장될 수 있다. 예컨대, 벡터는 두 가지 값: 즉 의류 메시(1100)의 특정 면(1300)의 식별자, 및 면(1300)과 관련된 외부 케이지(1200)의 면(1302 및 1304)의 식별자를 가질 수 있다. 또한, 신체 케이지의 숨겨진 부분에 관한 데이터(도 11에 파선으로 도시됨) 및/또는 의류 메시(1100)에 의해 숨겨진 임의의 다른 밑에 있는 표면은 의류 메시(1100)에 대한 벡터 또는 다른 유형의 데이터 구조(들)로서 저장될 수도 있다. 의류 메시(1100) 및 기타 메시, 케이지, 면 등에 대한 이 모든 데이터는 향후 사용을 위해 서버 및/또는 다른 위치에 저장될 수 있으므로 의류 메시(1100)가 로드/리로드될 때마다 가시성 결정, 관련 표면 결정 등의 재계산(반복) 횟수를 줄일 수 있다.
도 11-13과 관련하여 위에서 결정된 바와 같은 데이터(예컨대, 가시성 및 관련 면)를 사용하여, 이후 HSR 방법은 후속 옷을 레이어링할 때 이 데이터를 활용할 수 있다. 다양한 실시예에 따르면, 의류(또는 아바타 신체)의 밑에 있는(내부) 레이어 위에 의류의 외부 레이어를 적용할 때, 다음 3가지 구성 요소가 HSR 방법에 의해 고려된다: 내부 레이어의 메시, 내부 레이어의 외부 케이지 및 외부 레이어의 내부 케이지.
예컨대, 도 14는 이전에 설명된 의류 메시(1100) 및 의류 메시(1100)의 외부 케이지(1200)를 도시한다. 의류 메시(1100)는 신체 케이지의 숨겨진 부분 위에 놓이는 가시면(1300)(도 14에는 도시되지 않았으며, 도 11에서 파선으로 도시됨)을 포함한다. 외부 케이지(1200)는 관련 면(1302, 1304)을 포함한다.
도 14는 의류의 다음(외부) 레이어(예컨대, 다음 의류 메시, 도시되지 않음)의 내부 케이지(1400)를 도시한다. 이 의류의 외부 레이어가 의류 메시(1100) 위에(예컨대, 긴 소매 셔츠 위에) 피팅되도록 변형되면, 의류의 외부 레이어의 내부 케이지(1400)의 면(1402, 1404)이 외부 케이지(1200)의 각각의 면(1302, 1404)에 매핑된다. 일부 실시예에서, 외부 케이지(1200) 자체는 내부 케이지(1400)이거나 내부 케이지(1400)가 된다. 내부 케이지(1400)의 케이지 면(1402 및 1404)은 의류의 외부 레이어의 하나 이상의 메시 면 또는 메시 면 부분에 대응할 수 있다.
그런 다음 가시성 결정(도 10과 관련하여 전술한 바와 같은)이 수행되어 면(1302, 1304)이 보이는지 또는 내부 케이지(1400)에 대응하는 외부 의류 메시에 의해 숨겨지는지 여부를 결정할 수 있다. 도 14의 예시에서, 외부 케이지(1200)의 면(1302)은 (도 14에 파선으로 표시된 바와 같이) 내부 케이지 면(1402)에 대응하는 (외부 의류 메시의) 하나 이상의 메시 면에 의해 숨겨지는 것으로 결정된다. 외부 케이지(1200)의 면(1304)(그리고 내부 케이지 면(1404)에 대응한다)은 도 14에 실선으로 표시된 것과 같이 외부 의류 메시를 통해 보이는 것으로 결정된다.
면(1302, 1304)은 의류 메시(1100)의 보이는 면(1300)의 관련된 면이고, 이들 관련된 면 중 적어도 하나(예컨대, 면(1304))는 의류의 외부 레이어(내부 케이지(1400)를 가짐)가 피팅될 때 보이는 것으로 결정되기 때문에, 내부의/밑에 있는 의류 메시의 전체 면(1300)은 보이는 것으로 간주되고 의류의 외부 레이어가 아바타 신체에 피팅될 때 렌더링된다. 외부 케이지(1200)의 면(1302)과 면(1304)이 모두 의류의 외부 레이어의 메시 면(들)에 의해 숨겨지는 것으로 결정되는 다른 상황에서, 의류 메시(1100)의 전체 면(1300)은 보이지 않거나 숨겨진 것으로 표시되고 의류의 외부 레이어가 아바타 신체에 피팅될 때 렌더링되지 않는다.
HSR 방법에 대해 위에 설명된 작업은 추가 메시 면에 대해 반복/되풀이될 수 있으며 추가 의류 레이어에 대해 변형되어 아바타 신체 및/또는 기존 의류 레이어 위에 피팅된다.
도 15는 일부 실시예에 따른, 레이어링된 의류를 갖는 3D 아바타를 지원할 수 있는 3D 환경 플랫폼을 포함하는 예시적인 시스템 아키텍처(1500)의 다이어그램이다. 도 15의 예시에서, 3D 환경 플랫폼은 순전히 설명의 목적으로 게이밍 플랫폼(1502)의 맥락에서 설명될 것이며, 다양한 다른 실시예는 온라인 미팅 플랫폼, 가상 현실(VR) 또는 증강 현실(AR) 플랫폼 또는 3D 콘텐츠를 제공할 수 있는 기타 유형의 플랫폼과 같은, 다른 유형의 3D 환경 플랫폼을 제공할 수 있다. 게이밍 플랫폼(1502) 및 시스템 아키텍처(1500)의 다른 요소에 대해 여기에 제공된 설명은 그러한 다른 유형의 3D 환경 플랫폼과 함께 동작 가능하도록 적응될 수 있다.
온라인 게이밍 플랫폼("사용자 생성 콘텐츠 플랫폼" 또는 "사용자 생성 콘텐츠 시스템"이라고도 지칭됨)은 사용자가 전자 게임을 플레이하는 동안과 같이, 사용자가 서로 인터랙팅할 수 있는 다양한 방법을 제공한다. 예컨대, 온라인 게이밍 플랫폼의 사용자는 공통 목표를 향해 함께 작업하고, 다양한 가상 게이밍 아이템을 공유하고, 서로에게 전자 메시지를 전송하는 것 등을 할 수 있다. 온라인 게이밍 플랫폼의 사용자는 전술한 바와 같이 HSR 특징과 레이어링된 의류를 갖는 3D 아바타와 같은, 캐릭터를 사용하여 게임을 플레이할 수 있으며, 사용자는 전자 게임에서 렌더링된 3D 세계를 탐색할 수 있다.
온라인 게이밍 플랫폼은 또한 플랫폼의 사용자가 아바타를 생성하고 애니메이팅하도록 허용할 수 있을 뿐만 아니라 사용자가 3D 세계에 배치하기 위한 다른 그래픽 객체를 생성하도록 허용할 수 있다. 예컨대, 온라인 게이밍 플랫폼의 사용자는 아바타를 생성, 디자인 및 커스터마이징하고, 아바타에 다양한 의류 아이템을 생성, 디자인 및 피팅하는 것이 허용될 수 있다.
도 15에서, 예시적인 시스템 아키텍처(1500)(여기에서 "시스템"으로도 지칭됨)는 온라인 게이밍 플랫폼(1502), 제1 클라이언트 장치(1510A) 및 적어도 하나의 제2 클라이언트 장치 X(1510X)(여기에서 일반적으로 "클라이언트 장치(들)(1510)"라고 지칭됨)를 포함한다. 온라인 게이밍 플랫폼(1502)은 그 중에서도, 게임 엔진(1504) 및 하나 이상의 전자 게임(1506)을 포함할 수 있다. 시스템 아키텍처(1500)는 하나의 가능한 실시예를 예시하기 위해 제공된다. 다른 실시예에서, 시스템 아키텍처(1500)는 도 15에 도시된 것과 동일하거나 다른 방식으로 구성된 동일하거나, 더 적거나, 더 많거나, 상이한 요소를 포함할 수 있다.
통신 네트워크(1522)는 온라인 게이밍 플랫폼(1502)과 클라이언트 장치(1510) 사이 및/또는 시스템 아키텍처(1500)의 다른 요소 사이의 통신을 위해 사용될 수 있다. 네트워크(1522)는 공중 네트워크(예컨대, 인터넷), 사설 네트워크(예컨대, LAN(local area network) 또는 WAN(wide area network)), 유선 네트워크(예컨대, 이더넷 네트워크), 무선 네트워크(예컨대, 802.11 네트워크, Wi-Fi 네트워크 또는 무선 LAN(WLAN)), 셀룰러 네트워크(예컨대, LTE(long term evolution) 네트워크), 라우터, 허브, 스위치, 서버 컴퓨터 또는 이들의 조합을 포함할 수 있다.
클라이언트 장치(1510A)는 게임 애플리케이션(1512) 및 하나 이상의 사용자 인터페이스(1514)(예컨대, 오디오/비디오 입력/출력 장치)를 포함할 수 있다. 유사하게, 클라이언트 장치 X(1500X)는 게임 애플리케이션(1520) 및 사용자 인터페이스(1518)(예컨대, 오디오/비디오 입력/출력 장치)를 포함할 수 있다. 오디오/비디오 입력/출력 장치는 마이크, 스피커, 헤드폰, 디스플레이 장치, 카메라 등 중 하나 이상을 포함할 수 있다.
시스템 아키텍처(1500)는 하나 이상의 저장 장치(1524)를 더 포함할 수 있다. 저장 장치(1524)는 예컨대, 온라인 게이밍 플랫폼(1502) 내에 위치하거나, 네트워크(1522)를 통해 온라인 게이밍 플랫폼(1502)에 통신적으로 결합되는 저장 장치(도 15에 도시된 것과 같음)일 수 있다. 저장 장치(1524)는 예컨대, 게임 엔진(1504) 또는 게임 애플리케이션(1512/1520)에 의해 게임(1506)에서 렌더링되는 그래픽 객체뿐만 아니라 그래픽 객체의 구성/속성 정보(예컨대, 전술한 것과 같은 케이지 생성 및 변형에 사용할 수 있는 특징 포인트의 좌표 정보, 크기 치수 등)를 저장할 수 있다. 일부 실시예에서, 저장 장치(1524)는 의류와 신체 메시에 대해, 그리고 의류와 신체 케이지에 대해, 서로 관련된 면, 보이거나 보이지 않는 표면 등을 식별하는 벡터 또는 다른 데이터 구조(들)와 같은, HSR 관련 정보를 추가로 저장할 수 있다.
일부 실시예에서, 저장 장치(1524)는 게임(1506)에서 렌더링되는 그래픽 객체를 제공하는 하나 이상의 개별 콘텐츠 전송 네트워크의 일부일 수 있다. 예컨대, 아바타 제작자는 제1 저장 장치에서 액세스 가능한 라이브러리에 아바타 템플릿을 게시할 수 있고, 의류 제작자는 (아바타 제작자와 별도로 및 독립적으로) 제2 저장 장치에서 액세스 가능한 라이브러리에 의류 템플릿을 게시할 수 있다. 이후, 게임 애플리케이션(1512)은 게임을 플레이하는 동안 프리젠테이션을 위해 런타임 시 계산/컴파일/변형을 위해, 제1/제2 저장 장치에 저장된 그래픽 객체(아바타 및 의류 아이템)를 풀링(또는 푸시)할 수 있다.
일 실시예에서, 저장 장치(1524)는 비일시적 컴퓨터 판독가능 메모리(예컨대, 랜덤 액세스 메모리), 캐시, 드라이브(예컨대, 하드 드라이브), 플래시 드라이브, 데이터베이스 시스템, 또는 데이터 및 다른 콘텐츠를 저장할 수 있는 다른 유형의 컴포넌트 또는 장치일 수 있다. 저장 장치(1524)는 또한 복수의 컴퓨팅 장치(예컨대, 복수의 서버 컴퓨터)에 걸쳐 있을 수 있는 복수의 저장 컴포넌트(예컨대, 복수의 드라이브 또는 복수의 데이터베이스)를 포함할 수 있다.
일부 실시예에서, 온라인 게이밍 플랫폼(1502)은 하나 이상의 컴퓨팅 장치(예컨대, 클라우드 컴퓨팅 시스템, 랙마운트 서버(rackmount server), 서버 컴퓨터, 물리적 서버의 클러스터 등)를 갖는 서버를 포함할 수 있다. 일부 실시예에서, 서버는 온라인 게임 플랫폼(1502)에 포함될 수 있거나, 독립적인 시스템일 수 있거나, 다른 시스템이나 플랫폼의 일부일 수 있다.
일부 실시예에서, 온라인 게이밍 플랫폼(1502)은 하나 이상의 컴퓨팅 장치(예컨대, 랙마운트 서버, 라우터 컴퓨터, 서버 컴퓨터, 개인용 컴퓨터, 메인프레임 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 데스크톱 컴퓨터 등), 데이터 저장소(예컨대, 하드 디스크, 메모리, 데이터베이스), 네트워크, 소프트웨어 컴포넌트 및/또는 온라인 게이밍 플랫폼(1502)에서 동작을 수행하고 온라인 게이밍 플랫폼(1502)에 대한 액세스를 사용자에게 제공하는 데 사용될 수 있는 하드웨어 컴포넌트를 포함할 수 있다. 온라인 게이밍 플랫폼(1502)은 또한 온라인 게이밍 플랫폼(1502)에 의해 제공된 콘텐츠에 대한 액세스를 사용자에게 제공하는 데 사용될 수 있는 웹 사이트(예컨대, 웹 페이지) 또는 애플리케이션 백 엔드 소프트웨어(application back-end software)를 포함할 수 있다. 예컨대, 사용자는 클라이언트 장치(1510) 상의 게임 애플리케이션(1512)을 사용하여 온라인 게이밍 플랫폼(1502)에 액세스할 수 있다.
일부 실시예에서, 온라인 게이밍 플랫폼(1502)은 사용자 간의 연결을 제공하는 소셜 네트워크의 유형이거나, 또는 사용자(예컨대, 최종 사용자 또는 소비자)가 온라인 게이밍 플랫폼(1502) 상에서 다른 사용자와 통신할 수 있도록 허용하는 사용자 생성 콘텐츠 시스템의 유형일 수 있으며, 여기에서 통신은 음성 채팅(예컨대, 동기 및/또는 비동기 음성 통신), 비디오 채팅(예컨대, 동기 및/또는 비동기 비디오 통신), 또는 텍스트 채팅(예컨대, 동기 및/또는 비동기 텍스트 기반 통신)을 포함할 수 있다. 본 개시의 일부 실시예에서, "사용자"는 단일 개인으로 표현될 수 있다. 그러나, 본 개시의 다른 실시예는 사용자 세트 또는 자동화된 소스에 의해 제어되는 엔티티인 "사용자"(예컨대, 사용자 생성)를 포함한다. 예컨대, 사용자 생성 콘텐츠 시스템에서 커뮤니티 또는 그룹으로 연합된 개별 사용자의 세트는 "사용자"로 간주될 수 있다.
일부 실시예에서, 온라인 게이밍 플랫폼(1502)은 가상 게이밍 플랫폼일 수 있다. 예컨대, 게이밍 플랫폼은 네트워크(1522)를 통해 클라이언트 장치(1510)를 사용하여 게임에 액세스하거나 인터랙션할 수 있는 사용자의 커뮤니티에 싱글 플레이어 또는 멀티 플레이어 게임을 제공할 수 있다. 일부 실시예에서, 게임(여기에서 “비디오 게임", “온라인 게임” 또는 "가상 게임" 등이라고도 지칭함)은 예컨대, 이차원(2D) 게임, 삼차원(3D) 게임(예컨대, 3D 사용자 생성 게임), 가상 현실(VR) 게임 또는 증강 현실(AR) 게임일 수 있다. 일부 실시예에서, 사용자는 다른 사용자와 함께 게임플레이에 참가할 수 있다. 일부 실시예에서, 게임은 게임의 다른 사용자와 실시간으로 플레이될 수 있다.
일부 실시예에서, 게임플레이는 게임(예컨대, 게임(1506)) 내에서 클라이언트 장치(예컨대, 클라이언트 장치(1510))를 사용하는 하나 이상의 플레이어의 인터랙션 또는 클라이언트 장치(1510)의 디스플레이 또는 다른 사용자 인터페이스(예컨대, 사용자 인터페이스(1514/1518)) 상의 인터랙션의 표시를 지칭할 수 있다.
일부 실시예에서, 게임(1506)은 게임 콘텐츠(예컨대, 디지털 미디어 아이템)를 엔티티에 제시하도록 구성된 소프트웨어, 펌웨어 또는 하드웨어를 사용하여 실행되거나 로드될 수 있는 전자 파일을 포함할 수 있다. 일부 실시예에서, 게임 애플리케이션(1512)이 실행될 수 있고, 게임(1506)은 게임 엔진(1504)과 관련하여 렌더링될 수 있다. 일부 실시예에서, 게임(1506)은 공통 규칙 세트 또는 공통 목표를 가질 수 있으며, 그리고 게임(1506)의 환경은 공통 규칙 세트 또는 공통 목표를 공유한다. 일부 실시예에서, 상이한 게임은 서로 상이한 규칙 또는 목표를 가질 수 있다.
일부 실시예에서, 게임은 복수의 환경이 링크될 수 있는 하나 이상의 환경(여기에서 "게이밍 환경” 또는 "가상 환경"이라고도 지칭함)을 가질 수 있다. 환경의 예시는 3D 환경일 수 있다. 게임 애플리케이션(1506)의 하나 이상의 환경은 여기에서 "세계” 또는 "게임 세계” 또는 "가상 세계” 또는 "유니버스"로 집합적으로 지칭될 수 있다. 예컨대, 사용자는 다른 사용자에 의해 생성된 다른 가상 환경에 링크된 가상 환경을 구축할 수 있다. 가상 게임의 캐릭터(여기에서 설명된 바와 같이 은면이 제거되도록 레이어링된 의류를 갖는 3D 아바타와 같은)는 가상 경계를 건너서 인접한 가상 환경으로 들어갈 수 있다.
3D 환경 또는 3D 세계는 게임 콘텐츠를 나타내는 지오메트릭 데이터의 삼차원 표현을 사용(또는 지오메트릭 데이터의 3D 표현이 사용되는지 여부에 관계없이 적어도 게임 콘텐츠가 3D 콘텐츠로 나타나도록 제시)하는 그래픽을 제공한다는 점에 유의할 수 있다. 2D 환경 또는 2D 세계는 게임 콘텐츠를 나타내는 지오메트릭 데이터의 이차원 표현을 제공하는 그래픽을 사용한다.
일부 실시예에서, 온라인 게이밍 플랫폼(1502)은 하나 이상의 게임(1506)을 호스팅할 수 있고, 사용자가 클라이언트 장치(1510)의 게임 애플리케이션(1512)을 사용하여 게임(1506)과 인터랙팅하도록 허가할 수 있다. 온라인 게이밍 플랫폼(1502)의 사용자는 게임(1506)을 플레이하거나, 생성하거나, 인터랙션하거나 또는 구축하고, 다른 사용자와 통신하고, 그리고/또는 게임(1506)의 객체(예컨대, 여기에서 "아이템(들)" 또는 "게임 객체" 또는 "가상 게임 아이템(들)" 또는 "그래픽 객체"라고도 지칭됨)를 생성하고 구축할 수 있다. 예컨대, 사용자 생성 가상 아이템을 생성할 때, 사용자는 그 중에서도, 캐릭터, 캐릭터를 위한 애니메이션, 캐릭터를 위한 장식(예컨대, 의류, 스킨, 액세서리 등), 인터랙티브 게임을 위한 하나 이상의 가상 환경을 생성하거나, 또는 게임(1506)에서 사용된 구조를 구축할 수 있다. 일부 실시예에서, 사용자는 온라인 게이밍 플랫폼(1502)의 다른 사용자와 플랫폼 내 화폐(예컨대, 가상 화폐)와 같은, 게임 가상 게임 객체를 구매, 판매 또는 거래할 수 있다.
일부 실시예에서, 온라인 게이밍 플랫폼(1502)은 게임 애플리케이션(예컨대, 게임 애플리케이션(1512)에 게임 콘텐츠를 전송할 수 있다. 일부 실시예에서, 게임 콘텐츠(여기에서 "콘텐츠"라고도 지칭됨)는 온라인 게이밍 플랫폼(1502) 또는 게임 애플리케이션과 연관된 임의의 데이터 또는 소프트웨어 명령어(예컨대, 게임 객체, 게임, 사용자 정보, 비디오, 이미지, 명령, 미디어 아이템 등)를 지칭할 수 있다. 일부 실시예에서, 게임 객체(예컨대, 여기에서 "아이템(들)" 또는 "객체" 또는 "가상 게임 아이템(들)"이라고도 지칭됨)는 온라인 게이밍 플랫폼(1502)의 게임(1506) 또는 클라이언트 장치(1510)의 게임 애플리케이션(1512 또는 1520)에서 사용, 생성, 공유 또는 그 외 묘사되는 객체를 지칭할 수 있다. 예컨대, 게임 객체는 부품, 모델, 캐릭터 또는 그 컴포넌트(예컨대, 얼굴, 팔, 입술 등과 같은), 도구, 무기, 의류, 건물, 차량, 화폐, 식물군, 동물군, 전술한 컴포넌트(예컨대, 건물의 창문) 등을 포함할 수 있다.
게임(1506)을 호스팅하는 온라인 게이밍 플랫폼(1502)은 예시의 목적으로 제공된다는 점에 유의할 수 있다. 일부 실시예에서, 온라인 게이밍 플랫폼(1502)은 한 사용자로부터 하나 이상의 다른 사용자로의 통신 메시지를 포함할 수 있는 하나 이상의 미디어 아이템을 호스팅할 수 있다. 미디어 아이템은 디지털 비디오, 디지털 영화, 디지털 사진, 디지털 음악, 오디오 콘텐츠, 멜로디, 웹사이트 콘텐츠, 소셜 미디어 업데이트, 전자 서적, 전자 잡지, 디지털 신문, 디지털 오디오 서적, 전자 저널, 웹 블로그, RSS(real simple syndication) 피드, 전자 만화책, 소프트웨어 애플리케이션 등을 포함할 수 있지만, 이에 제한되지 않는다. 일부 실시예에서, 미디어 아이템은 디지털 미디어 아이템을 엔티티에 표시하도록 구성된 소프트웨어, 펌웨어 또는 하드웨어를 사용하여 실행하거나 로드할 수 있는 전자 파일일 수 있다.
일부 실시예에서, 게임(1506)은 특정 사용자 또는 특정 사용자의 그룹과 연관될 수 있거나 (예컨대, 개인 게임), 온라인 게이밍 플랫폼(1502)의 사용자에게 널리 이용 가능하도록 할 수 있다 (예컨대, 공개 게임). 온라인 게이밍 플랫폼(1502)이 하나 이상의 게임(1506)을 특정 사용자 또는 사용자의 그룹과 연관시키는 일부 실시예에서, 온라인 게이밍 플랫폼(1502)은 사용자 계정 정보(예컨대, 사용자 이름 및 비밀번호와 같은 사용자 계정 식별자)를 사용하여 특정 사용자(들)를 게임(1502)과 연관시킬 수 있다.
일부 실시예에서, 온라인 게이밍 플랫폼(1502) 또는 클라이언트 장치(1510)는 게임 엔진(1504) 또는 게임 애플리케이션(1512/1520)을 포함할 수 있다. 일부 실시예에서, 게임 엔진(1504)은 게임(1506)의 개발 또는 실행을 위해 사용될 수 있다. 예컨대, 게임 엔진(1506)은 다른 특징 중에서도, 2D, 3D, VR 또는 AR 그래픽을 위한 렌더링 엔진(“렌더러"), 물리 엔진, 충돌 감지 엔진(및 충돌 응답), 사운드 엔진, 스크립팅 기능, 애니메이션 엔진, 인공 지능 엔진, 네트워킹 기능, 스트리밍 기능, 메모리 관리 기능, 스레딩 기능, 장면 그래프 기능 또는 시네마틱에 대한 비디오 지원을 포함할 수 있다. 게임 엔진(1504)의 컴포넌트는 아바타를 선택하고, 아바타를 커스터마이징하고, 의류 아이템을 선택하고, 의류 아이템을 아바타의 레이어로 변형하고, HSR을 수행하고, 여기에 설명된 다양한 다른 동작을 위한 명령을 포함하는, 게임을 컴퓨팅하고 렌더링하는 것을 돕는 명령(예컨대, 렌더링 명령, 충돌 명령, 애니메이션 명령, 물리 명령 등)을 생성할 수 있다. 일부 실시예에서, 클라이언트 장치(1510)의 게임 애플리케이션(1512/1518)은 런타임에 은면이 제거된 레이어링된 의류를 변형하고 렌더링하는 것과 관련하여 여기에서 설명된 동작을 수행하기 위하여, 독립적으로, 온라인 게이밍 플랫폼(1502)의 게임 엔진(1504)과 협력하여, 또는 둘 다의 조합으로 작동할 수 있다.
일부 실시예에서, 온라인 게이밍 플랫폼(1502) 및 클라이언트 장치(1510) 둘 다는 게임 엔진 또는 게임 애플리케이션(각각 1504, 1512, 1520)을 실행할 수 있다. 게임 엔진(1504)을 사용하는 온라인 게이밍 플랫폼(1502)은 일부 또는 모든 게임 엔진 기능(예컨대, 전술한 의류 레이어의 변형 및 은면의 제거를 포함하는, 물리 명령, 애니메이션 명령, 렌더링 명령 등을 생성)을 수행하거나, 일부 또는 모든 게임 엔진 기능을 클라이언트 장치(1510)의 게임 애플리케이션(1512)으로 오프로드할 수 있다. 일부 실시예에서, 각각의 게임(1506)은 온라인 게이밍 플랫폼(1502) 상에서 수행되는 게임 엔진 기능과 클라이언트 장치(1510) 상에서 수행되는 게임 엔진 기능 사이에 상이한 비율을 가질 수 있다.
예컨대, 온라인 게이밍 플랫폼(1502)의 게임 엔진(1504)은 적어도 두 개의 게임 객체 사이에 충돌이 있는 경우, 물리 명령을 생성하는 데 사용될 수 있는 한편, 추가 게임 엔진 기능(예컨대, 은면이 제거된 레어링된 의류를 변형하고 디스플레이하는 것을 포함하는 렌더링 명령 생성)은 클라이언트 장치(1510)로 오프로드될 수 있다. 일부 실시예에서, 온라인 게이밍 플랫폼(1502) 및 클라이언트 장치(1510) 상에서 수행된 게임 엔진 기능의 비율은 게임플레이 조건에 기초하여 (예컨대, 동적으로) 변경될 수 있다. 예컨대, 특정 게임(1506)의 게임플레이에 참가하는 사용자의 수가 임계값을 초과하면, 온라인 게이밍 플랫폼(1502)은 클라이언트 장치(1510)에 의해 이전에 수행되었던 하나 이상의 게임 엔진 기능을 수행할 수 있다.
예컨대, 사용자는 클라이언트 장치(1510)에서 게임(1506)을 플레이할 수 있고, 제어 명령어(예컨대, 오른쪽, 왼쪽, 위, 아래, 사용자 선택 또는 캐릭터 위치 및 속도 정보 등과 같은 사용자 입력)를 온라인 게이밍 플랫폼(1502)에 전송할 수 있다. 클라이언트 장치(1510)로부터 제어 명령어를 수신한 이후, 온라인 게이밍 플랫폼(1502)은 게임플레이 명령어(예컨대, 그룹 게임플레이에 참가하는 캐릭터의 위치 및 속도 정보 또는 렌더링 명령, 충돌 명령과 같은 명령 등)를 제어 명령어에 기초하여 클라이언트 장치(1510)에 전송할 수 있다. 예컨대, 온라인 게이밍 플랫폼(1502)은 클라이언트 장치(1510)에 대한 게임플레이 명령어를 생성하기 위해 제어 명령어의 (예컨대, 게임 엔진(1504)을 사용하는) 하나 이상의 논리적 동작을 수행할 수 있다. 다른 경우에, 온라인 게이밍 플랫폼(1502)은 하나의 클라이언트 장치(1510)로부터 게임(1506)에 참가하는 다른 클라이언트 장치로 제어 명령어 중 하나 이상을 전달할 수 있다. 클라이언트 장치(1510)는 게임플레이 명령어를 사용하고, 전술한 바와 같이 HSR과 레이어링된 의류가 있는 아바타를 포함하는, 클라이언트 장치(1510)의 디스플레이 상에서 표시를 위한 게임플레이를 렌더링할 수 있다.
일부 실시예에서, 제어 명령어는 사용자 캐릭터의 게임 내 동작을 나타내는 명령어를 지칭할 수 있다. 예컨대, 제어 명령어는 오른쪽, 왼쪽, 위, 아래, 사용자 선택, 자이로스코프 위치 및 방향 데이터, 힘 센서 데이터 등과 같은 게임 내 동작을 제어하기 위한 사용자 입력을 포함할 수 있다. 제어 명령어는 캐릭터 위치 및 속도 정보를 포함할 수 있다. 일부 실시예에서, 제어 명령어는 온라인 게이밍 플랫폼(1502)로 직접 전송된다. 다른 실시예에서, 제어 명령어는 클라이언트 장치(1510)로부터 다른 클라이언트 장치로 전송될 수 있고, 여기에서 다른 클라이언트 장치는 로컬 게임 애플리케이션(1520)을 사용하여 게임플레이 명령어를 생성한다. 제어 명령어는 음성 통신 메시지 또는 다른 사용자로부터의 다른 사운드, 예컨대 음성 통신 또는 여기에서 설명된 오디오 공간화 기술을 사용하여 생성된 기타 사운드를 오디오 장치(예컨대, 스피커, 헤드폰 등)에서 플레이하기 위한 명령어를 포함할 수 있다.
일부 실시예에서, 게임플레이 명령어는 클라이언트 장치(1510)가 멀티 플레이어 게임과 같은 게임의 게임플레이를 렌더링하도록 허용하는 명령어를 지칭할 수 있다. 게임플레이 명령어는 사용자 입력(예컨대, 제어 명령어), 캐릭터 위치 및 속도 정보, 또는 명령(예컨대, 물리 명령, 애니메이션 명령, 렌더링 명령, 충돌 명령 등) 중 하나 이상을 포함할 수 있다.
일부 실시예에서, 클라이언트 장치(들)(1510)는 개인용 컴퓨터(PC), 모바일 장치(예컨대, 랩톱, 모바일 전화, 스마트 폰, 태블릿 컴퓨터 또는 넷북 컴퓨터), 네트워크 연결된 텔레비전, 게임 콘솔 등과 같은 컴퓨팅 장치를 각각 포함할 수 있다. 일부 실시예에서, 클라이언트 장치(1510)는 또한 "사용자 장치"로 지칭될 수 있다. 일부 실시예에서, 하나 이상의 클라이언트 장치(1510)는 임의의 주어진 순간에 온라인 게이밍 플랫폼(1502)에 접속할 수 있다. 클라이언트 장치(1510)의 수는 제한이 아닌 예시로서 제공된다는 점에 유의할 수 있다. 일부 실시예에서, 임의의 수의 클라이언트 장치(1510)가 사용될 수 있다.
일부 실시예에서, 각각의 클라이언트 장치(1510)는 게임 애플리케이션(1512 또는 1520)의 인스턴스를 포함할 수 있다. 일 실시예에서, 게임 애플리케이션(1512 또는 1520)은 사용자가 온라인 게이밍 플랫폼(1502)에 의해 호스팅되는 가상 게임에서 가상 캐릭터를 제어하거나, 게임(1506), 이미지, 비디오 아이템, 웹 페이지, 문서 등과 같은 콘텐츠를 보거나 업로드하는 것과 같이 온라인 게이밍 플랫폼(1502)을 사용하고 인터랙팅하도록 허가할 수 있다. 일 예시에서, 게임 애플리케이션은 웹 서버에 의해 제공된 콘텐츠(예컨대, 가상 환경의 가상 캐릭터 등)를 액세스, 검색, 제시 또는 탐색할 수 있는 웹 애플리케이션(예컨대, 웹 브라우저와 함께 동작하는 애플리케이션)일 수 있다. 다른 예시에서, 게임 애플리케이션은 클라이언트 장치(1510)에 로컬로 설치되고 실행되며, 사용자가 온라인 게이밍 플랫폼(1502)과 인터랙팅하도록 허용하는 네이티브 애플리케이션(예컨대, 모바일 애플리케이션, 앱 또는 게임 프로그램)일 수 있다. 게임 애플리케이션은 사용자에게 콘텐츠(예컨대, 웹 페이지, 미디어 뷰어)를 렌더링, 표시 또는 제시할 수 있다. 일 실시예에서, 게임 애플리케이션은 또한 웹 페이지에 임베딩되는 임베딩된 미디어 플레이어(예컨대, Flash® 플레이어)를 포함할 수 있다.
본 개시의 양태에 따르면, 게임 애플리케이션(1512/1520)은 사용자가 온라인 게이밍 플랫폼(1502)과 인터랙팅(예컨대, 온라인 게이밍 플랫폼(1502)에 의해 호스팅된 게임(1506)을 플레이)할뿐만 아니라 온라인 게이밍 플랫폼(1502)에 콘텐츠를 구축, 생성, 편집, 업로드하기 위한 온라인 게이밍 플랫폼 애플리케이션일 수 있다. 이와 같이, 게임 애플리케이션(1512/1520)은 온라인 게이밍 플랫폼(1502)에 의해 클라이언트 장치(1510)에 제공될 수 있다. 다른 예시에서, 게임 애플리케이션은 서버로부터 다운로드되는 애플리케이션일 수 있다.
일부 실시예에서, 사용자는 게임 애플리케이션을 통해 온라인 게이밍 플랫폼(1502)에 로그인할 수 있다. 사용자는 사용자 계정 정보(예컨대, 사용자 이름 및 비밀번호)를 제공함으로써 사용자 계정에 액세스할 수 있으며, 여기에서 사용자 계정은 온라인 게이밍 플랫폼(1502)의 하나 이상의 게임(1506)에 참가할 수 있는 하나 이상의 캐릭터와 연관되어 있다.
일반적으로, 온라인 게이밍 플랫폼(1502)에 의해 수행되는 것으로 일 실시예에서 설명된 기능은 또한 적절한 경우 다른 실시예에서 클라이언트 장치(들)(1510) 또는 서버에 의해 수행될 수 있다. 또한, 특정 컴포넌트에 기인하는 기능은 함께 동작하는 상이한 컴포넌트 또는 복수의 컴포넌트에 의해 수행될 수 있다. 온라인 게이밍 플랫폼(1502)은 또한 적절한 API(application programming interface)를 통해 다른 시스템 또는 장치에 제공된 서비스로서 액세스될 수 있으며, 따라서 웹 사이트에서의 사용에 제한되지 않는다.
도 16은 일부 실시예에 따른, 3D 아바타에 HSR과 레이어링된 의류를 제공하기 위한 컴퓨터 구현 방법(1600)을 예시하는 흐름도이다. 단순화를 위해, 방법(1600)의 다양한 동작은 동작을 수행하는 클라이언트 장치(1510)에서 게임 애플리케이션(1512)의 맥락에서 설명된다. 그러나, 도 15과 관련하여 앞서 전술한 바와 같이, 동작 중 일부는 게이밍 플랫폼(1502)의 게임 엔진(1504)에 의해 전체적으로 또는 부분적으로, 대안적으로 또는 추가적으로 수행될 수 있다. 예시적인 방법(1600)은 블록(1602 내지 1616)과 같은, 하나 이상의 블록에 의해 예시된 하나 이상의 동작을 포함할 수 있다. 여기에서 설명된 방법(1600) 및/또는 임의의 다른 프로세스(들)의 다양한 블록은 더 적은 블록으로 결합될 수 있고, 추가 블록으로 분할될 수 있고, 추가 블록으로 보완될 수 있으며, 그리고/또는 실시예에 기초하여 제거될 수 있다.
도 16의 방법(1600)은 도 1-15 및 다른 도면에 도시된 요소를 참조하여 여기에서 설명된다. 일 실시예에서, 방법(1600)의 동작은 파이프라인 순차적 방식으로 수행될 수 있다. 다른 실시예에서, 일부 동작은 비순차적, 병렬 등으로 수행될 수 있다.
블록(1602)("3D 아바타의 신체 케이지의 신체 특징 포인트 식별함")에서, 사용자는 게임 애플리케이션(1512)을 시작하고, (온라인 게임 또는 가상 경험과 같은) 3D 환경에서 사용할 아바타를 선택하기 위해 아바타 신체 라이브러리에 액세스했다. 선택된 아바타는 일반적인 형상/크기를 가진 일반 템플릿일 수 있거나, 스키닝을 갖는 특정 유형(예컨대, 휴머노이드, 외계인, 동물 등)의 보다 상세한 아바타 템플릿일 수 있다. 라이브러리에서 선택된 아바타는 이미 그 위에 구성된 신체 케이지(예컨대, 도 1-3 참조)를 가질 수 있으며, 그리고/또는 게임 애플리케이션(1512)은 런타임에 신체 케이지의 적어도 일부를 생성할 수 있다. 게임 애플리케이션은 아바타의 형상을 정의하는 신체 케이지의 특징 포인트를 식별한다. 블록(1602) 다음에는 블록(1604)이 이어질 수 있다.
블록(1604)("첫 번째 옷의 내부 케이지의 내부 특징 포인트를 신체 케이지의 신체 특징 포인트에 매핑함")에서, 사용자는 의류 아이템의 라이브러리에 액세스하고, 첫 번째 옷 아이템을 선택했다. 블록(1602)에서 아바타 신체와 마찬가지로, 라이브러리의 첫 번째 옷은 그 위에 구성된 케이지(들)를 가질 수 있고, 그리고/또는 게임 애플리케이션(1512)은 런타임에 케이지(들) 중 적어도 일부를 생성할 수 있다. 첫 번째 옷에 대한 케이지는 내부 케이지와 외부 케이지를 포함한다(예컨대, 도 7 참조). 블록(1604)에서, 게임 애플리케이션(1512)은 아바타 신체를 따르는 첫 번째 옷을 변형(예컨대, 첫 번째 옷의 메시를 변형)하기 위하여, 첫 번째 옷의 내부 케이지의 내부 특징 포인트를 신체 케이지의 신체 특징 포인트에 매핑하기 위한 RBF 기법을 활용할 수 있다. 블록(1604) 다음에는 블록(1606)이 이어질 수 있다.
블록 1606("제1 HSR 수행함: 가시성 및 관련 면을 결정함")에서, 반복적인 HSR 관련 작업의 제1 세트가 수행될 수 있다. 예컨대, 도 10의 가시성 기법을 사용하여, HSR 방법은 신체 케이지의 면(신체 메시의 면에 대응하거나 혹은 프록시로 작용하는)이 첫 번째 옷의 메시의 하나 이상의 면에 의해 숨겨질지 여부를 결정할 수 있다. 이 결정은 신체 케이지의 각 면에 대해 반복적으로 수행되며(또는 신체 케이지의 다양한 면에 대해 병렬로 수행됨), 신체 케이지의 면은 다각형의 정점을 보이거나 보이지 않게 설정하는 것과 같은 방식으로 보이거나 숨겨진(보이지 않는) 것으로 표시된다.
일부 실시예에서, 신체 케이지의 어느 면이 신체 메시의 특정 면과 관련되는지에 대한 결정이 또한 블록(1606)에서 이루어질 수도 있다. 이 결정은 도 13 및 14와 관련하여 위에 도시되고 설명된 것과 유사/비슷하다. 다른 실시예에서는 신체 메시 면과 신체 케이지 면 사이의 관계 결정이 수행될 필요가 없다. 블록(1606) 다음에는 블록(1608)이 이어질 수 있다.
블록(1608)("아바타 신체에 첫 번째 옷을 피팅함")에서, 게임 애플리케이션(1512)은 첫 번째 옷을 아바타 몸에 피팅한다. 이러한 피팅은 변형된 첫 번째 옷으로 아바타 신체를 적어도 부분적으로 감싸는 렌더링 프로세스에 의해서 블록(1608)에서 게임 애플리케이션(1512)에 의해 수행될 수 있다. 예컨대, (첫 번째 옷의 내부 케이지의) 내부 특징 포인트 중 적어도 일부의 좌표 위치는 변형된 첫 번째 옷의 의류 메시가 아바타 본체에 렌더링될 때, 신체 케이지의 신체 특징 포인트의 좌표 위치 값을 가정한다.
도 11에 예시적으로 도시된 바와 같이, 따라서 의류 메시(1100)는 아바타 신체에 렌더링되어 보이는 것으로 표시될 수 있으며, 아바타 신체의 밑에 있는 숨겨진 표면(파선으로 표시되고 이전에 숨겨진 것으로 표시/결정된)은 렌더링되지 않는다. 또한 블록(1606) 및/또는 블록(1608)에서, 첫 번째 옷의 메시의 각 면에 대해, 첫 번째 옷의 외부 케이지의 어느 면(들)이 첫 번째 옷의 메시의 해당 면에 관련되는지에 대한 결정이 내려진다. 이 동작은 도 12 및 13과 관련하여 위에서 설명되며, 외부 케이지의 관련된 다각형의 정점을 첫 번째 옷의 메시의 대응하는 면의 데이터에 추가하는 단계를 포함할 수 있다. 블록(1608) 다음에는 블록(1610)이 이어질 수 있다.
블록(1610)("두 번째 옷의 내부 케이지의 내부 특징 포인트를 첫 번째 옷의 외부 케이지의 외부 특징 포인트에 매핑함")에서, 사용자는 라이브러리로부터 두 번째 옷을 선택한다 (또는 두 번째 옷이 자동으로 선택될 수 있음). 블록(1604)의 첫 번째 옷과 마찬가지로, 블록(1610)의 두 번째 옷은 내부 케이지와 외부 케이지를 갖는다. 게임 어플리케이션(1512)은 첫 번째 옷이 피팅된 아바타 신체에 따르는 두 번째 옷을 변형하기 위하여, 아바타 신체에 이미 피팅된 변형된 첫 번째 옷의 외부 케이지의 외부 특징 포인트에 (두 번째 옷의 내부 케이지의) 내부 특징 포인트를 매핑한다. 블록(1610) 다음에는 블록(1612)이 이어질 수 있다.
블록(1612)("제2 HSR 수행함: 가시성 및 관련 면을 결정함")에서, 반복적인 HSR 관련 작업의 두 번째 세트가 수행될 수 있다. 다시 도 10의 가시성 기법을 사용하여, HSR 방법은 외부 케이지의 면(첫 번째 옷의 메시의 면에 대응하거나 혹은 프록시 역할을 하는)이 첫 번째 메시의 하나 이상의 면에 의해 숨겨지는지 여부를 결정할 수 있다. 이러한 결정은 첫 번째 옷의 외부 케이지의 각 면에 대해 되풀이/반복적으로 수행되며, 메시 첫 번째 옷의 면은 보이거나 또는 숨겨진(보이지 않음) 것으로 표시된다.
도 14와 관련하여 위에서 설명한 바와 같이, 첫 번째 의류의 메시의 특정 면의 보이거나 보이지 않는 것으로의 표시/식별은 첫 번째 옷의 외부 케이지의 관련 면에 기초한다. 이들 관련 면 중 적어도 하나가 두 번째(다음) 옷을 통해 보이는 것으로 결정되면, 첫 번째 옷의 메시의 특정 면이 보이는 것으로 표시/식별된다. 블록(1612) 다음에는 블록(1614)이 이어질 수 있다.
블록(1614)("아바타 신체에 두 번째 옷을 피팅함")에서, 게임 애플리케이션(1512)은 (첫 번째 옷이 이미 피팅된) 아바타 신체에 두 번째 옷을 피팅한다. 이러한 피팅은 아바타 신체(첫 번째 옷이 이미 피팅됨)를 변형된 두 번째 옷으로 적어도 부분적으로 감싸는 렌더링 프로세스에 의해서, 블록(1614)에서 게임 애플리케이션(1512)에 의해 수행될 수 있다. 예컨대, (두 번째 옷의 내부 케이지의) 내부 특징 포인트 중 적어도 일부의 좌표 위치는 변형된 두 번째 옷의 의류 메시가 첫 번째 옷이 피팅된 아바타 신체 위에 렌더링될 때, 변형된 첫 번째 옷의 외부 케이지의 외부 특징 포인트의 좌표 위치 값을 가정한다.
따라서 두 번째 옷의 의류 메시는 아바타 신체에 렌더링되고(첫 번째 옷이 그 위에 피팅되어 있음) 보이는 것으로 표시될 수 있으며, 첫 번째 옷 및/또는 아바타의 밑에 있는 숨겨진 표면은 렌더링되지 않는다. 또한, 블록(1612) 및/또는 블록(1614)에서, 두 번째 옷의 메시의 각 면에 대해, 두 번째 옷의 외부 케이지의 어느 면(들)이 두 번째 옷의 메시 면의 해당 면과 관련되는지에 대해 결정이 내려진다. 도 12 및 13과 관련하여 전술한 바와 같이, (두 번째 옷의) 외부 케이지의 이들 관련 면은 두 번째 옷의 메시의 대응하는 면이 세 번째 옷이 두 번째 옷 위에 레이어링될 때 보이는지 여부를 결정하는 데 사용될 수 있다. .
블록(1614) 다음에는 블록(1216)이 이어질 수 있다.
블록(1616)("반복")에서, 은면의 렌더링을 배제하기 위해 필요할 때 가시성 결정 및 기타 HSR 관련 작업이 수행되면서, 기존 레이어(들) 위에 추가적인 옷(들)을 레이어링하고 변형하기 위하여, 전술한 것과 유사한 동작이 수행될 수 있다. 예컨대, 블록(1602-1608)과 관련하여 전술한 바와 같은 제1 반복에서, 첫 번째 옷 아이템이 신체 케이지 위에 (HSR과) 피팅된다. 블록(1610-1614)에서 수행될 수 있는 두 번째 반복에서, 추가 (두 번째) 의류 아이템이 신체 케이지 위에 걸쳐진 첫 번째 옷 아이템 위에 (HSR과) 피팅될 수 있다. 임의의 수의 아이템에 대해 추가 의류 아이템을 피팅하기 위해 반복이 수행될 수 있다. 일부 실시예에서(예컨대, 연속적인 피팅의 의류 아이템이 해당 단계에서 외부 케이지의 상이한, 오버래핑되지 않는 부분과 관련될 때), 피팅은 병렬로 수행될 수 있다(예컨대, 모자의 피팅은 신발의 피팅과 동시에 수행될 수 있고, 셔츠의 피팅은 바지의 피팅과 동시에 수행될 수 있고, 양말의 피팅은 장갑의 피팅과 동시에 수행될 수 있는 것 등).
성능과 결과를 향상시키기 위해 위에 설명된 HSR 기법에 다양한 개선이 이루어질 수 있다. 예컨대, 도 17-19는 일부 구현에 따른 HSR에 대한 가시성 결정 개선에 관한 다이어그램이다.
맥락상 먼저 도 17을 참조하면, 다이어그램(1700)은 케이지의 다각형(예컨대, 삼각형)의 면(1702)의 정면도를 도시한다. 위의 도 10에 도시된 것과 유사한 방식으로, 복수의 광선(1704)이 면(1702) 상의 샘플 포인트(1706)에서 조사된다. 다이어그램(측면도)(1708)은 대부분의/많은 광선(1704)이 의류 메시(1710)에 부딪치거나/교차하는 것을 도시한다. 그러나 하나의 광선(1712)이 메시(1710)를 빗나가고, 그럼으로써 면(1702)이 위치(1714)에서 뷰어에게 보이게 된다. 따라서 다이어그램(1700 및 1708)으로부터, 면(1700)의 가시성은 뷰어의 위치와 조사되는 광선의 기원과 방향 중 하나 또는 둘 모두에 따라 달라질 수 있다는 결론을 내릴 수 있다.
다음으로 도 18을 참조하면, 다이어그램(1800)은 케이지(1802)와 케이지(1802)의 일부(전부는 아님) 부분 위에 놓인 의류 메시(1804)를 도시한다. 도 18에 도시된 바와 같이, 광선(1806)(케이지(1802)의 면(1810) 상에 있는 포인트(1808)에서 포인트(1812)를 향해 조사됨)은 의류 메시(1804)를 빗나갈 수 있지만 케이지(1802)의 다른 면(들)에 부딪칠 수 있다.
통상적으로 도 10의 가시성 결정 기법으로, 광선(1806)이 의류 메시(1804)를 빗나갔다는 사실은 면(1810)이 보이는 것으로 간주되게 할 수 있다. 그러나 HSR 기법의 일부 실시예에서 가시성 결정은 케이지(1802)의 다른 부분과 부딪치거나/교차하는 광선(1806)을 고려한다. 따라서, 면(1810)은 보이는 것이 아니라 보이지 않는/숨겨진 것으로 간주될 수 있다. 도 18에 도시된 상황. 예컨대, 아바타의 한 신체 부위가 다른 신체 부위에 의해 부분적으로 커버되고, 커버된 신체 부위 근처에 틈이 있는 옷이 겹쳐져 있는 경우, 적용될 수 있다.
도 19는 광선이 조사되는 방향을 인코딩하여 가시성 계산을 향상시키는 것과 관련이 있다. 상황에 따라 위에 설명된 가시성 결정 기법에는 밑에 있는 케이지의 면에서 광선을 조사하고 이러한 광선이 위에 놓인 옷의 메시와 교차/부딪치는지 감지하는 단계를 포함한다. 광선은 임의의 방향에서 조사될 수 있으며, 이러한 광선 중 하나라도 위에 있는 옷의 메시를 빗나가면 밑에 있는 케이지의 면이 보이는 것으로 표시된다.
그러나, 일례로, 아바타 신체 상의 영역(예컨대, 신체 메시의 복수의 면 중 특정 면)이 바지만 입으면 보이거나 또는 셔츠만 입으면 보이지만, 바지와 셔츠를 모두 착용하면 신체 메시의 면이 숨겨지게 되는 상황이 있을 수 있다. 예컨대 아바타 신체가 바지만 입고 있는 경우 위에서 아래를 내려다보면 신체 메시의 면이 보인다; 셔츠만 입었을 경우 밑에서 올려다보면 신체 메시 면이 보인다; 바지와 셔츠를 모두 착용하면 따라서 신체 메시의 면이 보이는 것으로 표시될 수 있으며 이는 정확하지 않을 것이다. 따라서 HSR 기법의 가시성 결정에 대한 향상된 기능은 신체 메시의 면(및/또는 기본 의류 메시의 면)이 바지와 셔츠(또는 다른 옷)를 동시에 착용하면 숨겨진 것으로 결정되는 방식으로 바지와 셔츠에 대한 가시성 방향/결정을 결합한다.
이러한 향상은 도 19에 도시된 예시적인 구(1900)에 기초하여 가시성 계산의 광선 방향을 인코딩함으로써 수행될 수 있다. 예시적인 구(1900)는 남북 축을 중심으로 10개의 슬라이스로 세분되었으며, 개별적인 특정 슬라이스(1902)가 도 19에 강조 표시되어 있다. 각 슬라이스는 그 높이를 따라 10개의 영역(1904)으로 다시 분할되었다.
구(1900)는 가능한 모든 광선 방향을 나타내고, 각각의 슬라이스는 슬라이스를 구성하는 이면각(dihedral angle) 내에 속하는 미리 결정된 범위의 방향을 커버한다. 예컨대, 슬라이스(1902)는 10개의 영역(1904) 각각에 대응하는 10개의 서로 다른 광선 방향을 나타낼 수 있다.
각 슬라이스는 단일 비트 값(숨겨진 경우 값 0, 표시되는 경우 값 1)을 사용하여 인코딩된다. 따라서, 슬라이스(1902)에 대해, 영역(1904)의 광선 방향에 대응하는 0과 1의 문자열이 있을 수 있다. 따라서, 임의의 방향으로 광선을 조사하는 대신(도 10에 도시된 바와 같이) 광선이 각 슬라이스에 대해 조사될 수 있으며 가시성은 각 슬라이스에 대해 표시된다. 따라서 내부 케이지의 메시는 일부 방향에서는 보이는 것으로 표시되고 다른 방향에서는 숨겨진 것으로 표시될 수 있으며, 이 모든 것은 각 슬라이스에 대해 1과 0의 배열로 인코딩될 수 있다.
바지만 입은 아바타의 앞선 예시에서, 슬라이스(1902)에 대한 배열은 적어도 하나의 인코딩 방향 값 1(가시)을 갖기 때문에 신체 영역/면이 보이는 것으로 표시될 수 있다. 유사하게, 아바타가 셔츠만 입는 경우, 슬라이스(1902)에 대한 배열도 1(가시)의 적어도 하나의 인코딩 방향 값을 갖기 때문에 신체 영역/면이 보이는 것으로 표시될 수 있다. 그런 다음, 다층 배열(예컨대, 바지와 셔츠를 모두 착용)에 대한 가시성을 확인할 때 두 슬라이스의 인코딩된 비트열에 대해 논리적 AND 연산이 수행될 수 있다. AND 연산 결과 값이 0이면 해당 신체 영역/면이 숨겨진 것으로 표시된다. 그렇지 않으면 AND 연산 결과 값이 1이 되므로 해당 신체/메시 면이 보이는 것으로 표시된다.
다양한 실시예에 따르면, 도 19의 기법의 추가적인 최적화가 수행될 수 있다. 예컨대, 가시적일 수 있는 슬라이스에 대해서만 광선을 조사하여 가시성 계산을 최적화할 수 있으므로 계산 비용을 줄일 수 있다. 이는 먼저 면의 법선과 슬라이스 방향(예컨대 그 중간점으로부터) 사이의 내적(dot product)을 수행하고 면 뒤에 있는 슬라이스(예컨대 음의 내적 값)를 무시함으로써 수행될 수 있다.
HSR 기법의 개선의 또 다른 예시로서, 다음으로 도 20을 참조한다. 도 20은 HSR을 수행할 때 직면할 수 있는 문제의 예시를 도시한다. 특히, HSR이 수행될 때 아바타(2000-2004)의 신체 일부 면이나 옷이 제거되어서는 안 됨에도 제거될 수 있어 이상하거나 부자연스러운 결과를 남길 수 있다. 도 20에서, 아바타 귀의 일부는 제거된 반면, 2006-2012로 도시된 것처럼 같은 귀의 다른 부분은 보이도록 렌더링될 수도(또는 그렇지 않을 수도) 있다.
도 20에 도시된 문제를 해결하기 위해, HSR 기술의 실시예는 함께 숨은(또는 보이는) 면이 하나의 그룹으로 배치되는 클러스터링 작업을 수행할 수 있다. 클러스터링 알고리즘의 예는 다음과 같다.
1. 임계값 계산:
a. 외부 케이지 상의 각 면에 대해(calculateCloseToCageThreshold)
i. 외부 케이지의 면과 렌더 메시 상의 가장 가까운 면 사이의 거리를 계산한다.
b. 거리의 중간값을 임계값으로 획득한다.
2. 클러스터가 필요한 렌더 메시의 모든 면을 찾는다(meshFacesOutsideOfOuterCage).
a. 알고리즘은 렌더 메시 상의 면이 외부 케이지의 외부에 있는 경우에만 클러스터링을 원한다.
b. 렌더 메시 상의 각 면에 대해:
i. 가장 가까운 외부 케이지까지의 면의 거리가 임계값보다 큰 경우
ii. AND 광선이 면에서 조사되면 적어도 하나의 광선이 외부 케이지에 부딪치지 않는다.
iii. 그런 다음 면이 아마도 외부 케이지의 외부에 있을 수 있으므로 면은 클러스터링될 필요가 있다.
3. 위에서 외부 케이지의 외부에 있는 것으로 결정된 렌더 메시의 면을 그룹화한다(generateClusterForFacesOnMeshOutsideOfOuterCage).
a. 클러스터링이 필요한 렌더 메시 상의 각 면에 대해:
i. 렌더 메시 상의 면의 인접한 면을 찾는다.
ii. 인접한 면이 클러스터링이 필요한 경우 면을 하나의 그룹에 추가한다.
4. 렌더 메시의 맵을 관련된 외부 케이지로 업데이트한다.
a. 렌더 면의 각 클러스터에 대해:
i. 클러스터의 각 렌더링 면에 대해:
1. 모든 관련된 외부 케이지 면을 찾는다.
2. 이들 외부 케이지 면을 관련된 외부 케이지 면의 클러스터에 추가한다.
3. 관련 외부 케이지 면의 클러스터에 있는 모든 면의 관련된 외부 케이지 면을 렌더 면 클러스터의 클러스터에 있는 각 렌더 면으로 업데이트한다.
다음으로, HSR이 수행되면 클러스터의 모든 면은 렌더 메시 상의 하나의 "큰 면"으로 처리되고 외부 케이지 상에서 동일한 관련 면을 공유한다. 따라서 렌더 메시의 클러스터링된 면은 함께 표시되거나 숨겨진다.
일부 시나리오에서는 클러스터링을 수행할 때 대칭 문제가 발생할 수 있다. 예컨대 아바타에는 두 개의 귀와 머리카락이 있을 수 있다. 머리카락이 한쪽 귀를 덮고 있지만 다른 쪽 귀는 덮지 않는 경우 아바타는 한쪽 귀를 덮은 상태(숨김/제거)로 렌더링될 수 있다. 예컨대, 도 20의 아바타(2004)를 참조한다. .
또 다른 예로서, 클러스터링은 면이 서로 연결되어 있는지 또는 연결되어 있지 않은지를 기반으로 할 수 있다. 그러나 일부 아바타의 문제점은 특정 부분이 연결되어 있는 것처럼 보이지만 연결되지 않거나, 일부 부분이 연결되도록 의도되지 않았으나 여전히 숨겨지거나 함께 표시되는 경우가 있다. HSR의 결과로 렌더링된 아바타에는 "부유하는" 연결되지 않은 부분이 있거나 이상하게/부자연스럽게 부착된 부분이 있을 수 있다.
또한 예시로서, 일부 면은 외부 케이지에 너무 가까울 수 있으며, 이로 인해 클러스터링이 발생하여 실제로는 해당 면이 숨겨져야 할 때, 이들 면의 과도한 침투(penetration)/가시성을 초래할 수 있다; 임계값(위의 클러스터링 알고리즘의 1단계 참조)이 너무 크거나 너무 작게 설정되거나 계산될 수 있다; 일부 면은 완전히 커버될 수 있지만 이러한 표면/부분은 아바타에게 특별할 수 있으므로 사용자는 이러한 표면을 숨기고 싶어 하지 않는다; 등.
상기 및 기타 클러스터링 문제는 사용자(예컨대, 개발자, 생성자 등)가 함께 클러스터링할 면을 선택할 수 있도록 사용자 인터페이스(UI)에 도구를 제공함으로써 일부 실시예에서 해결된다. 예컨대, 사용자는: 어느 면이 HSR에 항상 표시되어야 하는지를 정의할 수 있다: 정점을 사용하여 식별하는 것에 대한 대안적으로 색상으로 페인팅하거나 아니면 숨기거나 표시할 면을 식별할 수 있다; 어느 면이 항상 가시적이거나 또는 가시적이지 않은지를 정의하는 메시를 임포트할 수 있다; 등.
일부 실시예에서 제공되는 또 다른 개선 사항과 관련하여, HSR은 케이지의 숨겨진 영역(면)을 수축하여 수행될 수 있다. 맥락 상 및 위에서 설명한 바와 같이 HSR은 외부 레이어로 덮인 삼각형(면)과 같은 대부분의 다각형을 제거한다. 그러나 일부 부분은 제거되지 않을 수 있으며, 따라서 이들 부분은 침투, 잘림 문제, 부적합(non-fitting) 변형 등으로 나타나는 바람직하지 않은 블리딩(bleeding)을 일으킬 수 있다.
전술한 문제에 대한 해결책은 케이지의 숨겨진 영역/면을 수축시켜 이러한 영역 아래에 있는 메시의 면/삼각형이 블리딩되지 않도록 하는 것이다. 이상적으로, 숨겨진 케이지 면 아래의 삼각형은 HSR에 의해 제거되지만 일부 삼각형은 제거되지 않을 수 있다(예컨대, 의류의 외부 레이어의 메시 및 밑에 있는 케이지의 면 사이의 좁은 간격을 통해 탈출하는 광선의 결과로 이러한 삼각형이 보이는 것으로 결정되기 때문에). 밑에 있는 케이지를 수축시키면 케이지 아래의 대응하는 메시도 또한 수축되어 블리딩 문제가 줄어들게 된다.
의류 레이어가 하나만 있는 경우 수축은 신체의 밑에 있는 면에만 적용될 수 있다. 2겹 이상의 의류가 있는 경우, 맨 위 레이어를 제외하고 각 레이어의 면이 수축될 수 있다. 이러한 수축은 블리딩이 제거되거나 아니면 허용 가능한 수준으로 감소될 때까지 상단(가장 바깥쪽) 레이어에서 하단(가장 안쪽) 레이어로 진행하면서 수행될 수 있다.
수축을 수행하기 위해, 제1 동작은 수축될 케이지의 삼각형(면)을 결정하는 단계를 포함할 수 있다. 이러한 결정을 수행하기 위해서는, 알려진 삼각형이 있을 수도 있고, 또는 삼각형의 적어도 하나의 정점을 알고 있을 수도 있다. 예컨대 삼각형을 알면 삼각형의 정점도 알 수 있다. 그런 다음, 알려진 삼각형에 인접한 삼각형은 알려진 정점의 적어도 부분 집합을 공유하는 삼각형으로 결정될 수 있다. 이 프로세스는 수축될 적절한 삼각형이 모두 식별될 때까지 한 정점/삼각형에서 다른 정점/삼각형으로 반복될 수 있다.
삼각형이 식별된 후, 임의의 적절한 방법(위에 설명된 프로세스 포함)을 사용하여 삼각형의 수축이 수행될 수 있다. 다양한 실시예에 따르면, 엄브렐라-라플라시안(umbrella-Laplacian) 수축 기법 및/또는 노멀(normal) 수축 기법이 사용될 수 있다.
노멀 수축 기법은 정점을 음의 법선 방향을 따라 이동시킨다. 따라서 단일 평면에 있는 개별 삼각형, 공통 평면에 있는 두 개 이상의 삼각형 또는 케이지의 날카롭지 않은(non-sharp) 특징 정점에 대해 노멀 수축이 사용될 수 있다. 그러나 노멀 수축 기법은 일부 날카로운 특징 정점에서는 제대로 작동하지 않아 블리딩이 발생할 수 있다.
블리딩 가능성을 줄이기 위해 엄브렐라-라플라시안 수축 기법을 사용하여 날카로운 특징을 부드럽게 할 수 있다. 도 21은 숨겨진 케이지 수축 기법, 특히 엄브렐라-라플라시안 수축 기법의 예를 도시한다.
다이어그램(2100)은 꼭대기가 날카로운 정점(V)에서 함께 결합된 복수의 삼각형을 도시한다. 엄브렐라 연산자는 정점(V)에서 포인트(C)까지의 벡터(2102)를 계산하는 데 사용된다. 포인트(C)는 이웃 정점 0, 1, 2, 3, 4의 평균일 수 있다.
정점(V)이 엄브렐라 연산자에 의해 정점(V')(다이어그램(2104)에 도시된 바와 같이)까지 아래로 이동되면, 정점(V)에 의해 제공되는 날카로운 특징이 감소된다. 그런 다음 수축된 케이지/메시를 얻기 위해 다른 모든 정점 0, 1, 2, 3 및 4에 대해 유사한 작업이 수행될 수 있다. 엄브렐라-라플라시안 수축 기법을 사용하면 또한 부드러운 케이지/메시를 생성할 수도 있다.
일부 실시예에 따르면, 렌더링에서 약간의 블리딩이 발생한 것으로 나타나면 케이지 면의 수축이 수행될 수 있다. 다른 실시예에서, 수축은 렌더링 전에 수행될 수 있으며, 이후 수축을 조정함으로써 감소될 수 있는 블리딩이나 다른 바람직하지 않은 시각적 효과가 있는 경우 수축에 대한 조정이 이 렌더링 이후에 수행될 수 있다.
도 22는 여기에서 설명된 하나 이상의 특징을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 장치(2200)의 블록도이다. 도 15의 클라이언트 장치(1510) 및/또는 게이밍 플랫폼(1502)은 도 22의 컴퓨팅 장치(2200)의 형태로 제공될 수 있다. 일 예시에서, 컴퓨팅 장치(2200)는 여기에서 설명된 방법을 수행하는 데 사용될 수 있다. 컴퓨팅 장치(2200)는 임의의 적절한 컴퓨터 시스템, 서버, 또는 다른 전자 또는 하드웨어 장치일 수 있다. 예컨대, 컴퓨팅 장치(2200)는 메인프레임 컴퓨터, 데스크톱 컴퓨터, 워크스테이션, 휴대용 컴퓨터 또는 전자 장치(휴대용 장치, 모바일 장치, 휴대폰, 스마트 폰, 태블릿 컴퓨터, 텔레비전, TV 셋톱 박스, PDA(personal digital assistant), 미디어 플레이어, 게임 장치, 웨어러블 장치 등)일 수 있다. 일부 실시예에서, 컴퓨팅 장치(2200)는 프로세서(2202), 메모리(2204), 입력/출력(I/O) 인터페이스(2206) 및 오디오/비디오 입력/출력 장치(2214)를 포함한다.
프로세서(2202)는 프로그램 코드를 실행하고 컴퓨팅 장치(2200)의 기본 동작을 제어하기 위한 하나 이상의 프로세서 및/또는 처리 회로일 수 있다. "프로세서"는 데이터, 신호 또는 기타 정보를 처리하는 임의의 적절한 하드웨어 및/또는 소프트웨어 시스템, 메커니즘 또는 컴포넌트를 포함한다. 프로세서는 범용 중앙 처리 장치(CPU), 다중 처리 장치, 기능을 달성하기 위한 전용 회로 또는 기타 시스템이 있는 시스템을 포함할 수 있다. 처리는 특정 지리적 위치로 제한되거나 일시적인 제한을 가질 필요가 없다. 예컨대, 프로세서는 "실시간", "오프라인", "배치 모드(batch mode)", 등의 기능을 수행할 수 있다. 처리의 일부는 상이한 (또는 동일한) 처리 시스템에 의해 다른 시간과 다른 위치에서 수행될 수 있다. 컴퓨터는 메모리와 통신하는 임의의 프로세서일 수 있다.
메모리(2204)는 프로세서(2202)에 의한 액세스를 위해 컴퓨팅 장치(2200)에 제공될 수 있고, 프로세서에 의한 실행을 위한 명령어를 저장하는 데 적합하고 프로세서(2202)와 분리되어 위치 및/또는 통합되는, 임의의 적절한 프로세서 판독가능 저장 매체, 예컨대 RAM(random access memory), ROM(read-only memory), EEPROM(electrical erasable read-only memory), 플래시 메모리 등일 수 있다. 메모리(2204)는 운영 체제(2208), 하나 이상의 애플리케이션(2210) 및 그 관련 데이터(2212)를 포함하는, 프로세서(2202)에 의해 컴퓨팅 장치(2200) 상에서 실행 가능한 소프트웨어를 저장할 수 있다. 애플리케이션(2210)은 게임 애플리케이션(1512/1520) 또는 게임 엔진(1504)을 구현하는 데 사용될 수 있는 도구의 예시이다. 일부 실시예에서, 애플리케이션(2210)은 프로세서(2202)에 의한 실행에 응답하여, 프로세서(2202)가 아바타 신체 위에 레이어링된 의류를 변형/피팅하고, HSR-관련 작업을 수행하는 것과 관련하여 여기에서 설명된 동작을 수행하거나 수행을 제어할 수 있게 하는 명령어를 포함할 수 있다.
메모리(2204)에서 소프트웨어 중 임의의 것은 대안적으로 임의의 다른 적절한 저장 위치 또는 컴퓨터 판독가능 매체에 저장될 수 있다. 또한, 메모리(2204)(및/또는 다른 연결된 저장 장치(들))는 여기에서 설명된 특징에서 사용되는 명령어 및 데이터를 저장할 수 있다. 메모리(2204) 및 임의의 다른 유형의 스토리지(자기 디스크, 광 디스크, 자기 테이프 또는 기타 유형의 매체)는 "스토리지” 또는 "저장 장치"로 간주될 수 있다.
I/O 인터페이스(2206)는 컴퓨팅 장치(2200)가 다른 시스템 및 장치와 인터페이스할 수 있도록 하는 기능을 제공할 수 있다. 예컨대, 네트워크 통신 장치, 저장 장치 및 입력/출력 장치는 I/O 인터페이스(2206)를 통해 컴퓨팅 장치(2200)와 통신할 수 있다. 일부 실시예에서, I/O 인터페이스(2206)는 적어도 하나의 오디오/비디오 입력/출력 장치(2214)로 집합적으로 도시되는, 입력 장치(키보드, 포인팅 장치, 터치 스크린, 마이크, 카메라, 스캐너 등) 및/또는 출력 장치(디스플레이 장치, 스피커 장치, 프린터, 모터 등)를 포함하는 인터페이스 장치에 연결될 수 있다.
오디오/비디오 입/출력 장치(2214)는 오디오 메시지를 입력으로 수신하는 데 사용될 수 있는 오디오 입력 장치(예컨대, 마이크 등), 오디오 출력 장치(예컨대, 스피커, 헤드폰 등) 및/또는 전술한 레이어링된 의류를 갖는 예시적인 렌더링된 3D 아바타와 같은 그래픽적 및 시각적 출력을 제공하는 데 사용될 수 있는 디스플레이 장치를 포함할 수 있다.
설명의 편의를 위해, 도 22은 프로세서(2202), 메모리(2204), I/O 인터페이스(2206), 애플리케이션(2210) 등 각각에 대한 하나의 블록을 도시한다. 이들 블록은 하나 이상의 프로세서 또는 처리 회로, 운영 체제, 메모리, I/O 인터페이스, 애플리케이션 및/또는 소프트웨어 모듈을 나타낸다. 다른 실시예에서, 컴퓨팅 장치(2200)는 도시된 컴포넌트 전부를 갖지 않을 수 있고, 그리고/또는 여기에서 도시된 것 대신에 또는 이에 추가하여 다른 유형의 요소를 포함하는 다른 요소를 가질 수 있다.
사용자 장치는 또한 여기에서 설명된 특징을 구현 및/또는 사용할 수 있다. 예시적인 사용자 장치는 컴퓨팅 장치(2200), 예컨대 프로세서(들)(2202), 메모리(2204) 및 I/O 인터페이스(2206)와 같은 일부 유사한 컴포넌트를 포함하는 컴퓨터 장치일 수 있다. 클라이언트 장치에 적합한 운영 체제, 소프트웨어 및 애플리케이션이 메모리에 제공되고 프로세서에 의해 사용될 수 있다. 클라이언트 장치를 위한 I/O 인터페이스는 입력 및 출력 장치, 예컨대, 사운드를 포착하기 위한 마이크, 이미지 또는 비디오를 포착하기 위한 카메라, 사운드를 출력하기 위한 오디오 스피커 장치, 이미지 또는 비디오를 출력하기 위한 디스플레이 장치 또는 기타 출력 장치뿐만 아니라 네트워크 통신 장치에 연결될 수 있다. 예컨대, 오디오/비디오 입력/출력 장치(2214) 내의 디스플레이 장치는 컴퓨팅 장치(2200)에 연결(또는 포함)되어 여기에서 설명된 바와 같이 이미지 전처리 및 후처리를 디스플레이할 수 있으며, 이러한 디스플레이 장치는 임의의 적절한 디스플레이 장치, 예컨대 LCD, LED 또는 플라즈마 디스플레이 스크린, CRT, 텔레비전, 모니터, 터치 스크린, 3D 디스플레이 스크린, 프로젝터 또는 기타 시각적 디스플레이 장치를 포함할 수 있다. 일부 실시예는 오디오 출력 장치, 예컨대 음성 출력 또는 텍스트를 말하는 합성을 제공할 수 있다.
여기에서 설명된 하나 이상의 방법(예컨대, 방법(1600))은 컴퓨터에서 실행될 수 있는, 컴퓨터 프로그램 명령어 또는 코드에 의해 구현될 수 있다. 예컨대, 코드는 하나 이상의 디지털 프로세서(예컨대, 마이크로프로세서 또는 기타 처리 회로)에 의해 구현될 수 있으며, 비일시적 컴퓨터 판독가능 매체(예컨대, 저장 매체), 예컨대 반도체 또는 솔리드 스테이트 메모리, 자기 테이프, 이동식 컴퓨터 디스켓(removable computer diskette), RAM(random access memory), ROM(read-only memory), 플래시 메모리, 강성 자기 디스크(rigid magnetic disk), 광 디스크, 솔리드 스테이트 메모리 드라이브 등을 포함한 자기, 광학, 전자기 또는 반도체 저장 매체를 포함하는 컴퓨터 프로그램 제품에 저장될 수 있다. 프로그램 명령어는 서버(예컨대, 분산 시스템 및/또는 클라우드 컴퓨팅 시스템)로부터 전달된 예컨대, SaaS(software as a service)의 형태로 전자 신호에 포함되고 제공될 수 있다. 대안적으로, 하나 이상의 방법은 하드웨어(로직 게이트 등) 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 하드웨어의 예시는 프로그래밍 가능 프로세서(예컨대, FPGA(field-programmable gate array), 복합 프로그래밍 가능 논리 소자(complex programmable logic device), 범용 프로세서, 그래픽 프로세서, ASIC(application specific integrated circuit) 등)일 수 있다. 하나 이상의 방법은 시스템에서 실행되는 애플리케이션의 일부 또는 컴포넌트로서, 또는 다른 애플리케이션 및 운영 체제와 함께 실행되는 애플리케이션이 또는 소프트웨어로서 수행될 수 있다.
여기에서 설명된 하나 이상의 방법은 임의의 유형의 컴퓨팅 장치에서 실행될 수 있는 자립형 프로그램(standalone program), 웹 브라우저에서 실행되는 프로그램, 모바일 컴퓨팅 장치(예컨대, 휴대폰, 스마트 폰, 태블릿 컴퓨터, 웨어러블 장치(손목 시계, 암밴드, 장신구, 헤드웨어, 고글, 안경 등), 랩톱 컴퓨터 등)에서 실행하는 모바일 애플리케이션(“앱")에서 실행될 수 있다. 일 예시에서, 클라이언트/서버 아키텍처가 사용될 수 있고, 예컨대, (클라이언트 장치로서) 모바일 컴퓨팅 장치가 사용자 입력 데이터를 서버 장치로 전송하고 서버로부터 출력(예컨대, 디스플레이)을 위한 최종 출력 데이터를 수신한다. 다른 예시에서, 모든 계산은 모바일 컴퓨팅 장치 상의 모바일 앱(및/또는 다른 앱) 내에서 수행될 수 있다. 다른 예시에서, 계산은 모바일 컴퓨팅 장치와 하나 이상의 서버 장치 간에 분할될 수 있다.
설명이 특정 실시예와 관련하여 설명되었지만, 이러한 특정 실시예는 단지 예시적인 것이며, 제한적이지 않다. 예시에 설명된 개념은 다른 예시 및 구현에 적용될 수 있다.
본 개시에서 설명된 기능 블록, 동작, 특징, 방법, 장치 및 시스템은 당업자에게 알려진 바와 같이 시스템, 장치 및 기능 블록의 상이한 조합으로 통합되거나 분할될 수 있다는 점에 유의한다. 임의의 적절한 프로그래밍 언어 및 프로그래밍 기술이 특정 실시예의 루틴을 구현하는 데 사용될 수 있다. 다른 프로그래밍 기술이, 예컨대 절차적 또는 객체 지향적으로 이용될 수 있다. 루틴은 단일 처리 장치 또는 다중 프로세서 상에서 실행할 수 있다. 단계, 동작 또는 계산이 특정 순서로 제시될 수 있지만, 순서는 다른 특정 실시예에서 변경될 수 있다. 일부 실시예에서, 본 명세서에서 순차적으로 도시된 복수의 단계 또는 동작이 동시에 수행될 수 있다.

Claims (20)

  1. 3차원(3D) 아바타에 레이어링된 의류를 제공하기 위한 컴퓨터 구현 방법으로서,
    아바타 신체를 갖는 3D 아바타의 신체 케이지의 신체 특징 포인트를 식별하는 단계;
    상기 아바타 신체를 따르는 변형된 첫 번째 옷을 획득하기 위해, 첫 번째 옷의 내부 케이지의 내부 특징 포인트를 상기 신체 케이지의 상기 신체 특징 포인트에 매핑하는 단계;
    상기 변형된 첫 번째 옷에 의해 숨겨진 상기 신체 케이지의 면(face)을 식별하기 위해 제1 HSR(hidden surface removal) 작업을 수행하는 단계;
    상기 변형된 첫 번째 옷으로 상기 아바타 신체를 적어도 부분적으로 감싸서(enveloping), 상기 아바타 신체에 상기 변형된 첫 번째 옷을 피팅하는 단계 - 상기 신체 케이지의 상기 식별된 면에 대응하는 상기 아바타 신체의 면은 렌더링되지 않음 -;
    상기 첫 번째 옷의 외부 케이지를 따르는 변형된 두 번째 옷을 획득하기 위해, 두 번째 옷의 내부 케이지의 내부 특징 포인트를 상기 변형된 첫 번째 옷의 외부 케이지의 외부 특징 포인트에 매핑하는 단계;
    상기 변형된 두 번째 옷에 의해 숨겨진 상기 변형된 첫 번째 옷의 상기 외부 케이지의 면을 식별하기 위해 제2 HSR 작업을 수행하는 단계; 및
    상기 변형된 첫 번째 옷이 피팅된 상기 아바타 신체를 상기 변형된 두 번째 옷으로 적어도 부분적으로 감싸서, 상기 아바타 신체에 상기 변형된 두 번째 옷을 피팅하는 단계를 포함하고, 상기 외부 케이지의 식별된 면에 대응하는 상기 변형된 첫 번째 옷의 면은 렌더링되지 않는 것인, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 제2 HSR 작업을 수행하는 단계는:
    숨겨진, 상기 변형된 첫 번째 옷의 메시의 제1 면에 대해, 상기 변형된 첫 번째 옷의 상기 숨겨진 제1 면과 관련된 상기 첫 번째 옷의 상기 외부 케이지의 적어도 제1 면을 식별하는 단계; 및
    가시적인, 상기 변형된 첫 번째 옷의 상기 메시의 제2 면에 대해, 상기 변형된 첫 번째 옷의 가시적인 상기 제2 면과 관련된 상기 첫 번째 옷의 상기 외부 케이지의 적어도 제2 면을 식별하는 단계를 포함하며,
    관련된 적어도 상기 제2 면은 세 번째 옷에 대한 후속 가시성 결정에 사용되고, 관련된 적어도 상기 제1 면은 상기 세 번째 옷에 대하여 숨겨지는, 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    숨겨진 상기 변형된 첫 번째 옷의 상기 외부 케이지의 상기 면을 식별하기 위해 상기 제2 HSR 작업을 수행하는 단계는:
    상기 첫 번째 옷의 상기 외부 케이지의 면 상의 적어도 하나의 포인트로부터 복수의 광선을 조사하는 단계;
    상기 복수의 광선 중 적어도 하나의 광선이 상기 두 번째 옷을 빗나가는 경우 상기 면이 보이도록 결정하는 단계; 및
    상기 복수의 광선 모두가 상기 두 번째 옷에 부딪치면 상기 면이 숨겨지는 것으로 결정하는 단계를 포함하는, 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 제1 HSR 작업 및 상기 제2 HSR 작업을 수행하는 단계는:
    상기 첫 번째 옷과 관련하여, 구의 적어도 제1 슬라이스를 사용하여 상기 신체 케이지의 특정 면의 제1 가시성을 인코딩하는 단계;
    상기 두 번째 옷과 관련하여, 상기 구의 적어도 제2 슬라이스를 사용하여 상기 신체 케이지의 상기 특정 면의 제2 가시성을 인코딩하는 단계; 및
    상기 첫 번째 옷 및 상기 두 번째 옷 둘 다가 상기 아바타 신체에 피팅될 때 상기 신체 케이지의 상기 특정 면의 가시성을 결정하기 위해 상기 인코딩된 제1 가시성 및 상기 인코딩된 제2 가시성 사이의 논리적 연산을 수행하는 단계를 포함하는, 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 제1 HSR 작업을 수행하는 단계는, 함께 숨어 있는 상기 아바타 신체의 제1 면이 제1 그룹으로 클러스터링되고, 함께 보이는 상기 아바타 신체의 제2 면이 제2 그룹으로 클러스터링되도록 클러스터링 기법을 수행하는 단계를 포함하는, 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 첫 번째 옷의 상기 신체 케이지 및 상기 외부 케이지 중 적어도 하나를 수축시키는 단계를 더 포함하고, 상기 수축은 밑에 있는 면(underlying face)에 의한 번짐(bleed through)을 감소시키는 것인, 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 변형된 첫 번째 옷 위에 피팅되는 상기 변형된 두 번째 옷에 의해 발생하는 부기(puffiness)를 조절하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  8. 프로세서에 의한 실행에 응답하여, 상기 프로세서로 하여금 동작을 수행하거나 수행을 제어하게 하는 명령어가 저장된 비일시적 컴퓨터 판독 가능 매체로서, 상기 동작은:
    아바타 신체를 갖는 3D 아바타의 신체 케이지의 신체 특징 포인트를 식별하는 것;
    상기 아바타 신체를 따르는 변형된 첫 번째 옷을 획득하기 위해, 첫 번째 옷의 내부 케이지의 내부 특징 포인트를 상기 신체 케이지의 상기 신체 특징 포인트에 매핑하는 것;
    상기 변형된 첫 번째 옷에 의해 숨겨진 상기 신체 케이지의 면을 식별하기 위해 제1 HSR(hidden surface removal) 작업을 수행하는 것;
    상기 변형된 첫 번째 옷으로 상기 아바타 신체를 적어도 부분적으로 감싸서, 상기 아바타 신체에 상기 변형된 첫 번째 옷을 피팅하는 것 - 상기 신체 케이지의 식별된 면에 대응하는 상기 아바타 신체의 면은 렌더링되지 않음 -;
    상기 첫 번째 옷의 외부 케이지를 따르는 변형된 두 번째 옷을 획득하기 위해, 두 번째 옷의 내부 케이지의 내부 특징 포인트를 상기 변형된 첫 번째 옷의 상기 외부 케이지의 외부 특징 포인트에 매핑하는 것;
    상기 변형된 두 번째 옷에 의해 숨겨진 상기 변형된 첫 번째 옷의 상기 외부 케이지의 면을 식별하기 위해 제2 HSR 작업을 수행하는 것; 및
    상기 변형된 첫 번째 옷이 피팅된 상기 아바타 신체를 상기 변형된 두 번째 옷으로 적어도 부분적으로 감싸서, 상기 아바타 신체에 상기 변형된 두 번째 옷을 피팅하는 것을 포함하고, 상기 외부 케이지의 식별된 면에 대응하는 상기 변형된 첫 번째 옷의 면은 렌더링되지 않는 것인, 비일시적 컴퓨터 판독 가능 매체.
  9. 제8항에 있어서,
    상기 제2 HSR 작업을 수행하는 동작은:
    숨겨진, 상기 변형된 첫 번째 옷의 메시의 제1 면에 대해, 상기 변형된 첫 번째 옷의 상기 숨겨진 제1 면과 관련된 상기 첫 번째 옷의 상기 외부 케이지의 적어도 제1 면을 식별하고; 및
    가시적인, 상기 변형된 첫 번째 옷의 상기 메시의 제2 면에 대해, 상기 변형된 첫 번째 옷의 가시적인 상기 제2 면과 관련된 상기 첫 번째 옷의 상기 외부 케이지의 적어도 제2 면을 식별하는 동작을 포함하고,
    관련된 적어도 상기 제2 면은 세 번째 옷에 대한 후속 가시성 결정에 사용되고, 관련된 적어도 상기 제1 면은 상기 세 번째 옷에 대해 숨겨지는 것인, 비일시적 컴퓨터 판독 가능 매체.
  10. 제8항에 있어서,
    숨겨진 상기 변형된 첫 번째 옷의 상기 외부 케이지의 상기 면을 식별하기 위한 상기 제2 HSR 작업을 수행하는 동작은:
    상기 첫 번째 옷의 상기 외부 케이지의 면 상의 적어도 하나의 포인트로부터 복수의 광선을 조사하고;
    상기 복수의 광선 중 적어도 하나의 광선이 상기 두 번째 옷을 빗나가는 경우 상기 면이 보이도록 결정하고; 및
    상기 복수의 광선 모두가 상기 두 번째 옷에 부딪치면 상기 면이 숨겨지도록 결정하는 동작을 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  11. 제8항에 있어서,
    상기 제1 HSR 작업 및 상기 제2 HSR 작업을 수행하는 동작은:
    상기 첫 번째 옷에 대하여, 구의 적어도 제1 슬라이스를 사용하여 상기 신체 케이지의 특정 면의 제1 가시성을 인코딩하고;
    상기 두 번째 옷에 대하여, 상기 구의 적어도 제2 슬라이스를 사용하여 상기 신체 케이지의 상기 특정 면의 제2 가시성을 인코딩하고; 및
    상기 첫 번째 옷 및 상기 두 번째 옷 모두가 상기 아바타 신체에 피팅될 때 상기 신체 케이지의 상기 특정 면의 가시성을 결정하기 위해 상기 인코딩된 제1 가시성과 상기 인코딩된 제2 가시성 사이의 논리적 연산을 수행하는 동작을 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  12. 제8항에 있어서,
    상기 제1 HSR 작업을 수행하는 동작은:
    함께 숨어 있는 상기 아바타 신체의 제1 면이 제1 그룹으로 클러스터링되고, 함께 보이는 상기 아바타 신체의 제2 면이 제2 그룹으로 클러스터링되도록 클러스터링 기법을 수행하는 동작을 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  13. 제8항에 있어서,
    상기 명령어는 상기 프로세서로 하여금,
    상기 신체 케이지 및 상기 첫 번째 옷의 상기 외부 케이지 중 적어도 하나를 수축시키는 동작을 더 수행하도록 하고, 상기 수축은 밑에 있는 면에 의한 번짐을 감소시키는 것인, 비일시적 컴퓨터 판독 가능 매체.
  14. 장치로서,
    프로세서; 및
    상기 프로세서에 결합되고, 상기 프로세서에 의한 실행에 응답하여, 상기 프로세서로 하여금 동작을 수행하거나 수행을 제어하도록 하는 저장된 명령어를 갖는 비일시적 컴퓨터 판독 가능 매체를 포함하고, 상기 동작은:
    아바타 신체를 갖는 3D 아바타의 신체 케이지의 신체 특징 포인트를 식별하는 것;
    상기 아바타 신체를 따르는 변형된 첫 번째 옷을 획득하기 위해, 첫 번째 옷의 내부 케이지의 내부 특징 포인트를 상기 신체 케이지의 상기 신체 특징 포인트에 매핑하는 것;
    상기 변형된 첫 번째 옷에 의해 숨겨진 상기 신체 케이지의 면을 식별하기 위해 제1 HSR(hidden surface removal) 작업을 수행하는 것;
    상기 변형된 첫 번째 옷으로 상기 아바타 신체를 적어도 부분적으로 감싸서, 상기 아바타 신체에 상기 변형된 첫 번째 옷을 피팅하는 것 - 상기 신체 케이지의 식별된 면에 대응하는 상기 아바타 신체의 면은 렌더링되지 않음 -;
    상기 첫 번째 옷의 외부 케이지를 따르는 변형된 두 번째 옷을 획득하기 위해, 두 번째 옷의 내부 케이지의 내부 특징 포인트를 상기 변형된 첫 번째 옷의 상기 외부 케이지의 외부 특징 포인트에 매핑하는 것;
    상기 변형된 두 번째 옷에 의해 숨겨진 상기 변형된 첫 번째 옷의 상기 외부 케이지의 면을 식별하기 위해 제2 HSR 작업을 수행하는 것; 및
    상기 변형된 첫 번째 옷이 피팅된 상기 아바타 신체를 상기 변형된 두 번째 옷으로 적어도 부분적으로 감싸서, 상기 아바타 신체에 상기 변형된 두 번째 옷을 피팅하는 것을 포함하고, 상기 외부 케이지의 식별된 면에 대응하는 상기 변형된 첫 번째 옷의 면은 렌더링되지 않는 것인, 장치.
  15. 제14항에 있어서,
    상기 제2 HSR 작업을 수행하는 동작은,
    숨겨진, 상기 변형된 첫 번째 옷의 메시의 제1 면에 대해, 상기 변형된 첫 번째 옷의 상기 숨겨진 제1 면과 관련된 상기 첫 번째 옷의 상기 외부 케이지의 적어도 제1 면을 식별하고; 및
    가시적인, 상기 변형된 첫 번째 옷의 상기 메시의 제2 면에 대해, 상기 변형된 첫 번째 옷의 가시적인 상기 제2 면과 관련된 상기 첫 번째 옷의 상기 외부 케이지의 적어도 제2 면을 식별하는 동작을 포함하고,
    관련된 적어도 상기 제2 면은 세 번째 옷에 대한 후속 가시성 결정에 사용되고, 관련된 적어도 상기 제1 면은 상기 세 번째 옷에 대해 숨겨지는 것인, 장치.
  16. 제14항에 있어서,
    숨겨진 상기 변형된 첫 번째 옷의 상기 외부 케이지의 상기 면을 식별하기 위한 상기 제2 HSR 작업을 수행하는 동작은:
    상기 첫 번째 옷의 상기 외부 케이지의 면 상의 적어도 하나의 포인트로부터 복수의 광선을 조사하고;
    상기 복수의 광선 중 적어도 하나의 광선이 상기 두 번째 옷을 빗나가는 경우 상기 면이 보이도록 결정하고; 및
    상기 복수의 광선 모두가 상기 두 번째 옷에 부딪치면 상기 면이 숨겨지도록 결정하는 동작을 포함하는, 장치.
  17. 제14항에 있어서,
    상기 제1 HSR 작업 및 상기 제2 HSR 작업을 수행하는 동작은:
    상기 첫 번째 옷에 대하여, 구의 적어도 제1 슬라이스를 사용하여 상기 신체 케이지의 특정 면의 제1 가시성을 인코딩하고;
    상기 두 번째 옷에 대하여, 상기 구의 적어도 제2 슬라이스를 사용하여 상기 신체 케이지의 상기 특정 면의 제2 가시성을 인코딩하고; 및
    상기 첫 번째 옷 및 상기 두 번째 옷 모두가 상기 아바타 신체에 피팅될 때 상기 신체 케이지의 상기 특정 면의 가시성을 결정하기 위해 상기 인코딩된 제1 가시성과 상기 인코딩된 제2 가시성 사이의 논리적 연산을 수행하는 동작을 포함하는, 장치.
  18. 제14항에 있어서,
    상기 제1 HSR 작업을 수행하는 동작은:
    함께 숨어 있는 상기 아바타 신체의 제1 면이 제1 그룹으로 클러스터링되고, 함께 보이는 상기 아바타 신체의 제2 면이 제2 그룹으로 클러스터링되도록 클러스터링 기법을 수행하는 동작을 포함하는, 장치.
  19. 제14항에 있어서,
    상기 명령어는 상기 프로세서로 하여금,
    상기 신체 케이지 및 상기 첫 번째 옷의 상기 외부 케이지 중 적어도 하나를 수축시키는 동작을 더 수행하도록 하고, 상기 수축은 밑에 있는 면에 의한 번짐을 감소시키는 것인, 장치.
  20. 제14항에 있어서,
    상기 명령어는 상기 프로세서로 하여금,
    상기 변형된 첫 번째 옷 위에 피팅되는 상기 변형된 두 번째 옷에 의해 발생하는 부기를 조절하는 동작을 더 수행하도록 하는, 장치.
KR1020247009361A 2021-10-14 2022-10-13 아바타 신체를 위한 레이어링된 의류에 대한 은면 제거 KR20240051993A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163255489P 2021-10-14 2021-10-14
US63/255,489 2021-10-14
US202263404925P 2022-09-08 2022-09-08
US63/404,925 2022-09-08
PCT/US2022/046523 WO2023064440A1 (en) 2021-10-14 2022-10-13 Hidden surface removal for layered clothing for an avatar body

Publications (1)

Publication Number Publication Date
KR20240051993A true KR20240051993A (ko) 2024-04-22

Family

ID=85981817

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247009361A KR20240051993A (ko) 2021-10-14 2022-10-13 아바타 신체를 위한 레이어링된 의류에 대한 은면 제거

Country Status (3)

Country Link
US (1) US20230124297A1 (ko)
KR (1) KR20240051993A (ko)
WO (1) WO2023064440A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10872322B2 (en) * 2008-03-21 2020-12-22 Dressbot, Inc. System and method for collaborative shopping, business and entertainment
US20110279475A1 (en) * 2008-12-24 2011-11-17 Sony Computer Entertainment Inc. Image processing device and image processing method
EP3579196A1 (en) * 2018-06-05 2019-12-11 Cristian Sminchisescu Human clothing transfer method, system and device
RU2019125602A (ru) * 2019-08-13 2021-02-15 Общество С Ограниченной Ответственностью "Тексел" Комплексная система и способ для дистанционного выбора одежды

Also Published As

Publication number Publication date
US20230124297A1 (en) 2023-04-20
WO2023064440A1 (en) 2023-04-20

Similar Documents

Publication Publication Date Title
US20220044490A1 (en) Virtual reality presentation of layers of clothing on avatars
US20140078144A1 (en) Systems and methods for avatar creation
KR102623730B1 (ko) 허위 가상 오브젝트의 검출
US11238667B2 (en) Modification of animated characters
US20100231590A1 (en) Creating and modifying 3d object textures
US20210375067A1 (en) Virtual reality presentation of clothing fitted on avatars
US11645805B2 (en) Animated faces using texture manipulation
US20230298297A1 (en) Layered clothing that conforms to an underlying body and/or clothing layer
KR20240051993A (ko) 아바타 신체를 위한 레이어링된 의류에 대한 은면 제거
CN118119979A (zh) 用于化身身体的分层服装的隐藏表面移除
US20240086050A1 (en) Computer-assisted graphical development tools
CN115719305A (zh) 图像溶解处理方法、装置、存储介质及电子装置
CN114269442A (zh) 电子游戏中摄像机视图的调整方法