KR102437374B1 - Method and device for modeling an object - Google Patents

Method and device for modeling an object Download PDF

Info

Publication number
KR102437374B1
KR102437374B1 KR1020150155935A KR20150155935A KR102437374B1 KR 102437374 B1 KR102437374 B1 KR 102437374B1 KR 1020150155935 A KR1020150155935 A KR 1020150155935A KR 20150155935 A KR20150155935 A KR 20150155935A KR 102437374 B1 KR102437374 B1 KR 102437374B1
Authority
KR
South Korea
Prior art keywords
state
particles
virtual space
particle
modeling
Prior art date
Application number
KR1020150155935A
Other languages
Korean (ko)
Other versions
KR20170039545A (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 삼성전자주식회사
Priority to JP2016043356A priority Critical patent/JP2017068817A/en
Priority to US15/241,395 priority patent/US10755004B2/en
Priority to CN201610829397.4A priority patent/CN106560818B/en
Priority to EP16191878.4A priority patent/EP3151200B1/en
Publication of KR20170039545A publication Critical patent/KR20170039545A/en
Application granted granted Critical
Publication of KR102437374B1 publication Critical patent/KR102437374B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/24Fluid dynamics
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T90/00Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation

Landscapes

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

Abstract

객체를 모델링하는 방법 및 장치가 제공된다. 일 실시예에 따르면 객체를 모델링하는 장치는 화면에 시각화되지 않는 여분 상태의 입자의 개수를 유동적으로 조절할 수 있고, 여분 상태의 입자를 초기화하여 객체를 표현하기 위해 사용할 수 있다.A method and apparatus for modeling an object are provided. According to an embodiment, the apparatus for modeling an object may flexibly control the number of particles in an extra state that are not visualized on a screen, and may initialize the particles in an extra state and use it to express the object.

Figure R1020150155935
Figure R1020150155935

Description

객체를 모델링하는 방법 및 장치{METHOD AND DEVICE FOR MODELING AN OBJECT}METHOD AND DEVICE FOR MODELING AN OBJECT

이하, 객체를 모델링하는 방법 및 장치가 제공된다.Hereinafter, a method and apparatus for modeling an object are provided.

컴퓨터 그래픽스(CG, Computer Graphics) 분야, 특히 시각 효과(VFX, Visual Effects) 분야의 유체 시뮬레이션과 관련하여, 유체의 유동을 수치적으로 풀어내려는 연구가 계속 진행되고 있다. 예를 들어, 유체를 매우 작은 입자들(particles)의 합으로 보고, 각각의 입자들이 서로 어떻게 상호 작용하면서 움직이는지를 나타냄으로써, 유체를 보다 간단한 베르누이 방정식(Bernoulli's principle)으로 나타낼 수 있다.In relation to fluid simulation in the field of computer graphics (CG), particularly in the field of visual effects (VFX), research to numerically solve the flow of fluid is in progress. For example, by looking at a fluid as a sum of very small particles and showing how each particle interacts with each other to move, the fluid can be represented by a simpler Bernoulli's principle.

일 실시예에 따른 객체를 모델링하는 방법은 객체(object)를 형성하는 복수의 입자들(particles)에 대해 각각의 상태(state)와 상태 전환 확률(state transition probability)을 정의하는 단계; 상기 복수의 입자들 중 제1 상태로 정의된 입자를 객체의 제2 상태로 변경하는 단계; 및 상기 복수의 입자들 중 제2 상태로 정의된 입자에 움직임 모델(movement model)을 적용하고, 상기 상태 전환 확률에 기초하여 상기 제1 상태로 변경하는 단계를 포함할 수 있다.A method of modeling an object according to an embodiment includes defining each state and a state transition probability for a plurality of particles forming an object; changing a particle defined as a first state among the plurality of particles to a second state of the object; and applying a movement model to a particle defined as a second state among the plurality of particles, and changing to the first state based on the state transition probability.

객체를 모델링하는 방법은 상기 제1 상태로 정의된 입자와 연관된 통계 정보에 기초하여, 상기 상태 전환 확률을 조정하는 단계를 더 포함할 수 있다.The method of modeling the object may further include adjusting the state transition probability based on statistical information associated with the particle defined as the first state.

상기 상태 전환 확률을 조정하는 단계는, 상기 제1 상태로 정의된 입자가 차지하는 메모리 크기를 모니터링하는 단계; 및 상기 메모리 크기에 기초하여 상기 상태 전환 확률을 결정하는 단계를 포함할 수 있다.The adjusting the state transition probability may include: monitoring a memory size occupied by the particles defined as the first state; and determining the state transition probability based on the memory size.

상기 상태 전환 확률을 조정하는 단계는, 상기 통계 정보와 미리 정한 임계값을 비교하는 단계; 및 상기 비교한 결과에 기초하여 상기 상태 전환 확률을 결정하는 단계를 포함할 수 있다.The adjusting of the state transition probability may include: comparing the statistical information with a predetermined threshold value; and determining the state transition probability based on the comparison result.

상기 비교한 결과에 기초하여 상기 상태 전환 확률을 결정하는 단계는, 상기 통계 정보가 미리 정한 임계값보다 작은 경우에 응답하여, 상기 입자가 상기 제1 상태로 전환되는 확률을 증가시키는 단계; 및 상기 통계 정보가 미리 정한 임계값보다 크거나 같은 경우에 응답하여, 상기 입자가 상기 제1 상태로 전환되는 확률을 감소시키는 단계를 포함할 수 있다.The determining of the state transition probability based on the comparison result may include: in response to a case in which the statistical information is less than a predetermined threshold value, increasing a probability that the particle is converted to the first state; and in response to the case that the statistical information is greater than or equal to a predetermined threshold, reducing a probability of the particle transitioning to the first state.

상기 제2 상태로 변경하는 단계는, 상기 제2 상태로 변경된 입자를 장면에서의 초기 위치 및 초기 속도로 초기화하는 단계를 포함할 수 있다.The changing to the second state may include initializing the particles changed to the second state to an initial position and an initial velocity in a scene.

객체를 모델링하는 방법은 상기 제2 상태의 입자가 차지하는 메모리 크기를 유지하는 단계를 더 포함할 수 있다.The method of modeling the object may further include maintaining a memory size occupied by the particles in the second state.

객체를 모델링하는 방법은 제2 상태로 정의된 입자에 움직임 모델을 적용하고, 상기 제2 상태로 정의된 입자를 상기 상태 전환 확률에 기초하여 제3 상태로 변경하는 단계; 및 제3 상태로 정의된 입자에 움직임 모델을 적용하고, 상기 제3 상태로 정의된 입자를 상기 상태 전환 확률에 기초하여 상기 제1 상태로 변경하는 단계를 더 포함할 수 있다.The method for modeling an object includes applying a motion model to a particle defined in a second state, and changing the particle defined in the second state to a third state based on the state transition probability; and applying a motion model to the particles defined in the third state, and changing the particles defined in the third state to the first state based on the state transition probability.

상기 제3 상태로 변경하는 단계는, 상기 제2 상태로 변경된 입자와 다른 객체 간에 상호작용이 발생하는 경우에 응답하여, 상기 제2 상태로 변경된 입자를 상기 상태 전환 확률에 기초하여 상기 제3 상태로 변경하는 단계를 포함할 수 있다.The changing to the third state may include, in response to an interaction occurring between the particle changed to the second state and another object, changing the particle changed to the second state to the third state based on the state transition probability. may include a step of changing to

객체를 모델링하는 방법은 각각의 입자에 대해 입자의 크기, 재질, 형태, 및 속성 중 적어도 하나를 정의하는 단계를 더 포함할 수 있다.The method of modeling the object may further include defining at least one of a size, a material, a shape, and an attribute of the particle for each particle.

상기 복수의 입자들 중 제1 상태로 정의된 입자를 객체의 제2 상태로 변경하는 단계는, 장면(scene)의 해당 프레임에 지정된 개수만큼의 상기 제1 상태로 정의된 입자를 상기 제2 상태로 변경하는 단계를 포함할 수 있다.The step of changing the particle defined in the first state among the plurality of particles to the second state of the object may include changing the number of particles defined in the first state to the second state as many as the number of particles defined in the corresponding frame of the scene. may include a step of changing to

객체를 모델링하는 방법은 상기 입자를 이용하여 상기 객체를 디스플레이하는 단계를 더 포함할 수 있다.The method of modeling an object may further include displaying the object using the particle.

상기 객체는 가상 공간 상에 표현되는 유체이고, 상기 복수의 입자들은 상기 유체를 형성할 수 있다.The object is a fluid expressed in a virtual space, and the plurality of particles may form the fluid.

상기 제1 상태는, 상기 입자가 장면에서의 표현이 종료된 후에 메모리에 임시적으로 위치하는 상태힐 수 있다.The first state may be a state in which the particle is temporarily located in the memory after the presentation in the scene is finished.

상기 제2 상태는, 가상 공간 내에서 유체의 대표적인 흐름을 형성하는 입자들의 상태일 수 있다.The second state may be a state of particles forming a representative flow of a fluid in the virtual space.

상기 제3 상태는, 상기 제2 상태로부터 전환되어 유체의 부수적인 흐름을 형성하는 입자들의 상태일 수 있다.The third state may be a state of particles that are converted from the second state to form an incidental flow of the fluid.

일 실시예에 따른 객체를 모델링하는 장치는 입자들을 저장하는 메모리(memory); 및 객체를 형성하는 복수의 입자들에 대해 각각의 상태와 상태 전환 확률을 정의하고, 상기 복수의 입자들 중 제1 상태로 정의된 입자를 객체의 제2 상태로 변경하며, 상기 복수의 입자들 중 제2 상태로 정의된 입자에 움직임 모델을 적용하고 상기 상태 전환 확률에 기초하여 상기 제1 상태로 변경하는 프로세서(processor)를 포함할 수 있다.An apparatus for modeling an object according to an embodiment includes a memory for storing particles; and defining respective states and state transition probabilities for a plurality of particles forming an object, and changing a particle defined as a first state among the plurality of particles to a second state of the object, and and a processor that applies a motion model to the particles defined in the second state and changes to the first state based on the state transition probability.

다른 일 실시예에 따른 객체를 모델링하는 방법은 제1 상태(first state)의 입자들 중 적어도 일부를 제2 상태(second state)로 변경하는 단계; 상기 제2 상태의 입자를 이용하여 객체를 생성하는 단계; 상기 제2 상태의 입자에 움직임 모델(movement model)을 적용하는 단계; 및 상기 움직임 모델의 적용 결과에 따라, 상기 제2 상태의 입자를 상태 전환 조건에 기초하여 제1 상태로 변경하는 단계를 포함할 수 있다.A method of modeling an object according to another embodiment includes changing at least some of particles in a first state to a second state; generating an object using the particles in the second state; applying a movement model to the particles in the second state; and changing the particles in the second state to the first state based on a state transition condition according to a result of applying the motion model.

객체를 모델링하는 방법은 상기 제2 상태의 입자가 장면 내에서 미리 정한 공간에 도달한 경우에 응답하여, 상기 입자를 상기 제2 상태로부터 다른 상태로 변경하는 단계를 더 포함할 수 있다.The method of modeling the object may further include changing the particle from the second state to another state in response to the particle in the second state reaching a predetermined space within a scene.

객체를 모델링하는 방법은 상기 제2 상태의 입자와 다른 객체 간에 상호작용이 발생하는 경우에 응답하여, 상기 제2 상태의 입자를 상태 전환 확률에 기초하여 다른 상태로 변경하는 단계를 더 포함할 수 있다.The method of modeling an object may further include, in response to an interaction occurring between the particle in the second state and another object, changing the particle in the second state to another state based on a state transition probability. have.

객체를 모델링하는 방법은 입자들과 연관된 통계 정보를 모니터링하는 단계; 및 상기 통계 정보에 기초하여, 상기 상태 전환 조건을 조정하는 단계를 더 포함할 수 있다.A method of modeling an object includes monitoring statistical information associated with particles; and adjusting the state transition condition based on the statistical information.

상기 상태 전환 조건을 조정하는 단계는, 상기 통계 정보와 미리 정한 임계값을 비교하는 단계; 및 상기 비교한 결과에 기초하여 상기 상태 전환 조건을 조정하는 단계를 포함할 수 있다.The adjusting of the state transition condition may include: comparing the statistical information with a predetermined threshold value; and adjusting the state transition condition based on the comparison result.

상기 상태 전환 조건을 조정하는 단계는, 상기 제2 상태의 입자가 다른 상태로 변경되도록 설정된 공간의 장면 내 크기, 형태, 및 위치 중 적어도 하나를 조정하는 단계를 포함할 수 있다.The adjusting of the state transition condition may include adjusting at least one of a size, a shape, and a position in a scene of a space set so that the particles in the second state are changed to another state.

객체를 모델링하는 방법은 상기 입자가 상기 제2 상태를 유지하는 경우에 응답하여, 상기 입자에 상기 움직임 모델을 지속적으로 적용하는 단계를 더 포함할 수 있다.The method of modeling an object may further include continuously applying the motion model to the particle in response to the case that the particle maintains the second state.

객체를 모델링하는 방법은 상기 움직임 모델의 적용 결과에 따라, 상기 제2 상태의 입자를 상태 전환 조건에 기초하여 제3 상태로 변경하는 단계; 상기 제3 상태의 입자에 움직임 모델을 적용하는 단계; 및 상기 움직임 모델의 적용 결과에 따라, 상기 제3 상태의 입자를 상기 상태 전환 조건에 기초하여 상기 제1 상태로 변경하는 단계를 더 포함하고, 상기 제2 상태의 입자를 이용하여 객체를 생성하는 단계는, 상기 제2 상태의 입자 및 상기 제3 상태의 입자를 이용하여 객체를 생성하는 단계를 포함할 수 있다.The method for modeling an object includes: changing the particles in the second state to a third state based on a state transition condition according to a result of application of the motion model; applying a motion model to the particles in the third state; and changing the particles in the third state to the first state based on the state transition condition according to a result of applying the motion model, wherein the object is generated using the particles in the second state The step may include generating an object using the particles in the second state and the particles in the third state.

상기 제1 상태의 입자들 중 적어도 일부를 제2 상태로 변경하는 단계는, 상기 제1 상태의 입자들 중 장면(scene)의 해당 프레임에 지정된 개수만큼의 입자를 제2 상태로 변경하는 단계; 및 상기 제2 상태로 변경된 입자를 장면에서의 초기 위치 및 초기 속도로 초기화하는 단계를 포함할 수 있다.The changing of at least some of the particles in the first state to the second state may include: changing the number of particles specified in a corresponding frame of a scene among the particles in the first state to the second state; and initializing the particles changed to the second state to an initial position and initial velocity in the scene.

상기 제1 상태의 입자들 중 적어도 일부를 제2 상태로 변경하는 단계는, 상기 제2 상태의 입자에 대해 입자의 크기, 재질, 형태, 및 속성 중 적어도 하나를 정의하는 단계를 포함할 수 있다.The step of changing at least some of the particles in the first state to the second state may include defining at least one of a size, material, shape, and property of the particles in the second state. .

객체를 모델링하는 방법은 상기 제2 상태의 입자가 차지하는 메모리 크기를 유지하는 단계를 더 포함할 수 있다.The method of modeling the object may further include maintaining a memory size occupied by the particles in the second state.

객체를 모델링하는 방법은 상기 입자를 이용하여 상기 객체를 디스플레이하는 단계를 더 포함할 수 있다.The method of modeling an object may further include displaying the object using the particle.

다른 일 실시예에 따른 객체를 모델링하는 장치는 입자들을 저장하는 메모리; 및 제1 상태의 입자들 중 적어도 일부를 제2 상태로 변경하고, 상기 제2 상태의 입자를 이용하여 객체를 생성하며, 상기 제2 상태의 입자에 움직임 모델을 적용하고, 상기 움직임 모델의 적용 결과에 따라 상기 제2 상태의 입자를 상태 전환 조건에 기초하여 제1 상태로 변경하는 프로세서를 포함할 수 있다.An apparatus for modeling an object according to another embodiment includes a memory for storing particles; and changing at least some of the particles in the first state to the second state, creating an object using the particles in the second state, applying a motion model to the particles in the second state, and applying the motion model and a processor for changing the particles in the second state to the first state based on a state transition condition according to a result.

도 1은 일 실시예에 따라 디스플레이되는 객체를 도시한 도면이다.
도 2 및 도 3은 일 실시예에 따라 객체를 모델링하는 방법을 도시한 흐름도이다.
도 4는 일 실시예에 따라 객체를 모델링하는 예시를 도시한 도면이다.
도 5는 일 실시예에 따른 객체의 상태 전환을 도시한 도면이다.
도 6은 일 실시예에 따른 객체의 상태 전환이 발생하는 예시를 도시한 도면이다.
도 7은 일 실시예에 따른 객체를 모델링하는 다른 예시를 도시한 도면이다.
도 8은 다른 일 실시예에 따라 객체를 모델링하는 방법을 도시한 흐름도이다.
도 9는 일 실시예에 따라 객체의 상태 전환이 발생하는 다른 예시를 도시한 도면이다.
도 10은 일 실시예에 따라 시간의 경과에 따른 객체의 상태 전환을 도시한 도면이다.
도 11은 일 실시예에 따라 통계 정보에 기초하여 상태 전환 조건을 조정하는 방법을 도시한 도면이다.
도 12 및 도 13은 일 실시예에 따른 객체를 모델링하는 장치의 구성을 도시한 블럭도이다.
1 is a diagram illustrating a displayed object according to an exemplary embodiment.
2 and 3 are flowcharts illustrating a method of modeling an object according to an exemplary embodiment.
4 is a diagram illustrating an example of modeling an object according to an embodiment.
5 is a diagram illustrating a state transition of an object according to an exemplary embodiment.
6 is a diagram illustrating an example in which a state transition of an object occurs, according to an embodiment.
7 is a diagram illustrating another example of modeling an object according to an embodiment.
8 is a flowchart illustrating a method of modeling an object according to another exemplary embodiment.
9 is a diagram illustrating another example in which a state transition of an object occurs, according to an embodiment.
10 is a diagram illustrating a state transition of an object over time, according to an exemplary embodiment.
11 is a diagram illustrating a method of adjusting a state transition condition based on statistical information according to an embodiment.
12 and 13 are block diagrams illustrating a configuration of an apparatus for modeling an object according to an exemplary embodiment.

이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these embodiments. Like reference numerals in each figure indicate like elements.

아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Various modifications may be made to the embodiments described below. It should be understood that the embodiments described below are not intended to limit the embodiments, and include all modifications, equivalents, and substitutions thereto.

실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수 개의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in the examples are only used to describe specific examples, and are not intended to limit the examples. The singular expression includes the plural expression unless the context clearly dictates otherwise. In this specification, terms such as "comprises" or "have" are intended to designate that the features, numbers, steps, operations, components, parts, or combinations thereof described in the specification exist, but one or more other features It is to be understood that this does not preclude the possibility of the presence or addition of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components are assigned the same reference numerals regardless of the reference numerals, and the overlapping description thereof will be omitted. In the description of the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.

도 1은 일 실시예에 따라 디스플레이되는 객체를 도시한 도면이다.1 is a diagram illustrating a displayed object according to an exemplary embodiment.

객체를 모델링하는 장치의 디스플레이(100)는, 객체(190)를 시각적으로 표현할 수 있다. 예를 들어, 디스플레이(100)는 객체(190)를 2차원 또는 3차원의 형상으로 모델링하여, 장면(scene) 내에 표현할 수 있다.The display 100 of the apparatus for modeling the object may visually represent the object 190 . For example, the display 100 may model the object 190 in a two-dimensional or three-dimensional shape, and may represent it in a scene.

장면은 객체(190) 및 객체(190)가 존재하는 가상 공간을 나타내는 하나 이상의 프레임(frame)으로 구성될 수 있다. 복수의 프레임은 연속적인 영상을 구성할 수 있다. 가상 공간은 객체(190)가 존재하는 2차원 또는 3차원의 공간을 나타낼 수 있다.A scene may be composed of an object 190 and one or more frames representing a virtual space in which the object 190 exists. A plurality of frames may constitute a continuous image. The virtual space may represent a two-dimensional or three-dimensional space in which the object 190 exists.

객체(190)는 하나 이상의 입자의 집합으로 형성되는 사물(thing), 유체(fluid), 기체(gas), 고체(solid), 강체(rigid body), 연체(soft body), 및 변형체(deformable object)(예를 들어, 변형체는 강체 및 연체를 모두 포함하는 객체를 나타낼 수 있음) 등을 나타낼 수 있다. 예를 들어, 입자들의 각각에 대해서 장면 또는 가상 공간 내에서 임의의 움직임 모델(movement model)에 따라, 입자의 위치, 형태, 크기, 및 상태 등이 변경될 수 있다. 이하, 객체(190)가 유체인 경우를 예로 들어 객체(190)의 모델링을 설명한다.The object 190 is a thing, a fluid, a gas, a solid, a rigid body, a soft body, and a deformable object formed by a collection of one or more particles. ) (for example, a deformable body may represent an object including both a rigid body and a soft body), and the like. For example, for each of the particles, the position, shape, size, state, etc. of the particle may be changed according to an arbitrary movement model in a scene or virtual space. Hereinafter, modeling of the object 190 will be described taking the case where the object 190 is a fluid as an example.

움직임 모델은 객체 및 객체를 형성하는 입자의 각각의 움직임을 정의하는 모델을 나타낼 수 있다. 예를 들어, 객체가 유체인 경우, 움직임 모델은 유체의 유동이 수치적으로 정의된 모델일 수 있다. 움직임 모델은 유체를 형성하는 입자들의 위치와 속도가 각각 입자들의 속도와 가속도의 시간적분에 의해 결정되도록 정의될 수 있는 바, 예를 들어 유체를 형성하는 입자들의 가속도는 물리법칙(예를 들어, 중력가속도)에 의해 결정될 수 있다.The motion model may represent a model defining each motion of an object and particles forming the object. For example, when the object is a fluid, the motion model may be a model in which the flow of the fluid is defined numerically. The motion model can be defined such that the position and velocity of particles forming the fluid are determined by the time integral of the velocity and acceleration of the particles, respectively. For example, the acceleration of particles forming the fluid is determined by a physical law (eg, gravitational acceleration) can be determined.

일 실시예에 따르면, 움직임 모델은 객체가 유체인 경우 내비어-스톡스 방정식(Navier-Stokes Equation)을 포함할 수 있다. 내비어-스톡스 방정식은 유체를 매우 작은 입자들(particles)의 합으로 보고, 각각의 입자들이 서로 어떻게 상호 작용하면서 움직이는지를 나타낸 것이다. 내비어-스톡스 방정식은 이상적인 상황을 가정하는 경우, 보다 간단한 베르누이 방정식(Bernoulli's principle)으로 바뀔 수 있다. 내비어-스톡스 방정식에 기반한 유체 모델링의 사실적 재현을 위해서는, 비압축성 조건(incompressible condition)을 만족해야 한다.According to an embodiment, the motion model may include a Navier-Stokes equation when the object is a fluid. The Navier-Stokes equation views a fluid as a sum of very small particles, and describes how each particle interacts with each other and moves. The Navier-Stokes equation can be transformed into a simpler Bernoulli's principle, assuming an ideal situation. In order to realistically reproduce fluid modeling based on the Navee-Stokes equation, an incompressible condition must be satisfied.

일 실시예에 따르면, 객체(190)가 유체인 경우, 유체를 형성하는 입자들이 유입되는 유입구(191) 및 가상 공간 내에 유입된 입자들이 배출되는 배출구(192)가 설정될 수 있다. 예를 들어, 도 1은 세면대에서 물이 틀어진 상황을 나타낼 수 있다. 가상 공간 내에서 입자들은 하나의 상태를 가지도록 정의될 수 있다. 예를 들어, 입자들의 상태는 제1 상태, 제2 상태(120), 및 제3 상태(130)로 정의될 수 있다. 다만, 입자들의 상태를 이로 한정하는 것은 아니고, 설계에 따라 입자들의 상태의 개수 및 정의 등이 변경될 수 있다.According to an embodiment, when the object 190 is a fluid, an inlet 191 through which particles forming the fluid are introduced and an outlet 192 through which particles introduced into the virtual space are discharged may be set. For example, FIG. 1 may represent a situation in which water is turned off in the washbasin. Particles in virtual space can be defined to have one state. For example, the states of the particles may be defined as a first state, a second state 120 , and a third state 130 . However, the state of the particles is not limited thereto, and the number and definition of the states of the particles may be changed according to design.

제1 상태는 가상 공간 내에서 사용되지 않는 입자들의 상태로서, 입자가 디스플레이(100) 상의 장면에서의 표현이 종료된 후에 메모리에 임시적으로 위치하는 상태를 나타낼 수 있다. 제1 상태는 가상공간에 표현되지 않을 상태를 나타낼 수 있다. 예를 들어, 입자는 제2 상태(120) 또는 제3 상태(130)로부터 제1 상태로 전환될 수 있다. 제1 상태는 여분 상태(remaining state)라고 나타낼 수도 있다.The first state is a state of unused particles in the virtual space, and may indicate a state in which the particles are temporarily located in the memory after the display in the scene on the display 100 is finished. The first state may indicate a state not to be expressed in the virtual space. For example, the particle may transition from the second state 120 or the third state 130 to the first state. The first state may be referred to as a remaining state.

제2 상태(120)는 가상 공간 내에서 유체의 대표적인 흐름을 형성하는 입자들의 상태로서, 입자가 유입구(191)를 통해 유입되는 상태 및 입자가 장면 내에서 대표적인 유체 흐름을 형성하는 상태 등을 나타낼 수 있다. 제2 상태(120)는 주 흐름(primary flow) 상태라고 나타낼 수도 있다. 또한, 입자가 제1 상태로부터 제2 상태(120)로 변경된 프레임에서, 제2 상태(120)로 변경된 입자는 유입구(191)를 통해 유입된 직후의 시점에서 유입구(191)의 위치에 대응하는 초기 위치 및 유입되는 초기 속도로 초기화될 수 있다.The second state 120 is a state of particles that form a representative flow of fluid in the virtual space, and represents a state in which particles are introduced through the inlet 191 and a state in which particles form a representative fluid flow in a scene. can The second state 120 may also be referred to as a primary flow state. In addition, in the frame in which the particles are changed from the first state to the second state 120 , the particles changed to the second state 120 correspond to the position of the inlet 191 at a time point immediately after being introduced through the inlet 191 . It can be initialized to the initial position and the initial velocity of the incoming.

제3 상태(130)는 가상 공간 내에서 유체의 대표적인 흐름을 형성하던 입자가 전환된 다른 상태로서, 제2 상태로부터 전환되어 유체의 부수적인 흐름을 형성하는 입자들의 상태를 나타낼 수 있다. 예를 들어, 제3 상태(130)는 스플래쉬(splash), 다른 객체의 표면을 따라 흐르는 물방울, 거품(bubble) 등의 상태를 포함할 수 있다. 제3 상태(130)는 부 흐름(secondary flow) 상태라고 나타낼 수도 있다.The third state 130 is another state in which particles forming a representative flow of the fluid in the virtual space are converted, and may represent a state of particles that are converted from the second state to form an incidental flow of the fluid. For example, the third state 130 may include states such as splashes, water droplets flowing along the surface of another object, bubbles, and the like. The third state 130 may be referred to as a secondary flow state.

일 실시예에 따르면, 객체를 모델링 하기 위해, 제한된 개수의 입자로 유체 흐름을 표현하는 바, 입자를 동적으로 생성 및 소멸시키지 않으므로 연산 속도가 향상될 수 있고, 비교적 적은 연산 능력이 요구될 수 있다. 또한, 일 실시예에 따른 장치는 여분 상태의 입자를 적절한 개수로 유지함으로써, 메모리 공간을 효율적으로 사용할 수 있다. 하기에서는 일 실시예에 따라 한정된 수의 입자로 유체 흐름을 표현하기 위해, 효율적으로 입자를 재사용하는 방법을 설명한다.According to an embodiment, in order to model an object, a fluid flow is expressed with a limited number of particles, and since particles are not dynamically created and destroyed, the calculation speed may be improved, and a relatively small amount of computing power may be required. . In addition, the device according to an embodiment may efficiently use a memory space by maintaining an appropriate number of particles in an extra state. Hereinafter, a method for efficiently reusing particles in order to express a fluid flow with a limited number of particles according to an embodiment will be described.

도 2 및 도 3은 일 실시예에 따라 객체를 모델링하는 방법을 도시한 흐름도이다.2 and 3 are flowcharts illustrating a method of modeling an object according to an exemplary embodiment.

도 2는 특정 프레임에서 객체를 모델링하는 방법을 도시한다.2 shows a method of modeling an object in a specific frame.

우선, 단계(210)에서 객체를 모델링하는 장치의 프로세서는 객체를 형성하는 복수의 입자들에 대해 각각의 상태와 상태 전환 확률을 정의할 수 있다. 예를 들어, 프로세서는 복수의 입자들의 각각을 제1 상태, 제2 상태, 및 제3 상태 중 하나로 정의할 수 있다. 일 실시예에 따르면, 프로세서는 유체를 형성하는 복수의 입자들을 가상 공간에 표현되지 않은 제1 상태와 가상 공간에 표현될 제2 상태 및 제3 상태로 나눌 수 있다. 또한, 프로세서는 복수의 입자들의 각각에 대해 해당 상태로부터 다른 상태로 전환되는 상태 전환 확률을 정의할 수 있다. 상태 전환 확률은 입자의 현재 상태로부터 다른 상태로 변환되는 확률로서, 예를 들어, 상태 전환 확률은 제2 상태로부터 제1 상태 또는 제3 상태로 전환될 확률, 제3 상태로부터 제1 상태로 전환될 확률 등을 포함할 수 있다.First, the processor of the apparatus for modeling the object in step 210 may define each state and state transition probability for a plurality of particles forming the object. For example, the processor may define each of the plurality of particles as one of a first state, a second state, and a third state. According to an embodiment, the processor may divide the plurality of particles forming the fluid into a first state that is not expressed in the virtual space, and a second state and a third state that are to be expressed in the virtual space. In addition, the processor may define a state transition probability of transitioning from a corresponding state to another state for each of the plurality of particles. The state transition probability is the probability of transitioning from a current state to another state of a particle, for example, the state transition probability is the probability of transitioning from a second state to a first state or a third state, transition from a third state to a first state It may include the probability of being

그리고 단계(220)에서 프로세서는 복수의 입자들 중 제1 상태로 정의된 입자를 객체의 제2 상태로 변경할 수 있다. 예를 들어, 프로세서는 장면의 해당 프레임에 지정된 개수만큼의 제1 상태로 정의된 입자를 제2 상태로 변경할 수 있다. 프로세서는 제1 상태로 정의된 입자를 제2 상태로 변경하면서, 해당 입자의 위치를 유체 흐름이 시작되는 초기 위치로 설정하고, 입자의 속도를 유체 흐름의 초기 속도로 설정함으로써, 초기화할 수 있다. 이와 같이, 프로세서는 제1 상태로 정의된 입자 중 적어도 일부를 재사용하여 유체 흐름을 표현할 수 있다.And in step 220, the processor may change the particle defined as the first state among the plurality of particles to the second state of the object. For example, the processor may change the number of particles defined in the first state to the second state as many as specified in the corresponding frame of the scene. The processor may initialize the particle defined in the first state by changing it to the second state, by setting the position of the particle to the initial position at which the fluid flow begins, and setting the velocity of the particle to the initial velocity of the fluid flow. . As such, the processor may reuse at least some of the particles defined as the first state to represent the fluid flow.

이어서 단계(230)에서 프로세서는 복수의 입자들 중 제2 상태로 정의된 입자에 움직임 모델을 적용하고, 상태 전환 확률에 기초하여 제1 상태로 변경할 수 있다. 예를 들어, 프로세서는 제2 상태로 정의된 입자에 움직임 모델을 적용하여 입자의 위치 및 속도 등을 변경할 수 있다. 또한, 프로세서는 상태 전환 확률에 기초하여 입자의 상태 전환 여부를 결정할 수 있다.Subsequently, in operation 230 , the processor may apply a motion model to a particle defined as the second state among the plurality of particles, and may change to the first state based on the state transition probability. For example, the processor may change the position and velocity of the particle by applying a motion model to the particle defined as the second state. In addition, the processor may determine whether to change the state of the particle based on the state transition probability.

도 3은 도 2에 도시된 특정 프레임에서 객체를 모델링하는 방법을 보다 상세히 설명한다.FIG. 3 describes a method of modeling an object in a specific frame shown in FIG. 2 in more detail.

우선, 단계(310)에서 프로세서는 제1 상태로 정의된 입자와 연관된 통계 정보를 모니터링할 수 있다. 또한, 프로세서는 제1 상태뿐 아니라, 제2 상태 및 제3 상태로 정의된 입자와 연관된 통계 정보를 모니터링할 수 있다. 예를 들어, 특정 상태(예를 들어, 제1 상태, 제2 상태 또는 제3 상태)로 정의된 입자와 연관된 통계 정보는 해당 상태로 정의된 입자의 개수, 해당 상태의 입자가 차지하는 메모리 크기, 및 다른 상태의 입자에 대한 비율 등을 포함할 수 있다. 다만, 통계 정보를 이로 한정하는 것은 아니고, 설계에 따라 다양한 통계 수치가 사용될 수 있다. 일 실시예에 따르면, 프로세서는 제1 상태로 정의된 입자가 차지하는 메모리 크기를 모니터링할 수 있다.First, in step 310, the processor may monitor statistical information associated with the particle defined as the first state. In addition, the processor may monitor statistical information associated with particles defined in the first state as well as the second state and the third state. For example, statistical information associated with particles defined in a particular state (e.g., a first state, a second state, or a third state) may include: the number of particles defined in that state, the amount of memory occupied by the particles in that state; and ratios to particles in other states, and the like. However, the statistical information is not limited thereto, and various statistical values may be used according to design. According to an embodiment, the processor may monitor the memory size occupied by the particles defined in the first state.

그리고 단계(220)에서는 상술한 바와 같이 프로세서가 복수의 입자들 중 제1 상태로 정의된 입자를 객체의 제2 상태로 변경할 수 있다. 예를 들어, 단계(321)에서 프로세서는 제1 상태로 정의된 입자 중 장면의 해당 프레임에 지정된 개수만큼의 입자를 제2 상태로 변경할 수 있다. 일 실시예에 따르면, 프로세서는 유입구의 면적, 및 유체의 속도 등에 기초하여, 제1 상태로부터 제2 상태로 변경되어야 하는 입자의 개수를 결정할 수 있다. 그리고 단계(322)에서 프로세서는 제2 상태로 변경된 입자를 장면에서의 초기 위치 및 초기 속도로 초기화할 수 있다.And in step 220, as described above, the processor may change the particle defined as the first state among the plurality of particles to the second state of the object. For example, in operation 321 , the processor may change the number of particles defined in the first state to the second state as many as the number of particles specified in the corresponding frame of the scene. According to an embodiment, the processor may determine the number of particles to be changed from the first state to the second state based on the area of the inlet and the velocity of the fluid. And in step 322, the processor may initialize the particle changed to the second state to an initial position and initial velocity in the scene.

그리고 단계들(230, 332, 333)에서 프로세서는 각각의 상태로 정의된 입자들에 움직임 모델을 적용하고, 상태 전환 확률에 기초하여 다른 상태로 변경할 수 있다.And in steps 230 , 332 , and 333 , the processor may apply a motion model to the particles defined in each state, and change to another state based on the state transition probability.

예를 들어, 단계(230)에서 프로세서는 도 2에서 상술한 바와 같이 복수의 입자들 중 제2 상태로 정의된 입자에 움직임 모델을 적용하고, 상태 전환 확률에 기초하여 제1 상태로 변경할 수 있다.For example, in step 230 , the processor may apply a motion model to a particle defined as a second state among a plurality of particles as described above with reference to FIG. 2 , and may change to a first state based on a state transition probability. .

다른 예를 들어, 단계(332)에서 프로세서는 제2 상태로 정의된 입자에 움직임 모델을 적용하고, 제2 상태로 정의된 입자를 상태 전환 확률에 기초하여 제3 상태로 변경할 수 있다. 프로세서는 주 흐름 상태(예를 들어, 제2 상태)의 입자에 미리 정한 이벤트가 발생하면, 상태 전환 확률에 기초하여 부 흐름 상태(예를 들어, 제3 상태)로 변경할 지 결정할 수 있다. 미리 정한 이벤트는 하기 도 6에서 상세히 설명한다.For another example, in step 332 , the processor may apply a motion model to the particles defined in the second state, and change the particles defined in the second state to the third state based on the state transition probability. The processor may determine whether to change to a secondary flow state (eg, a third state) based on a state transition probability when a predetermined event occurs in a particle in a primary flow state (eg, a second state). The predetermined event will be described in detail with reference to FIG. 6 below.

또 다른 예를 들어, 단계(333)에서 프로세서는 제3 상태로 정의된 입자에 움직임 모델을 적용하고, 제3 상태로 정의된 입자를 상태 전환 확률에 기초하여 제1 상태로 변경할 수 있다. 프로세서는 부 흐름 상태(예를 들어, 제3 상태)의 입자에 미리 정한 이벤트가 발생하면, 여분 상태(예를 들어, 제1 상태)로 변경할 지 결정할 수 있다.For another example, in operation 333 , the processor may apply a motion model to the particle defined as the third state, and change the particle defined as the third state to the first state based on the state transition probability. The processor may determine whether to change to the redundant state (eg, the first state) when a predetermined event occurs in the particle in the secondary flow state (eg, the third state).

이어서 단계(340)에서 프로세서는 제1 상태로 정의된 입자와 연관된 통계 정보에 기초하여, 상태 전환 확률을 조정할 수 있다. 예를 들어, 프로세서는 상술한 단계(310)에서 모니터링 하였던 제1 상태의 입자가 차지하는 메모리 크기에 기초하여 상태 전환 확률을 결정할 수 있다. 일 실시예에 따르면 프로세서가 입자들을 미리 정한 개수의 상태(예를 들어, 3개의 상태)로 각각 정의하고, 각 상태 간의 상태 전환 확률을 동적으로 재계산함으로써, 객체를 생성하는데 사용되는 입자를 효율적으로 재사용할 수 있다.Subsequently, in step 340 , the processor may adjust the state transition probability based on statistical information associated with the particle defined as the first state. For example, the processor may determine the state transition probability based on the memory size occupied by the particles of the first state monitored in step 310 described above. According to one embodiment, the processor defines particles each into a predetermined number of states (eg, three states), and dynamically recalculates the state transition probability between each state, thereby efficiently reducing the particles used to create the object. can be reused as

예를 들어, 단계(341)에서 프로세서는 통계 정보와 미리 정한 임계값을 비교할 수 있다. 프로세서는 비교한 결과에 기초하여 상태 전환 확률을 결정할 수 있다. 단계(342)에서 프로세서는 통계 정보가 미리 정한 임계값보다 작은 경우에 응답하여, 입자가 제1 상태로 전환되는 확률을 증가시킬 수 있다. 단계(343)에서 프로세서는 통계 정보가 미리 정한 임계값보다 크거나 같은 경우에 응답하여, 입자가 제1 상태로 전환되는 확률을 감소시킬 수 있다. 또는 단계(343)에서 프로세서는 입자가 제1 상태로 전환되는 확률을 기본값(default value)으로 설정할 수 있다. 여기서 임계값은 입자의 개수 또는 입자의 비율 등일 수 있고, 설계에 따라 사용자에 의해 설정되거나, 시뮬레이션 등에 의해 획득될 수 있다.For example, in step 341, the processor may compare the statistical information with a predetermined threshold. The processor may determine a state transition probability based on the comparison result. In step 342 , the processor may increase the probability that the particle transitions to the first state in response to the case that the statistical information is less than a predetermined threshold. In step 343, the processor may reduce the probability of the particle transitioning to the first state in response to the case that the statistical information is greater than or equal to a predetermined threshold. Alternatively, in step 343 , the processor may set the probability that the particle is converted to the first state as a default value. Here, the threshold value may be the number of particles or a ratio of particles, etc., and may be set by a user according to a design, or may be obtained by simulation or the like.

프로세서는 상술한 바와 같이 제1 상태(예를 들어, 여분 상태)의 입자의 부족 여부를 제1 상태의 입자의 개수 또는 전체 입자 대비 제1 상태의 입자의 비율 등에 기초하여 판단할 수 있다. 예를 들어, 제1 상태의 입자의 개수가 임계값보다 작은 경우, 프로세서는 제1 상태의 입자가 부족한 것으로 판단할 수 있다. 제1 상태의 입자가 부족한 것으로 판단된 경우, 프로세서는 상태 전환 확률을 조정함으로써, 제1 상태의 입자를 확보할 수 있다. 예를 들어, 상술한 단계(342)와 같이 입자가 제1 상태로 전환되는 확률을 증가시키거나, 입자가 제2 상태로부터 제3 상태로 전환되는 확률을 감소시킬 수 있다.As described above, the processor may determine whether or not there is a shortage of particles in the first state (eg, an extra state) based on the number of particles in the first state or a ratio of particles in the first state to all particles. For example, when the number of particles in the first state is smaller than the threshold value, the processor may determine that the particles in the first state are insufficient. When it is determined that the particles in the first state are insufficient, the processor may secure the particles in the first state by adjusting the state transition probability. For example, as in step 342 described above, the probability that the particle is converted to the first state may be increased or the probability that the particle is converted from the second state to the third state may be decreased.

일 실시예에 따르면, 상술한 단계(340)에서 프로세서가 상태 전환 확률을 조정하여 제1 상태의 입자를 확보함으로써, 대표적인 유체 흐름(예를 들어, 제2 상태의 입자들의 집합)을 안정적으로 생성할 수 있다. 또한, 프로세서는 제1 상태의 입자가 부족한 경우에는, 제3 상태로의 전환 확률을 감소시켜서, 제3 상태(예를 들어, 유체의 부수적인 흐름을 나타내는 상태인 부 흐름 상태)를 덜 표현하고, 제2 상태(예를 들어, 유체의 대표적인 흐름을 나타내는 상태인 주 흐름 상태)을 유지할 수 있다. 이와 같이, 프로세서는 매 프레임마다 입자들의 통계 정보를 모니터링 하여 상태 전환 확률을 동적으로 조정할 수 있다. 따라서, 일 실시예에 따른 장치는 총 입자의 개수가 전체 유체 흐름을 표현하기에 부족한 경우에도, 주 흐름을 안정적으로 표현할 수 있는 바, 메모리를 절감하면서 처리될 입자의 개수를 최소화하여 연산을 고속화할 수 있다.According to one embodiment, in the above-described step 340, the processor adjusts the state transition probability to secure the particles in the first state, thereby stably generating a representative fluid flow (eg, a set of particles in the second state). can do. In addition, the processor reduces the probability of transitioning to the third state when the particles in the first state are insufficient, so that the third state (eg, the secondary flow state, which is a state representing the secondary flow of fluid) is less representative and , may maintain a second state (eg, a main flow state, which is a state representative of the flow of the fluid). In this way, the processor can dynamically adjust the state transition probability by monitoring the statistical information of the particles every frame. Therefore, the apparatus according to an embodiment can stably express the main flow even when the total number of particles is insufficient to express the entire fluid flow, thereby reducing the memory and speeding up the calculation by minimizing the number of particles to be processed. can do.

그리고 단계(350)에서는 프로세서는 입자를 이용하여 객체를 디스플레이할 수 있다. 일 실시예에 따르면, 프로세서는 움직임 모델이 적용된 제2 상태 및 제3 상태의 입자들을 이용하여 가상 공간에 유체를 표현할 수 있다. 예를 들어, 프로세서는 디스플레이가 매 프레임마다 제2 상태 및 제3 상태의 입자들을 표현하도록 제어할 수 있다. 또한, 프로세서는 각각의 입자에 대해 입자의 크기, 재질, 형태, 및 속성 중 적어도 하나를 정의할 수 있다. 예를 들어, 프로세서는 제2 상태의 입자 및 제3 상태의 입자에 대하여 입자의 크기, 재질, 형태, 및 속성 등을 정의하고, 이에 기초하여 입자를 시각적으로 표현할 수 있다. 입자의 재질은 입자를 표현하기 위한 텍스쳐를 결정하기 위해 사용될 수 있다. 입자의 속성은 입자가 움직임 모델에서 가지는 물리적인 특성(예를 들어, 표면장력 계수 등)을 결정하기 위해 사용될 수 있다.And in step 350, the processor may display the object using the particles. According to an embodiment, the processor may express a fluid in the virtual space using particles in the second state and the third state to which the motion model is applied. For example, the processor may control the display to represent particles in the second state and the third state every frame. In addition, the processor may define at least one of a size, a material, a shape, and an attribute of the particle for each particle. For example, the processor may define the particle size, material, shape, and property of the particle with respect to the particle in the second state and the particle in the third state, and visually express the particle based on this. The material of the particle can be used to determine the texture for expressing the particle. The properties of the particles can be used to determine the physical properties (eg, surface tension coefficient, etc.) of the particles in the motion model.

도 4는 일 실시예에 따라 객체를 모델링하는 예시를 도시한 도면이다.4 is a diagram illustrating an example of modeling an object according to an embodiment.

도 4에 도시된 디스플레이(100)는 도 1에 도시된 장면과 동일한 장면을 표현할 수 있다. 예를 들어, 디스플레이(100)는 특정 프레임의 장면을 표현할 수 있다.The display 100 shown in FIG. 4 may represent the same scene as the scene shown in FIG. 1 . For example, the display 100 may represent a scene of a specific frame.

메모리(490)는 디스플레이(100) 상에 나타나는 제2 상태(120)의 입자 및 제3 상태(130)의 입자를 저장할 수 있고, 디스플레이(100) 상에 나타나지 않는 제1 상태의 입자(410)도 저장할 수 있다. 도 3의 단계(220)에서 상술한 바와 같이 프로세서는 제1 상태의 입자(410)를 제2 상태로 변경하면서 해당 입자의 위치를 유입구의 위치로 초기화할 수 있다. 여기서, 프로세서는 매 프레임마다 지정된 개수의 제1 상태의 입자(410)를 제2 상태로 변경하고 초기화할 수 있다.The memory 490 may store the particles in the second state 120 and the particles in the third state 130 appearing on the display 100 , and the particles 410 in the first state not appearing on the display 100 . can also be saved. As described above in step 220 of FIG. 3 , the processor may initialize the position of the particle 410 in the first state to the position of the inlet while changing the particle 410 in the first state to the second state. Here, the processor may change and initialize the specified number of particles 410 in the first state to the second state every frame.

일 실시예에 따르면, 메모리(490)는 미리 정한 메모리 크기만큼 전체 입자를 생성하여 유지할 수 있고, 프로세서가 해당 메모리(490)의 메모리 크기에 따라 정해진 개수의 입자를 각각의 상태로 분류하여 객체를 표현하는데 사용할 수 있다. 예를 들어, 프로세서는 메모리(490)에서 제2 상태의 입자(120)가 차지하는 메모리 크기를 일정하게 유지하고, 제1 상태의 입자(410)가 차지하는 메모리 크기(491) 및 제3 상태의 입자(130)가 차지하는 메모리 크기(493)는 유동적으로 조절할 수 있다. 모든 입자, 예를 들어, 제1 상태의 입자(410), 제2 상태의 입자(120), 및 제3 상태의 입자(130)의 전체에 할당되는 메모리 크기는 모든 프레임에서 동일할 수 있다.According to an embodiment, the memory 490 may generate and maintain all particles as much as a predetermined memory size, and the processor classifies a predetermined number of particles into respective states according to the memory size of the corresponding memory 490 to classify the object. can be used to express For example, the processor maintains constant the memory size occupied by the particles 120 in the second state in the memory 490 , the memory size 491 occupied by the particles in the first state 410 and the particles in the third state. The memory size 493 occupied by 130 can be flexibly adjusted. The memory size allocated to all of the particles, for example, the particles 410 in the first state, the particles 120 in the second state, and the particles 130 in the third state, may be the same in all frames.

다른 일 실시예에 따르면, 메모리(490)는 제1 상태의 입자들이 차지하는 메모리 크기를 유동적으로 유지할 수 있고, 제3 상태의 입자들이 차지하는 메모리 크기를 유동적으로 유지할 수 있다. 여기서, 메모리(490)는 제1 상태 및 제3 상태의 입자들이 차지하는 메모리 크기를 일정하게 유지할 수 있다. 더 나아가, 메모리(490)는 제1 상태, 제2 상태, 및 제3 상태의 입자들이 차지하는 메모리 크기의 합을 일정하게 유지할 수 있다.According to another embodiment, the memory 490 may flexibly maintain the memory size occupied by particles in the first state, and may flexibly maintain the memory size occupied by particles in the third state. Here, the memory 490 may maintain a constant memory size occupied by particles in the first state and the third state. Furthermore, the memory 490 may keep the sum of the memory sizes occupied by particles of the first state, the second state, and the third state constant.

또 다른 일 실시예에 따르면, 메모리(490)는 제1 상태의 입자들의 개수를 일정하게 유지할 수 있고, 더 나아가 메모리(490)는 제1 상태, 제2 상태, 및 제3 상태의 입자들 개수의 합을 일정하게 유지할 수도 있다.According to another embodiment, the memory 490 may keep the number of particles in the first state constant, and further, the memory 490 may include the number of particles in the first state, the second state, and the third state. It is also possible to keep the sum of

프로세서는 메모리(490) 내에서 제2 상태(120)의 입자가 차지하는 메모리 크기(492)를 유지할 수 있다. 프로세서는 도 3의 단계(340)에서 상술한 바와 같이, 상태 전환 확률을 조절함으로써, 제3 상태(130)의 입자가 차지하는 메모리 크기(493) 및 제1 상태의 입자(410)가 차지하는 메모리 크기(491)를 유동적으로 조절할 수 있다. 일 실시예에 따르면, 프로세서는 제2 상태(120)의 입자가 차지하는 메모리 크기(492)를 유지함으로써, 제2 상태(120)의 입자가 형성하는 유체 흐름의 시각적 품질을 유지할 수 있다.The processor may maintain the memory size 492 occupied by the particles in the second state 120 in the memory 490 . As described above in step 340 of FIG. 3 , the processor adjusts the state transition probability, so that the memory size 493 occupied by the particles in the third state 130 and the memory size occupied by the particles 410 in the first state are adjusted. (491) can be flexibly adjusted. According to an embodiment, the processor can maintain the visual quality of the fluid flow formed by the particles in the second state 120 by maintaining the memory size 492 occupied by the particles in the second state 120 .

도 5는 일 실시예에 따른 객체의 상태 전환을 도시한 도면이다.5 is a diagram illustrating a state transition of an object according to an exemplary embodiment.

본 명세서에서 입자는 제1 상태(510), 제2 상태(520), 및 제3 상태(530) 중 하나로 정의될 수 있다. 제1 상태(510)는 상술한 바와 같이 해당 프레임에서 디스플레이에 사용되지 않는 입자의 상태로서, 여분 상태라고 나타낼 수 있다. 제2 상태(520)는 해당 프레임에서 대표적인 유체 흐름을 형성하는 입자의 상태로서, 주 흐름 상태라고 나타낼 수 있다. 제3 상태(530)는 해당 프레임에서 부수적인 유체 흐름을 형성하는 입자의 상태로서, 부 흐름 상태라고 나타낼 수 있다. 다만, 입자의 상태를 상술한 바로 한정하는 것은 아니고, 설계에 따라 입자의 상태의 분류를 변경될 수 있다.In this specification, a particle may be defined in one of a first state 510 , a second state 520 , and a third state 530 . As described above, the first state 510 is a state of particles not used for display in a corresponding frame, and may be represented as an extra state. The second state 520 is a state of particles forming a representative fluid flow in the frame, and may be represented as a main flow state. The third state 530 is a state of particles forming an incidental fluid flow in the frame, and may be referred to as a secondary flow state. However, the state of the particle is not limited as described above, and the classification of the state of the particle may be changed according to design.

일 실시예에 따르면, 프로세서가 제1 상태(510)(예를 들어, 여분 상태)의 입자를 제2 상태(520)로 변경할 수 있다. 여기서, 프로세서는 해당 프레임에서 요구되는 개수만큼만 제1 상태(510)의 입자를 제2 상태(520)로 변경하는 바, 프로세서는 나머지 제1 상태(510)의 입자는 제1 상태(510)로 유지할 수 있다. 제1 상태(510)의 입자는 필요에 따라 프로세서에 의해 호출되기 전까지는 메모리에 저장되어 유지될 수 있고, 디스플레이 상에는 표현되지 않을 수 있다. 여기서, 제1 상태(510)의 입자는 제3 상태(530)로는 변경되지 않을 수 있다.According to an embodiment, the processor may change the particle in the first state 510 (eg, the redundant state) to the second state 520 . Here, the processor changes the particles in the first state 510 to the second state 520 only by the number required in the corresponding frame, and the processor changes the remaining particles in the first state 510 to the first state 510 . can keep The particles in the first state 510 may be stored and maintained in the memory until they are called by the processor as needed, and may not be displayed on the display. Here, the particles in the first state 510 may not change to the third state 530 .

프로세서는 제2 상태(520)(예를 들어, 주 흐름 상태)의 입자에 대해 움직임 모델을 적용할 수 있고, 이후 미리 정한 이벤트가 발생한 제2 상태(520)의 입자를 상태 전환 확률에 기초하여 제3 상태(530) 또는 제1 상태(510)로 변경할 수 있다. 제2 상태(520)의 입자에 대해 미리 정한 이벤트가 발생하지 않는 경우에는, 프로세서는 해당 입자의 상태를 제2 상태(520)로 유지할 수 있다.The processor may apply the motion model to the particles in the second state 520 (eg, the main flow state), and then, based on the state transition probability, the particles in the second state 520 in which a predetermined event occurs. The third state 530 or the first state 510 may be changed. When a predetermined event does not occur for the particle in the second state 520 , the processor may maintain the state of the particle in the second state 520 .

프로세서는 제3 상태(530)(예를 들어, 부 흐름 상태)의 입자에 대해 움직임 모델을 적용할 수 있고, 이후 미리 정한 이벤트가 발생한 제3 상태(530)의 입자를 상태 전환 확률에 기초하여 제1 상태(510)로 변경할 수 있다. 제3 상태(530)의 입자에 대해 미리 정한 이벤트가 발생하지 않는 경우에는 프로세서는 해당 입자의 상태를 제3 상태(530)로 유지할 수 있다. 여기서, 제 3상태(530)의 입자는 제2 상태(520)로는 변경되지 않을 수 있다.The processor may apply the motion model to the particles in the third state 530 (eg, the secondary flow state), and then based on the state transition probability of the particles in the third state 530 in which a predetermined event occurs. It may change to the first state 510 . When a predetermined event does not occur for the particle in the third state 530 , the processor may maintain the state of the particle in the third state 530 . Here, the particles in the third state 530 may not change to the second state 520 .

도 6은 일 실시예에 따른 객체의 상태 전환이 발생하는 예시를 도시한 도면이다.6 is a diagram illustrating an example in which a state transition of an object occurs, according to an embodiment.

프로세서는 제2 상태의 입자 및 제3 상태의 입자에 대해 움직임 모델을 적용한 결과, 해당 입자에서 미리 정한 이벤트가 발생하면 상태 전환 확률에 기초하여 해당 입자를 다른 상태로 변경할 지 여부를 결정할 수 있다. 도 6은 미리 정한 이벤트의 예시로서, 두 입자 간의 충돌을 설명한다.As a result of applying the motion model to the particle in the second state and the particle in the third state, when a predetermined event occurs in the particle, the processor may determine whether to change the particle to another state based on the state transition probability. 6 illustrates a collision between two particles as an example of a predetermined event.

일 실시예에 따르면 프로세서가 임의의 입자(610)에 대해 움직임 모델을 적용하게 될 경우, 해당 입자(610)가 다른 입자(620)에 접근하게 될 수 있다. 해당 입자(610)와 다른 입자(620) 간의 거리가 미리 정한 임계 거리보다 작아지거나 두 입자가 접촉하게 되면, 두 입자 간에는 상호작용(650)(예를 들어, 충돌)이 발생할 수 있다. 예를 들어, 프로세서는, 해당 입자(610)와 다른 입자(620)가 접촉한 경우, 두 입자 간에 충돌이 발생한 것으로 처리할 수 있다.According to an embodiment, when the processor applies a motion model to an arbitrary particle 610 , the corresponding particle 610 may approach another particle 620 . When the distance between the corresponding particle 610 and the other particle 620 is smaller than a predetermined threshold distance or when the two particles come into contact, an interaction 650 (eg, collision) may occur between the two particles. For example, when the corresponding particle 610 and another particle 620 come into contact, the processor may treat it as a collision between the two particles.

프로세서는 제2 상태로 변경된 입자(610)와 다른 객체를 형성하는 입자(620) 간에 상호작용(650)이 발생하는 경우에 응답하여, 제2 상태로 변경된 입자(610)를 상태 전환 확률에 기초하여 제3 상태로 변경할 수 있다. 도 6에서 프로세서는, 상태 전환 확률에 기초하여 다른 입자(620)와 충돌한 입자(610)를 다른 상태(예를 들어, 작은 방울의 상태)의 입자(611)로 변경할 수 있다.In response to an interaction 650 occurring between the particle 610 changed to the second state and the particle 620 forming another object, the processor converts the particle 610 changed to the second state to the state transition probability based on the state transition probability. to change to the third state. In FIG. 6 , the processor may change a particle 610 that collides with another particle 620 to a particle 611 in a different state (eg, a state of a small drop) based on the state transition probability.

다만, 본 명세서에서 미리 정한 이벤트를 두 입자 간의 상호작용(650)으로 한정하는 것은 아니며, 임의의 입자(610)가 장면 내에서 특정 위치에 도달하거나, 생성된 후 특정 시간이 경과하는 등의 이벤트를 모두 포함할 수 있다. 또한, 상호작용(650)을 상술한 바와 같이 두 입자 간의 충돌로 한정하는 것은 아니고, 인력 및 장력 등과 같이 두 입자 간의 모든 작용을 포함할 수 있다.However, in the present specification, the predetermined event is not limited to the interaction 650 between the two particles, and an event such as an arbitrary particle 610 reaching a specific location in the scene or the lapse of a specific time after being generated may include all of them. In addition, the interaction 650 is not limited to the collision between the two particles as described above, but may include all actions between the two particles, such as attraction and tension.

도 7은 일 실시예에 따른 객체를 모델링하는 다른 예시를 도시한 도면이다.7 is a diagram illustrating another example of modeling an object according to an embodiment.

예를 들어, 도 7은 별도의 객체(750)가 존재하고, 유체가 유입되고 배출되는 가상 공간을 표현하는 디스플레이(700)를 도시한다. 도 7에 도시된 바와 같이 프로세서는 유입구(791)로부터 유체를 형성하는 입자가 유입되고, 배출구(792)를 통해 유체가 배출되도록 처리할 수 있다. 또한, 프로세서는 유입된 입자를 제2 상태(예를 들어, 주 흐름 상태로서, 도 7에서는 물 줄기)로 정의할 수 있다. 프로세서는 제2 상태로 정의된 입자(710)에 움직임 모델을 적용할 수 있고, 도 7에서 프로세서는 각 입자를 중력에 기초하여 아래 방향으로 이동되도록 처리할 수 있다. 또한, 프로세서는 별도의 객체(750)에 접촉한 제2 상태의 입자(710)를 상태 전환 확률에 기초하여 제3 상태(예를 들어, 부 흐름 상태로서, 도 7에선 물 거품)의 입자(720)로 변경할 수 있다.For example, FIG. 7 illustrates a display 700 representing a virtual space in which a separate object 750 is present and a fluid is introduced and discharged. As shown in FIG. 7 , the processor may process so that particles forming the fluid are introduced from the inlet 791 and the fluid is discharged through the outlet 792 . In addition, the processor may define the introduced particles as a second state (eg, a main flow state, a stream of water in FIG. 7 ). The processor may apply a motion model to the particles 710 defined as the second state, and in FIG. 7 , the processor may process each particle to move downward based on gravity. In addition, the processor converts the particles 710 in the second state in contact with the separate object 750 to the particles in the third state (eg, as a secondary flow state, a water bubble in FIG. 7 ) based on the state transition probability ( 720) can be changed.

또한, 도 7에서 각 입자는 일정 크기 및 색상 톤을 가지는 원 또는 구의 형태로 설정되었으나, 이로 한정하는 것은 아니고, 설계에 따라 입자의 크기, 재질, 형태, 및 속성 등은 변경될 수 있다.In addition, although each particle is set in the form of a circle or a sphere having a predetermined size and color tone in FIG. 7 , the present invention is not limited thereto, and the size, material, shape, and property of the particles may be changed according to design.

다만, 도 7은 유체 흐름의 예시로서, 일 실시예에 따른 객체를 모델링하는 장치는, 유체뿐 아니라 다른 종류의 객체를 형성하는 입자를 처리하여 디스플레이할 수도 있다.However, FIG. 7 is an example of a fluid flow, and the apparatus for modeling an object according to an embodiment may process and display not only the fluid but also particles forming other types of objects.

도 8은 다른 일 실시예에 따라 객체를 모델링하는 방법을 도시한 흐름도이다.8 is a flowchart illustrating a method of modeling an object according to another exemplary embodiment.

일 실시예에 따르면, 도 8은 가상 공간 내로 유입된 입자가 배출될 때까지(예를 들어, 입자의 생성부터 소멸까지의 사이클 동안), 객체를 형성하는 입자를 처리하는 방법을 도시할 수 있다.According to one embodiment, FIG. 8 may show a method of processing particles that form an object, until particles that have entered the virtual space are discharged (eg, during a cycle from creation to extinction of particles). .

우선, 단계(810)에서 프로세서는 제1 상태의 입자들 중 적어도 일부를 제2 상태로 변경할 수 있다. 예를 들어, 프로세서는 제1 상태의 입자들 중 장면의 해당 프레임에 지정된 개수만큼의 입자를 제2 상태로 변경할 수 있다. 또한, 프로세서는 제2 상태로 변경된 입자에 움직임 모델을 적용할 수 있다. 프로세서는 제2 상태의 입자에 대해 입자의 크기, 재질, 형태, 및 속성 중 적어도 하나를 정의할 수 있다.First, in step 810 , the processor may change at least some of the particles in the first state to the second state. For example, the processor may change the number of particles specified in the corresponding frame of the scene among the particles in the first state to the second state. In addition, the processor may apply the motion model to the particle changed to the second state. The processor may define at least one of a size, a material, a shape, and an attribute of a particle in the second state.

그리고 단계(820)에서 프로세서는 제2 상태의 입자를 이용하여 객체를 생성할 수 있다. 다만, 이로 한정하는 것은 아니고, 프로세서는 제1 상태를 제외한 다른 상태의 입자가 존재하는 경우, 제1 상태가 아닌 다른 입자를 이용하여 객체를 생성할 수 있다. 예를 들어, 프로세서는 제2 상태의 입자 및 제3 상태의 입자를 이용하여 객체를 생성할 수 있다.And in step 820, the processor may create an object by using the particles in the second state. However, the present invention is not limited thereto, and when particles in a state other than the first state exist, the processor may create an object using particles other than the first state. For example, the processor may create an object using the particles in the second state and the particles in the third state.

이어서 단계(830)에서 프로세서는 제2 상태의 입자에 움직임 모델을 적용할 수 있다. 다만, 이로 한정하는 것은 아니고, 프로세서는 제1 상태를 제외한 다른 상태의 입자(예를 들어, 제3 상태)에도 움직임 모델을 적용할 수 있다.Then, in step 830, the processor may apply the motion model to the particles in the second state. However, the present invention is not limited thereto, and the processor may apply the motion model to particles in a state other than the first state (eg, a third state).

그리고 단계(840)에서 프로세서는 움직임 모델의 적용 결과에 따라, 제2 상태의 입자를 상태 전환 조건에 기초하여 제1 상태로 변경할 수 있다. 상태 전환 조건은 입자의 상태가 다른 상태로 변경되는 조건으로서, 제2 상태로부터 제3 상태 또는 제1 상태로 변경되는 조건, 제3 상태로부터 제1 상태로 변경되는 조건 등을 포함할 수 있다. 예를 들어, 상태 전환 조건은, 도 6에서 상술한 바와 같은 미리 정한 이벤트가 발생한 경우에 응답하여 상태 전환 확률에 기초하여 상태 전환 여부가 결정되는 조건, 및 하기 도 9에서 설명하는 바와 같이 가상 공간 내에서 특정 위치에 입자가 도달하면 해당 입자의 상태가 변경되는 조건 등을 포함할 수 있다. 다만, 상태 전환 조건을 상술한 바로 한정하는 것은 아니고, 설계에 따라 변경될 수 있다.In operation 840, the processor may change the particle in the second state to the first state based on a state transition condition according to a result of applying the motion model. The state transition condition is a condition in which the state of the particle is changed to another state, and may include a condition in which the state of the particle is changed from the second state to the third state or the first state, a condition in which the state is changed from the third state to the first state, and the like. For example, the state transition condition is a condition in which state transition is determined based on a state transition probability in response to the occurrence of a predetermined event as described above in FIG. 6 , and a virtual space as described in FIG. 9 below. When a particle arrives at a specific position in the , it may include a condition in which the state of the particle is changed. However, the state transition condition is not limited to the above, and may be changed according to design.

예를 들어, 프로세서는 제2 상태의 입자가 장면 내에서 미리 정한 공간에 도달한 경우에 응답하여, 입자를 제2 상태로부터 다른 상태(예를 들어, 제1 상태 또는 제3 상태 등)로 변경할 수 있다. 다른 예를 들어, 프로세서는 제2 상태의 입자와 다른 객체 간에 상호작용이 발생하는 경우에 응답하여, 제2 상태의 입자를 상태 전환 확률에 기초하여 다른 상태(예를 들어, 제1 상태 또는 제3 상태)로 변경할 수 있다.For example, the processor may change the particle from the second state to another state (eg, a first state or a third state, etc.) in response to the particle in the second state reaching a predetermined space within the scene. can For another example, in response to an interaction occurring between a particle in a second state and another object, the processor may change the particle in the second state to another state (eg, a first state or a second state based on a state transition probability). 3) can be changed.

도 9는 일 실시예에 따라 객체의 상태 전환이 발생하는 다른 예시를 도시한 도면이다.9 is a diagram illustrating another example in which a state transition of an object occurs, according to an embodiment.

예를 들어, 도 9에 도시된 디스플레이(900)는 유입구(991) 및 배출구(992)를 포함하고, 객체가 움직임 모델에 따라 이동 중인 가상 공간을 표현할 수 있다.For example, the display 900 illustrated in FIG. 9 may include an inlet 991 and an outlet 992 , and may represent a virtual space in which an object is moving according to a motion model.

일 실시예에 따르면, 프로세서는 제2 상태의 입자(920)가 장면 내에서 미리 정한 공간(960)에 도달한 경우에 응답하여, 입자를 제2 상태로부터 다른 상태로 변경할 수 있다. 예를 들어, 프로세서는 제2 상태의 입자(920)가 미리 정한 공간(960)에 도달하면 제3 상태의 입자(930)로 변경할 수 있다. 여기서, 미리 정한 공간(960)은 장면의 외곽 등과 같이 가상 공간 내에서 시각적으로 표현될 필요성이 적은 공간으로 설정될 수 있다. 다만, 이로 한정하는 것은 아니고, 프로세서는 제2 상태의 입자(920)가 배출구(992)에 대응하는 공간에 도달하면 제1 상태로 변경할 수도 있다. 또한, 프로세서는 제2 상태의 입자(920)가 장면 밖으로 배출되는 경우에도 제1 상태로 변경할 수 있다.According to one embodiment, the processor may change the particle from the second state to another state in response to the particle 920 in the second state reaching a predetermined space 960 within the scene. For example, when the particle 920 in the second state reaches the predetermined space 960 , the processor may change to the particle 930 in the third state. Here, the predetermined space 960 may be set as a space with little need to be visually expressed in a virtual space, such as the outside of a scene. However, the present invention is not limited thereto, and the processor may change to the first state when the particles 920 in the second state reach the space corresponding to the outlet 992 . Also, the processor may change to the first state even when the particles 920 in the second state are discharged out of the scene.

도 10은 일 실시예에 따라 시간의 경과에 따른 객체의 상태 전환을 도시한 도면이다.10 is a diagram illustrating a state transition of an object over time, according to an exemplary embodiment.

도 10에서는 상태 전환 조건 중 미리 정한 이벤트의 발생시 상태 전환 확률에 기초하여 입자의 상태를 변경하는 조건을 입자의 사이클에 따라 예시적으로 설명한다. 본 명세서에서 입자의 사이클은 입자가 가상 공간으로 유입되고 배출된 후 메모리 내의 제1 상태의 입자(410)가 차지하는 메모리 크기(491)에서 여분 상태로 존재하다가 다시 유입되기 전까지를 나타낼 수 있다.In FIG. 10 , a condition for changing a state of a particle based on a state transition probability when a predetermined event occurs among state transition conditions is exemplarily described according to a particle cycle. In the present specification, the cycle of particles may represent an extra state in the memory size 491 occupied by the particles 410 in the first state in the memory after the particles are introduced into and discharged from the virtual space until they are re-introduced.

우선, 프로세서는 임의의 입자를 제2 상태(이하, 주 흐름 상태(1010))로 설정할 수 있다. 여기서, 프로세서는 주 흐름 상태(1010)의 입자의 위치 및 속도 등을 초기화할 수 있다.First, the processor may set any particle to a second state (hereinafter, the main flow state 1010 ). Here, the processor may initialize the position and velocity of the particles in the main flow state 1010 .

그리고, 프로세서는 주 흐름 상태(1010)의 입자를 확률 PA->F에 기초하여 여분 상태의 입자(1090)로 변경할 수 있다. 또한, 프로세서는 다른 객체와 주 흐름 상태(1010)의 입자 간에 상호작용이 발생한 경우, 주 흐름 상태(1010)의 입자를 확률 PA->B에 기초하여 제1 부 흐름 상태(1021)로 변경할 수 있다. 프로세서는 주 흐름 상태(1010)의 입자들 간에 상호작용이 발생한 경우, 확률 PA->C에 기초하여 제2 부 흐름 상태(1022)로 변경할 수 있다.Then, the processor may change the particle in the main flow state 1010 to the particle 1090 in the redundant state based on the probability P A->F . In addition, the processor changes the particle in the main flow state 1010 to the first sub-flow state 1021 based on the probability P A->B when an interaction occurs between another object and the particle in the main flow state 1010 . can The processor may change to the second secondary flow state 1022 based on the probability P A->C when an interaction occurs between particles in the primary flow state 1010 .

이어서, 프로세서는 제1 부 흐름 상태(1021)의 입자를 확률 PB->F에 기초하여 여분 상태의 입자(1090)로 변경할 수 있다. 또한, 프로세서는 제1 부 흐름 상태(1021)의 입자를 확률 PB->C에 기초하여 제2 부 흐름 상태(1022)로 변경할 수 있다. 그리고 프로세서는 제2 부 흐름 상태(1022)의 입자를 확률 PC->F에 기초하여 여분 상태의 입자(1090)로 변경할 수 있다.The processor may then change the particle in the first sub-flow state 1021 to the particle 1090 in the redundant state based on the probability P B->F . Further, the processor may change the particle in the first sub-flow state 1021 to the second sub-flow state 1022 based on the probability P B->C . And the processor may change the particle in the second sub-flow state 1022 to the particle 1090 in the redundant state based on the probability P C->F .

마지막으로 프로세서는 여분 상태의 입자(1090)를 해당 프레임에 지정된 개수만큼 주 흐름 상태(1010)로 변경할 수 있다.Finally, the processor may change the particles 1090 in the redundant state to the main flow state 1010 by the number specified in the corresponding frame.

도 11은 일 실시예에 따라 통계 정보에 기초하여 상태 전환 조건을 조정하는 방법을 도시한 도면이다.11 is a diagram illustrating a method of adjusting a state transition condition based on statistical information according to an embodiment.

우선, 단계(1110)에서 프로세서는 장면 내에 입자를 유입시킬 수 있다. 예를 들어, 프로세서는 제1 상태의 입자들 중 지정된 개수의 입자를 제2 상태로 변경하고 위치 및 속도 등을 초기화할 수 있다.First, in step 1110 the processor may introduce particles into the scene. For example, the processor may change a specified number of particles among the particles in the first state to the second state and initialize a position and velocity.

그리고 단계(1120)에서 프로세서는 각 입자에 움직임 모델을 적용할 수 있다. 예를 들어, 프로세서는 제2 상태의 입자 및 제3 상태의 입자의 각각에 움직임 모델을 적용하여, 입자의 위치 및 속도 등을 변경할 수 있다. 제1 상태의 입자는 장면에 나타나지 않으므로, 프로세서는 제1 상태의 입자에 대해서는 움직임 모델의 적용을 배제할 수 있다.And in step 1120, the processor may apply a motion model to each particle. For example, the processor may apply a motion model to each of the particle in the second state and the particle in the third state to change the position and velocity of the particle. Since particles in the first state do not appear in the scene, the processor may preclude application of the motion model to particles in the first state.

또한 단계(1130)에서 프로세서는 입자들과 연관된 통계 정보를 모니터링할 수 있다. 또한, 프로세서는 실시간으로 각각의 입자들과 연관된 통계 정보를 모니터링할 수 있다. 예를 들어, 프로세서는 매 프레임마다 제1 상태의 입자의 개수 또는 제1 상태의 입자가 차지하는 메모리 크기를 모니터링할 수 있다.Also in step 1130 the processor may monitor statistical information associated with the particles. In addition, the processor may monitor statistical information associated with each particle in real time. For example, the processor may monitor the number of particles in the first state or the memory size occupied by the particles in the first state every frame.

그리고 단계(1140)에서 프로세서는 통계 정보를 임계값과 비교할 수 있다. 프로세서는 모니터링 된 통계 정보를 해당 통계 정보의 타입에 대해 설정된 임계값과 비교할 수 있다. 예를 들어, 프로세서는 제1 상태의 입자의 개수가 특정 개수보다 작은 지 여부를 판단할 수 있다. 다른 예를 들어, 프로세서는 제1 상태의 입자가 차지하는 메모리 크기가 특정 메모리 크기보다 작은 지 여부를 판단할 수 있다.And in step 1140, the processor may compare the statistical information with a threshold value. The processor may compare the monitored statistical information with a threshold value set for the type of the corresponding statistical information. For example, the processor may determine whether the number of particles in the first state is less than a specific number. For another example, the processor may determine whether the memory size occupied by the particles in the first state is smaller than a specific memory size.

이어서 단계(1150)에서 프로세서는 통계 정보가 임계값보다 작은 경우에 응답하여, 상태 전환 조건을 조정할 수 있다. 프로세서는 통계 정보가 임계값보다 작으면, 제1 상태로 전환되는 입자의 개수가 증가되도록 상태 전환 조건을 조정할 수 있다.Subsequently, in step 1150 , the processor may adjust the state transition condition in response to the statistical information being less than the threshold value. If the statistical information is less than the threshold value, the processor may adjust the state transition condition to increase the number of particles transitioned to the first state.

예를 들어, 프로세서는 제2 상태의 입자가 다른 상태로 변경되도록 설정된 공간의 장면 내 크기, 형태, 및 위치 중 적어도 하나를 조정할 수 있다. 상술한 도 9를 참조하면, 프로세서는 미리 정한 공간(960)의 크기를 증가시킴으로써, 제2 상태로부터 제3 상태로 전환되는 입자의 개수를 증가시킬 수 있다.For example, the processor may adjust at least one of a size, a shape, and a position in a scene of a space set such that the particles in the second state are changed to another state. Referring to FIG. 9 described above, the processor may increase the number of particles converted from the second state to the third state by increasing the size of the predetermined space 960 .

다른 예를 들어, 프로세서는 도 3의 단계(340)에서 상술한 바와 같이 제1 상태로의 전환 확률을 증가시킬 수도 있다. 프로세서는 제1 상태로의 전환 확률을 증가시킴으로써, 제3 상태로부터 제1 상태로 전환되는 입자의 개수를 증가시킬 수 있다.As another example, the processor may increase the transition probability to the first state as described above in step 340 of FIG. 3 . The processor may increase the number of particles transitioning from the third state to the first state by increasing the transition probability to the first state.

도 11에서는 설명의 편의상 단계(1150)를 단계(1120) 다음에 수행되는 것으로 도시하였으나 이로 한정하는 것은 아니고, 프로세서가 단계(1130)에서 통계 정보를 실시간으로 모니터링 하다가, 제1 상태의 입자 개수가 부족하면 단계(1150)의 동작을 바로 수행할 수 있다.11 shows that step 1150 is performed after step 1120 for convenience of explanation, but is not limited thereto, and while the processor monitors statistical information in real time in step 1130, the number of particles in the first state is If it is insufficient, the operation of step 1150 may be performed immediately.

그리고 단계(1160)에서 프로세서는 입자의 상태를 전환할 수 있다. 예를 들어, 프로세서는 움직임 모델의 적용 결과에 따라, 제2 상태의 입자를 상태 전환 조건에 기초하여 제3 상태 또는 제1 상태로 변경할 수 있다. 여기서, 프로세서는 제2 상태의 입자의 일부를 제2 상태로 유지할 수도 있다.And in step 1160, the processor may switch the state of the particle. For example, the processor may change the particle in the second state to the third state or the first state based on a state transition condition according to a result of applying the motion model. Here, the processor may maintain some of the particles in the second state in the second state.

이후, 프로세서는 제2 상태 및 제3 상태의 입자에 대해서는 단계(1120)으로 되돌아가 지속적으로 움직임 모델을 적용할 수 있다. 프로세서는 입자가 제2 상태 및 제3 상태를 유지하는 경우에 응답하여, 입자에 움직임 모델을 지속적으로 적용할 수 있다. 예를 들어, 상술한 단계(1160)에서 제3 상태로 변경된 입자에 대해, 프로세서는 단계(1120)에서 해당 제3 상태의 입자에 움직임 모델을 적용할 수 있다. 프로세서는 단계(1120)에서의 움직임 모델의 적용 결과에 따라, 단계(1160)에서 제3 상태의 입자를 상태 전환 조건에 기초하여 제1 상태로 변경할 수 있다.Thereafter, the processor may return to step 1120 to continuously apply the motion model to the particles in the second state and the third state. The processor may continuously apply the motion model to the particle in response to the particle maintaining the second state and the third state. For example, with respect to the particle changed to the third state in step 1160 , the processor may apply a motion model to the particle in the third state in step 1120 . The processor may change the particle in the third state to the first state in operation 1160 according to the result of applying the motion model in operation 1120 , based on the state transition condition.

또한, 프로세서는 제1 상태의 입자는 메모리 내의 제1 상태의 입자 풀(1190)에 저장할 수 있다. 제1 상태의 입자 풀(1190)에 저장된 제1 상태의 입자는 단계(1110)에서 장면으로 유입되기 위해 호출되기 전까지 메모리 내에 유지될 수 있다.Also, the processor may store the particles in the first state in the particle pool 1190 in the first state in the memory. Particles in the first state stored in the particle pool 1190 in the first state may be held in memory until they are called to be introduced into the scene in step 1110 .

도 12 및 도 13은 일 실시예에 따른 객체를 모델링하는 장치의 구성을 도시한 블럭도이다.12 and 13 are block diagrams illustrating a configuration of an apparatus for modeling an object according to an exemplary embodiment.

객체를 모델링하는 장치(1200)는 프로세서(1210) 및 메모리(1220)를 포함한다. 예를 들어, 객체를 모델링하는 장치(1200)는 스마트폰과 같은 모바일 기기, 및 데스크톱 PC와 같은 거치형 기기 등으로 구현될 수 있다.The apparatus 1200 for modeling an object includes a processor 1210 and a memory 1220 . For example, the device 1200 for modeling an object may be implemented as a mobile device such as a smart phone, a stationary device such as a desktop PC, or the like.

프로세서(1210)는 매 프레임마다 객체를 형성하는 복수의 입자들에 대해 각각의 상태와 상태 전환 확률을 정의하고, 복수의 입자들 중 제1 상태로 정의된 입자를 객체의 제2 상태로 변경하며, 복수의 입자들 중 제2 상태로 정의된 입자에 움직임 모델을 적용하고 상태 전환 확률에 기초하여 제1 상태로 변경할 수 있다.The processor 1210 defines respective states and state transition probabilities for a plurality of particles forming an object every frame, and changes a particle defined as a first state among the plurality of particles to a second state of the object, , a motion model may be applied to a particle defined as the second state among the plurality of particles and may be changed to the first state based on the state transition probability.

메모리(1220)는 입자들을 저장할 수 있다. 메모리(1220)는 각 상태의 입자들을 별도로 관리할 수 있다. 예를 들어, 메모리(1220)는 제1 상태의 입자에 대해 입자 풀을 생성하여 관리할 수 있는데, 프로세서(1210)가 제1 상태의 입자와 연관된 입자 풀의 크기를 유동적으로 조절할 수 있다. 다만, 이로 한정하는 것은 아니고, 프로세서(1210)는 다른 상태의 입자와 연관된 입자 풀도 생성하여 관리할 수 있다. 메모리(1220)는 미리 정한 메모리 크기로만 입자를 저장할 수 있고, 프로세서(1210)는 한정된 메모리 크기에 따라 결정되는 제한된 개수의 입자를 유동적으로 상태를 변경하면서 객체를 표현할 수 있다.Memory 1220 may store particles. The memory 1220 may separately manage particles in each state. For example, the memory 1220 may create and manage a particle pool for particles in the first state, and the processor 1210 may flexibly adjust the size of the particle pool associated with the particles in the first state. However, the present invention is not limited thereto, and the processor 1210 may also create and manage a particle pool associated with particles in different states. The memory 1220 may store particles only with a predetermined memory size, and the processor 1210 may express an object while dynamically changing states of a limited number of particles determined according to the limited memory size.

일 실시예에 따르면 객체를 모델링하는 장치(1200)는 디스플레이(1330)를 더 포함할 수 있다. 디스플레이(1330)는 제2 상태의 입자 및 제3 상태의 입자를 이용하여 객체를 표현할 수 있다.According to an embodiment, the apparatus 1200 for modeling an object may further include a display 1330 . The display 1330 may represent an object using particles in the second state and particles in the third state.

프로세서(1210), 메모리(1220), 및 디스플레이(1330)의 구체적인 동작은 도 1 내지 도 11에서 상술한 바와 같으므로 생략한다. 일 실시예에 따른 객체를 모델링하는 장치(1200)는 모바일 기기와 같이 하드웨어 자원이 제한적이고 사용자와의 상호작용이 빈번한 장치로 구현된 경우에도, 시뮬레이션의 복잡도가 높은 유체 흐름을 효과적으로 표현할 수 있다.Specific operations of the processor 1210 , the memory 1220 , and the display 1330 are the same as described above with reference to FIGS. 1 to 11 , and thus will be omitted. The apparatus 1200 for modeling an object according to an embodiment can effectively represent a fluid flow with high simulation complexity even when implemented as a device having limited hardware resources and frequent user interaction, such as a mobile device.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented as a hardware component, a software component, and/or a combination of the hardware component and the software component. For example, devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), It may be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that may include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the limited drawings as described above, various modifications and variations are possible by those skilled in the art from the above description. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

1200: 객체를 모델링하는 장치
1210: 프로세서
1220: 메모리
1330: 디스플레이
1200: a device for modeling an object
1210: processor
1220: memory
1330: display

Claims (40)

객체(object)를 형성하는 복수의 입자들(particles)에 대해 각각의 상태(state)와 상태 전환 확률(state transition probability)을 정의하는 단계;
상기 복수의 입자들 중 제1 상태로 정의된 입자를 객체의 제2 상태로 변경하는 단계; 및
상기 복수의 입자들 중 제2 상태로 정의된 입자에 움직임 모델(movement model)을 적용하고, 상기 상태 전환 확률에 기초하여 상기 제1 상태로 변경하는 단계
를 포함하고,
상기 제1 상태는,
가상 공간에 표현되지 않은 입자의 상태이고,
상기 제2 상태는,
상기 가상 공간에 표현되는 입자의 상태인,
가상 공간에서 객체를 모델링하는 방법.
defining each state and a state transition probability for a plurality of particles forming an object;
changing a particle defined as a first state among the plurality of particles to a second state of the object; and
applying a movement model to a particle defined as a second state among the plurality of particles, and changing to the first state based on the state transition probability;
including,
The first state is
It is the state of particles that are not expressed in virtual space,
The second state is
The state of particles expressed in the virtual space,
How to model objects in virtual space.
제1항에 있어서,
상기 제1 상태로 정의된 입자와 연관된 통계 정보에 기초하여, 상기 상태 전환 확률을 조정하는 단계
를 더 포함하는 가상 공간에서 객체를 모델링하는 방법.
According to claim 1,
adjusting the state transition probability based on statistical information associated with the particle defined as the first state;
A method of modeling an object in a virtual space that further includes
제2항에 있어서,
상기 상태 전환 확률을 조정하는 단계는,
상기 제1 상태로 정의된 입자가 차지하는 메모리 크기를 모니터링하는 단계; 및
상기 메모리 크기에 기초하여 상기 상태 전환 확률을 결정하는 단계
를 포함하는 가상 공간에서 객체를 모델링하는 방법.
3. The method of claim 2,
The step of adjusting the state transition probability comprises:
monitoring a memory size occupied by the particles defined as the first state; and
determining the state transition probability based on the memory size;
A method of modeling an object in a virtual space containing
제2항에 있어서,
상기 상태 전환 확률을 조정하는 단계는,
상기 통계 정보와 미리 정한 임계값을 비교하는 단계; 및
상기 비교한 결과에 기초하여 상기 상태 전환 확률을 결정하는 단계
를 포함하는 가상 공간에서 객체를 모델링하는 방법.
3. The method of claim 2,
The step of adjusting the state transition probability comprises:
comparing the statistical information with a predetermined threshold value; and
determining the state transition probability based on the comparison result
A method of modeling an object in a virtual space containing
제4항에 있어서,
상기 비교한 결과에 기초하여 상기 상태 전환 확률을 결정하는 단계는,
상기 통계 정보가 미리 정한 임계값보다 작은 경우에 응답하여, 상기 입자가 상기 제1 상태로 전환되는 확률을 증가시키는 단계; 및
상기 통계 정보가 미리 정한 임계값보다 크거나 같은 경우에 응답하여, 상기 입자가 상기 제1 상태로 전환되는 확률을 감소시키는 단계
를 포함하는 가상 공간에서 객체를 모델링하는 방법.
5. The method of claim 4,
The step of determining the state transition probability based on the comparison result includes:
in response to the statistical information being less than a predetermined threshold, increasing the probability of the particle transitioning to the first state; and
reducing the probability that the particle transitions to the first state in response to the statistical information being greater than or equal to a predetermined threshold.
A method of modeling an object in a virtual space containing
제1항에 있어서,
상기 제2 상태로 변경하는 단계는,
상기 제2 상태로 변경된 입자를 장면에서의 초기 위치 및 초기 속도로 초기화하는 단계
를 포함하는 가상 공간에서 객체를 모델링하는 방법.
According to claim 1,
The step of changing to the second state comprises:
Initializing the particles changed to the second state to an initial position and initial velocity in the scene;
A method of modeling an object in a virtual space containing
제6항에 있어서,
상기 제2 상태의 입자가 차지하는 메모리 크기를 유지하는 단계
를 더 포함하는 가상 공간에서 객체를 모델링하는 방법.
7. The method of claim 6,
maintaining a memory size occupied by the particles in the second state
A method of modeling an object in a virtual space that further includes
제1항에 있어서,
제2 상태로 정의된 입자에 움직임 모델을 적용하고, 상기 제2 상태로 정의된 입자를 상기 상태 전환 확률에 기초하여 제3 상태로 변경하는 단계; 및
제3 상태로 정의된 입자에 움직임 모델을 적용하고, 상기 제3 상태로 정의된 입자를 상기 상태 전환 확률에 기초하여 상기 제1 상태로 변경하는 단계
를 더 포함하는 가상 공간에서 객체를 모델링하는 방법.
According to claim 1,
applying a motion model to the particles defined in the second state, and changing the particles defined in the second state to a third state based on the state transition probability; and
applying a motion model to the particles defined in the third state, and changing the particles defined in the third state to the first state based on the state transition probability
A method of modeling an object in a virtual space that further includes
제8항에 있어서,
상기 제3 상태로 변경하는 단계는,
상기 제2 상태로 변경된 입자와 다른 객체 간에 상호작용이 발생하는 경우에 응답하여, 상기 제2 상태로 변경된 입자를 상기 상태 전환 확률에 기초하여 상기 제3 상태로 변경하는 단계
를 포함하는 가상 공간에서 객체를 모델링하는 방법.
9. The method of claim 8,
The step of changing to the third state is
In response to an interaction occurring between the particle changed to the second state and another object, changing the particle changed to the second state to the third state based on the state transition probability;
A method of modeling an object in a virtual space containing
제1항에 있어서,
각각의 입자에 대해 입자의 크기, 재질, 형태, 및 속성 중 적어도 하나를 정의하는 단계
를 더 포함하는 가상 공간에서 객체를 모델링하는 방법.
According to claim 1,
defining for each particle at least one of a size, material, shape, and property of the particle;
A method of modeling an object in a virtual space that further includes
제1항에 있어서,
상기 복수의 입자들 중 제1 상태로 정의된 입자를 객체의 제2 상태로 변경하는 단계는,
장면(scene)의 해당 프레임에 지정된 개수만큼의 상기 제1 상태로 정의된 입자를 상기 제2 상태로 변경하는 단계
를 포함하는 가상 공간에서 객체를 모델링하는 방법.
According to claim 1,
Changing the particle defined as the first state among the plurality of particles to the second state of the object comprises:
changing the number of particles defined in the first state to the second state by a specified number in a corresponding frame of a scene;
A method of modeling an object in a virtual space containing
제1항에 있어서,
상기 입자를 이용하여 상기 객체를 디스플레이하는 단계
를 더 포함하는 가상 공간에서 객체를 모델링하는 방법.
According to claim 1,
displaying the object using the particles
A method of modeling an object in a virtual space that further includes
제1항에 있어서,
상기 객체는 가상 공간 상에 표현되는 유체이고,
상기 복수의 입자들은 상기 유체를 형성하는,
가상 공간에서 객체를 모델링하는 방법.
According to claim 1,
The object is a fluid expressed in a virtual space,
wherein the plurality of particles form the fluid;
How to model objects in virtual space.
제1항에 있어서,
상기 제1 상태는,
상기 입자가 장면에서의 표현이 종료된 후에 메모리에 임시적으로 위치하는 상태인,
가상 공간에서 객체를 모델링하는 방법.
According to claim 1,
The first state is
a state in which the particles are temporarily located in memory after their representation in the scene is finished;
How to model objects in virtual space.
제1항에 있어서,
상기 제2 상태는,
가상 공간 내에서 유체의 대표적인 흐름을 형성하는 입자들의 상태인,
가상 공간에서 객체를 모델링하는 방법.
According to claim 1,
The second state is
A state of particles that form a representative flow of a fluid in virtual space,
How to model objects in virtual space.
제8항에 있어서,
상기 제3 상태는,
상기 제2 상태로부터 전환되어 유체의 부수적인 흐름을 형성하는 입자들의 상태인,
가상 공간에서 객체를 모델링하는 방법.
9. The method of claim 8,
The third state is
a state of particles transitioning from the second state to form a concomitant flow of fluid;
How to model objects in virtual space.
하드웨어와 결합되어 제1항 내지 제16항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.17. A computer program stored on a medium in combination with hardware to execute the method of any one of claims 1 to 16. 제1 상태(first state)의 입자들 중 적어도 일부를 제2 상태(second state)로 변경하는 단계;
상기 제2 상태의 입자를 이용하여 객체를 생성하는 단계;
상기 제2 상태의 입자에 움직임 모델(movement model)을 적용하는 단계; 및
상기 움직임 모델의 적용 결과에 따라, 상기 제2 상태의 입자를 상태 전환 조건에 기초하여 제1 상태로 변경하는 단계
를 포함하고,
상기 제1 상태는,
가상 공간에 표현되지 않은 입자의 상태이고,
상기 제2 상태는,
상기 가상 공간에 표현되는 입자의 상태인,
가상 공간에서 객체를 모델링하는 방법.
changing at least some of the particles in a first state to a second state;
generating an object using the particles in the second state;
applying a movement model to the particles in the second state; and
changing the particles in the second state to a first state based on a state transition condition according to a result of applying the motion model;
including,
The first state is
It is the state of particles that are not expressed in virtual space,
The second state is
The state of particles expressed in the virtual space,
How to model objects in virtual space.
제18항에 있어서,
상기 제2 상태의 입자가 장면 내에서 미리 정한 공간에 도달한 경우에 응답하여, 상기 입자를 상기 제2 상태로부터 다른 상태로 변경하는 단계
를 더 포함하는 가상 공간에서 객체를 모델링하는 방법.
19. The method of claim 18,
in response to the particle in the second state reaching a predetermined space within a scene, changing the particle from the second state to another state;
A method of modeling an object in a virtual space that further includes
제18항에 있어서,
상기 제2 상태의 입자와 다른 객체 간에 상호작용이 발생하는 경우에 응답하여, 상기 제2 상태의 입자를 상태 전환 확률에 기초하여 다른 상태로 변경하는 단계
를 더 포함하는 가상 공간에서 객체를 모델링하는 방법.
19. The method of claim 18,
in response to an interaction occurring between the particle in the second state and another object, changing the particle in the second state to another state based on a state transition probability;
A method of modeling an object in a virtual space that further includes
제18항에 있어서,
입자들과 연관된 통계 정보를 모니터링하는 단계; 및
상기 통계 정보에 기초하여, 상기 상태 전환 조건을 조정하는 단계
를 더 포함하는 가상 공간에서 객체를 모델링하는 방법.
19. The method of claim 18,
monitoring statistical information associated with the particles; and
adjusting the state transition condition based on the statistical information
A method of modeling an object in a virtual space that further includes
제21항에 있어서,
상기 상태 전환 조건을 조정하는 단계는,
상기 통계 정보와 미리 정한 임계값을 비교하는 단계; 및
상기 비교한 결과에 기초하여 상기 상태 전환 조건을 조정하는 단계
를 포함하는 가상 공간에서 객체를 모델링하는 방법.
22. The method of claim 21,
Adjusting the state transition condition comprises:
comparing the statistical information with a predetermined threshold value; and
adjusting the state transition condition based on the comparison result
A method of modeling an object in a virtual space containing
제21항에 있어서,
상기 상태 전환 조건을 조정하는 단계는,
상기 제2 상태의 입자가 다른 상태로 변경되도록 설정된 공간의 장면 내 크기, 형태, 및 위치 중 적어도 하나를 조정하는 단계
를 포함하는 가상 공간에서 객체를 모델링하는 방법.
22. The method of claim 21,
Adjusting the state transition condition comprises:
adjusting at least one of a size, a shape, and a location in a scene of a space set so that the particles in the second state are changed to another state
A method of modeling an object in a virtual space containing
제18항에 있어서,
상기 입자가 상기 제2 상태를 유지하는 경우에 응답하여, 상기 입자에 상기 움직임 모델을 지속적으로 적용하는 단계
를 더 포함하는 가상 공간에서 객체를 모델링하는 방법.
19. The method of claim 18,
continuously applying the motion model to the particle in response to the particle maintaining the second state.
A method of modeling an object in a virtual space that further includes
제18항에 있어서,
상기 움직임 모델의 적용 결과에 따라, 상기 제2 상태의 입자를 상태 전환 조건에 기초하여 제3 상태로 변경하는 단계;
상기 제3 상태의 입자에 움직임 모델을 적용하는 단계; 및
상기 움직임 모델의 적용 결과에 따라, 상기 제3 상태의 입자를 상기 상태 전환 조건에 기초하여 상기 제1 상태로 변경하는 단계
를 더 포함하고,
상기 제2 상태의 입자를 이용하여 객체를 생성하는 단계는,
상기 제2 상태의 입자 및 상기 제3 상태의 입자를 이용하여 객체를 생성하는 단계
를 포함하는 가상 공간에서 객체를 모델링하는 방법.
19. The method of claim 18,
changing the particles in the second state to a third state based on a state transition condition according to a result of applying the motion model;
applying a motion model to the particles in the third state; and
changing the particles in the third state to the first state based on the state transition condition according to a result of applying the motion model;
further comprising,
Creating an object using the particles in the second state comprises:
Creating an object using the particles in the second state and the particles in the third state
A method of modeling an object in a virtual space containing
제18항에 있어서,
상기 제1 상태의 입자들 중 적어도 일부를 제2 상태로 변경하는 단계는,
상기 제1 상태의 입자들 중 장면(scene)의 해당 프레임에 지정된 개수만큼의 입자를 제2 상태로 변경하는 단계; 및
상기 제2 상태로 변경된 입자를 장면에서의 초기 위치 및 초기 속도로 초기화하는 단계
를 포함하는 가상 공간에서 객체를 모델링하는 방법.
19. The method of claim 18,
Changing at least some of the particles in the first state to the second state comprises:
changing the number of particles specified in a corresponding frame of a scene among the particles in the first state to a second state; and
Initializing the particles changed to the second state to an initial position and initial velocity in the scene;
A method of modeling an object in a virtual space containing
제18항에 있어서,
상기 제1 상태의 입자들 중 적어도 일부를 제2 상태로 변경하는 단계는,
상기 제2 상태의 입자에 대해 입자의 크기, 재질, 형태, 및 속성 중 적어도 하나를 정의하는 단계
를 포함하는 가상 공간에서 객체를 모델링하는 방법.
19. The method of claim 18,
Changing at least some of the particles in the first state to the second state comprises:
defining at least one of a size, material, shape, and property of a particle for the particle in the second state
A method of modeling an object in a virtual space containing
제18항에 있어서,
상기 제2 상태의 입자가 차지하는 메모리 크기를 유지하는 단계
를 더 포함하는 가상 공간에서 객체를 모델링하는 방법.
19. The method of claim 18,
maintaining a memory size occupied by the particles in the second state
A method of modeling an object in a virtual space that further includes
제18항에 있어서,
상기 입자를 이용하여 상기 객체를 디스플레이하는 단계
를 더 포함하는 가상 공간에서 객체를 모델링하는 방법.
19. The method of claim 18,
displaying the object using the particles
A method of modeling an object in a virtual space that further includes
하드웨어와 결합되어 제18항 내지 제29항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.A computer program stored on a medium for executing the method of any one of claims 18 to 29 in combination with hardware. 유체를 형성하는 복수의 입자들을 가상공간에 표현되지 않을 제1 상태와 상기 가상공간에 표현될 제2 상태 및 제3 상태로 나누는 단계;
상기 제2 상태 및 상기 제3 상태의 입자들에 움직임 모델을 적용하는 단계; 및
상기 움직임 모델이 적용된 상기 제2 상태 및 상기 제3 상태의 입자들을 이용하여 상기 가상공간에 상기 유체를 표현하는 단계
를 포함하고,
상기 제1 상태는,
가상 공간에 표현되지 않은 입자의 상태이고,
상기 제2 상태는,
상기 가상 공간에 표현되는 입자의 상태인,
가상 공간에서 객체 모델링 방법.
dividing the plurality of particles forming the fluid into a first state not to be expressed in the virtual space, and a second state and a third state to be expressed in the virtual space;
applying a motion model to the particles in the second state and the third state; and
Expressing the fluid in the virtual space using the particles in the second state and the third state to which the motion model is applied.
including,
The first state is
It is the state of particles that are not expressed in virtual space,
The second state is
The state of particles expressed in the virtual space,
How to model objects in virtual space.
제31항에 있어서,
상기 제2 상태의 입자들이 차지하는 메모리 크기를 일정하게 유지하는,
가상 공간에서 객체 모델링 방법.
32. The method of claim 31,
maintaining a constant memory size occupied by the particles in the second state,
How to model objects in virtual space.
제31항에 있어서,
상기 제1 상태의 입자들이 차지하는 메모리 크기를 유동적으로 유지하는,
가상 공간에서 객체 모델링 방법.
32. The method of claim 31,
maintaining a memory size occupied by the particles in the first state in a flexible manner,
How to model objects in virtual space.
제31항에 있어서,
상기 제3 상태의 입자들이 차지하는 메모리 크기를 유동적으로 유지하는,
가상 공간에서 객체 모델링 방법.
32. The method of claim 31,
maintaining the memory size occupied by the particles in the third state in a flexible manner,
How to model objects in virtual space.
제31항에 있어서,
상기 제1 상태 및 상기 제3 상태의 입자들이 차지하는 메모리 크기의 합을 일정하게 유지하는,
가상 공간에서 객체 모델링 방법.
32. The method of claim 31,
maintaining a constant sum of the memory sizes occupied by the particles in the first state and the third state,
How to model objects in virtual space.
제31항에 있어서,
상기 제1 상태, 상기 제2 상태, 및 상기 제3 상태의 입자들이 차지하는 메모리 크기의 합을 일정하게 유지하는,
가상 공간에서 객체 모델링 방법.
32. The method of claim 31,
maintaining the sum of the memory sizes occupied by the particles of the first state, the second state, and the third state constant;
How to model objects in virtual space.
제31항에 있어서,
상기 제1 상태의 입자들의 개수를 일정하게 유지하는,
가상 공간에서 객체 모델링 방법.
32. The method of claim 31,
keeping the number of particles in the first state constant,
How to model objects in virtual space.
제31항에 있어서,
상기 제1 상태, 상기 제2 상태, 및 상기 제3 상태의 입자들 개수의 합을 일정하게 유지하는,
가상 공간에서 객체 모델링 방법.
32. The method of claim 31,
maintaining a constant sum of the number of particles in the first state, the second state, and the third state,
How to model objects in virtual space.
제31항에 있어서,
상기 제2 상태는 상기 유체의 대표적인 흐름을 나타내는 상태인,
가상 공간에서 객체 모델링 방법.
32. The method of claim 31,
wherein the second state is a state representative of the flow of the fluid;
How to model objects in virtual space.
제31항에 있어서,
상기 제3 상태는 상기 유체의 부수적인 흐름을 나타내는 상태인,
가상 공간에서 객체 모델링 방법.
32. The method of claim 31,
wherein the third state is a state indicative of the concomitant flow of the fluid;
How to model objects in virtual space.
KR1020150155935A 2015-10-01 2015-11-06 Method and device for modeling an object KR102437374B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016043356A JP2017068817A (en) 2015-10-01 2016-03-07 Method and apparatus for modeling object
US15/241,395 US10755004B2 (en) 2015-10-01 2016-08-19 Method and apparatus for modeling object
CN201610829397.4A CN106560818B (en) 2015-10-01 2016-09-18 Method for modelling an object in a virtual space
EP16191878.4A EP3151200B1 (en) 2015-10-01 2016-09-30 Method and apparatus for modeling object

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20150138736 2015-10-01
KR1020150138736 2015-10-01

Publications (2)

Publication Number Publication Date
KR20170039545A KR20170039545A (en) 2017-04-11
KR102437374B1 true KR102437374B1 (en) 2022-08-30

Family

ID=58580779

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150155935A KR102437374B1 (en) 2015-10-01 2015-11-06 Method and device for modeling an object

Country Status (1)

Country Link
KR (1) KR102437374B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102286160B1 (en) * 2019-12-12 2021-08-05 한국과학기술원 Method and apparatus of providing tactile feedback
KR102286161B1 (en) * 2019-12-12 2021-08-05 한국과학기술원 Method and apparatus of providing tactile feedback

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100915523B1 (en) * 2007-12-17 2009-09-04 한국전자통신연구원 Method for collision response between particle and object in particle system
TW200945249A (en) * 2008-04-28 2009-11-01 Inst Information Industry Method for rendering fluid
KR101214903B1 (en) * 2011-03-04 2012-12-24 (주)에프엑스기어 System and method for fluid simulation using interaction between particles
KR101319996B1 (en) * 2011-12-30 2013-10-18 세종대학교산학협력단 Method for simulating fluid
KR102205845B1 (en) * 2013-10-28 2021-01-22 삼성전자주식회사 Method and apparatus for modeling based on particles

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jean-Yves, et al., "A Generic Mean Field Convergence Result for Systems of Interacting Objects", 4th International Conference on the Quantitative Evaluation of Systems(2007)*
Lipeng Yang, et al., "Hybrid Particle-grid Modeling for Multi-scale Droplet/Spray Simulation", Pacific Graphics Vol.33(2014)*

Also Published As

Publication number Publication date
KR20170039545A (en) 2017-04-11

Similar Documents

Publication Publication Date Title
US8452721B2 (en) Region of interest tracking for fluid simulation
US20170154461A1 (en) 3d face modeling methods and apparatuses
US8065127B2 (en) Particle system architecture in a multi-body physics simulation
JP6972135B2 (en) Devices and methods for generating dynamic virtual content in mixed reality
US10255711B2 (en) System and method for providing contents by merging layers of page to which motion effect is set
US10467794B2 (en) Techniques for generating dynamic effects animations
US20200388086A1 (en) Blend shape system with dynamic partitioning
JP6458501B2 (en) Simulation program, simulation method, and simulation apparatus
KR102437374B1 (en) Method and device for modeling an object
US10755446B2 (en) System and method for providing contents using automatic margin creation
CN106951067A (en) The generation method and equipment of a kind of virtual reality scenario
KR20200063238A (en) How to control wave generation with dynamic resource allocation
KR102459848B1 (en) Modeling method and modeling apparatus of target object at high speed based on particles
JP6663183B2 (en) Method and apparatus for modeling objects
KR20170067374A (en) Method and apparatus for modeling movement of air bubble based on fluid particle
CN106560818B (en) Method for modelling an object in a virtual space
US11093117B2 (en) Method for controlling animation's process running on electronic devices
Hesham et al. Context-sensitive personal space for dense crowd simulation
Hesham et al. Centroidal particles for interactive crowd simulation.
KR20120110439A (en) Device and method for generating foam particle
CN106527908A (en) Realization method and apparatus for stretch springing animation in application interface
Hesham et al. Explicit modeling of personal space for improved local dynamics in simulated crowds
Djado et al. Particle‐based drop animation on meshes in real time
KR102078375B1 (en) Method and apparatus for processing image
Forootaninia Guiding simulations of highly dynamic phenomena

Legal Events

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