KR102047615B1 - 입자 시스템을 위한 처리 방법 및 장치 - Google Patents

입자 시스템을 위한 처리 방법 및 장치 Download PDF

Info

Publication number
KR102047615B1
KR102047615B1 KR1020187018114A KR20187018114A KR102047615B1 KR 102047615 B1 KR102047615 B1 KR 102047615B1 KR 1020187018114 A KR1020187018114 A KR 1020187018114A KR 20187018114 A KR20187018114 A KR 20187018114A KR 102047615 B1 KR102047615 B1 KR 102047615B1
Authority
KR
South Korea
Prior art keywords
particle
target
particles
particle system
information
Prior art date
Application number
KR1020187018114A
Other languages
English (en)
Other versions
KR20180087356A (ko
Inventor
샤오페이 마
Original Assignee
텐센트 테크놀로지(센젠) 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 filed Critical 텐센트 테크놀로지(센젠) 컴퍼니 리미티드
Publication of KR20180087356A publication Critical patent/KR20180087356A/ko
Application granted granted Critical
Publication of KR102047615B1 publication Critical patent/KR102047615B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)

Abstract

입자 시스템을 위한 처리 방법, 및 처리 디바이스. 본 처리 방법은, CPU에 의해 전송되는 타겟 입자 시스템의 종합적인 속성 정보를 수신하는 단계(S101)- 타겟 입자 시스템의 종합적인 속성 정보는 입자 디스플레이 범위, 입자 수명 범위, 입자 속도 범위, 및 생성 시간을 포함함 -; 타겟 입자 시스템의 종합적인 속성 정보에 따라, 타겟 입자 시스템의 입자들을 생성하고, 타겟 입자 시스템의 각각의 입자의 입자 속성들을 초기화하는 단계(S102)- 입자의 입자 속성들은 위치 정보, 속도 정보, 수명 길이 및 생성 시간을 포함함 -; 및 타겟 입자 시스템의 각각의 입자의 입자 속성들에 따라, 타겟 입자 시스템의 입자들을 디스플레이하는 단계(S103)를 포함한다. 본 발명의 처리 방법 및 처리 디바이스는 입자 시스템의 처리 효율을 향상시킬 수 있다.

Description

입자 시스템을 위한 처리 방법 및 장치
<관련된 출원>
본 출원은 2016년 5월 16일자로 중국 특허청에 출원된 "PROCESSING METHOD AND DEVICE FOR PARTICLE SYSTEM"이라는 명칭의 중국 특허 출원 제201610324183.1호에 대한 우선권을 주장하고, 이는 그 전부가 참조로 원용된다.
<기술 분야>
본 출원은 컴퓨터 그래픽 기술의 분야에, 특히, 입자 시스템을 위한 처리 방법 및 장치에 관한 것이다.
연기, 불, 구름, 안개, 또는 폭포와 같은 불규칙 현상의 특징적 효과의 시각적 시뮬레이션은 컴퓨터 그래픽에서 매우 도전적인 연구 주제이다. 구체적인 형상 및 특징적 효과는 종래의 모델링 방법을 사용하여 실제로 묘사되기 매우 어렵다.
요즘에는, 이러한 불규칙 현상의 특징적 효과를 제시하는데 입자 시스템이 주로 사용되고, 이러한 입자 시스템은 복잡한 모션 시스템을 시뮬레이션할 수 있다. 입자 시스템에서 입자들의 위치 업데이트, 죽음 검출 등은 CPU(central processing unit)에 의해 처리될 필요가 있고, GPU(graphics processing unit)는 이러한 처리 결과에 따라 입자 시스템에서 입자들을 디스플레이한다. 이러한 프로세스는 CPU의 많은 시간을 소비할 수 있다. 한편, CPU의 처리 프로세스에서, GPU는 잠금 대기 상태에 있을 필요가 있다. CPU가 입자들을 생성하고 위치들을 업데이트한 이후, CPU에 의해 업데이트되는 데이터에 따라 GPU가 입자들을 디스플레이할 수 있다. 결과적으로, 처리 효율이 낮다.
본 출원의 실시예들은 입자 시스템을 위한 처리 방법 및 장치를 제공하여, 입자 시스템의 처리 효율을 향상시킨다.
본 출원의 실시예는 입자 시스템을 위한 처리 방법을 제공하고, 이는,
CPU에 의해 전송되는 타겟 입자 시스템의 일반적인 속성 정보를 수신하는 단계- 타겟 입자 시스템의 일반적인 속성 정보는 입자 디스플레이 범위, 입자 수명 주기 범위, 입자 속도 범위, 및 생성 시간을 포함함 -;
타겟 입자 시스템의 일반적인 속성 정보에 따라 타겟 입자 시스템의 입자들을 생성하고 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하는 단계- 각각의 입자의 입자 속성들은 해당 입자의 위치 정보, 속도 정보, 수명 주기 및 생성 시간을 포함함 -; 및
타겟 입자 시스템에서 입자들의 입자 속성들에 따라 타겟 입자 시스템의 입자들을 디스플레이하는 단계를 포함한다.
이에 대응하여, 본 출원의 실시예는 입자 시스템을 위한 처리 장치를 추가로 제공하고, 이는,
GPU(graphics processing unit);
GPU에 접속되는 메모리- 메모리는 일반적인 속성 정보 수신 모듈, 입자 속성 초기화 모듈, 및 입자 디스플레이 모듈을 포함하는 복수의 명령어 모듈들을 저장하고; 명령어 모듈들이 GPU에 의해 실행될 때, 이하의 동작들이 수행됨 -를 포함하고:
일반적인 속성 정보 수신 모듈은 CPU에 의해 전송되는 타겟 입자 시스템의 일반적인 속성 정보를 수신하도록 구성되고;
입자 속성 초기화 모듈은, 타겟 입자 시스템의 일반적인 속성 정보에 따라 타겟 입자 시스템의 입자들을 생성하도록 그리고 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하도록 구성되고- 각각의 입자의 입자 속성들은 해당 입자의 위치 정보, 속도 정보, 수명 주기 및 생성 시간을 포함함 -;
입자 디스플레이 모듈은 타겟 입자 시스템에서 입자들의 입자 속성들에 따라 타겟 입자 시스템의 입자들을 디스플레이하도록 구성된다.
본 출원의 실시예는 비-휘발성 머신 판독 가능 저장 매체를 추가로 제공하고, 이러한 저장 매체는 머신 판독 가능 명령어들을 저장하고, 이러한 머신 판독 가능 명령어들은 GPU(graphics processing unit)에 의해 실행되어,
CPU(central processing unit)에 의해 전송되는 타겟 입자 시스템의 일반적인 속성 정보를 수신하는 동작- 타겟 입자 시스템의 일반적인 속성 정보는 입자 디스플레이 범위, 입자 수명 주기 범위, 입자 속도 범위, 및 생성 시간을 포함함 -;
타겟 입자 시스템의 일반적인 속성 정보에 따라 타겟 입자 시스템의 입자들을 생성하고 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하는 동작- 각각의 입자의 입자 속성들은 해당 입자의 위치 정보, 속도 정보, 수명 주기 및 생성 시간을 포함함 -; 및
타겟 입자 시스템에서 입자들의 입자 속성들에 따라 타겟 입자 시스템의 입자들을 디스플레이하는 동작을 수행한다.
본 출원의 실시예들에 따르면, GPU는 CPU에 의해 전송되는 입자 시스템의 일반적인 속성 정보를 수신한 이후 입자들을 생성하고, 생성된 입자들을 디스플레이하고 수명 주기를 관리한다. 본 출원의 실시예들에 따르면, GPU와 CPU 사이의 데이터 송신이 크게 감소되고, CPU의 데이터 송신을 대기하는 GPU의 시간들 및 빈도가 감소되고, 그렇게 함으로써 입자 시스템의 처리 효율을 향상시킨다.
본 출원의 실시예들에서의 또는 기존의 기술에서의 기술적 해결책들을 보다 명확하게 설명하기 위해, 이하는 실시예들 또는 기존의 기술들을 설명하기 위해 요구되는 첨부 도면들을 간단하게 설명한다. 명백히, 이하의 설명에서의 첨부 도면들은 단지 본 출원의 일부 실시예들을 도시하고, 해당 분야에서의 통상의 기술자는 창의적인 노력들 없이도 이러한 첨부 도면들로부터 다른 도면들을 여전히 도출할 수 있다.
도 1은 본 출원의 실시예에 따른 입자 시스템을 위한 처리 방법의 개략적인 흐름도이다.
도 2는 본 출원의 실시예에 따른 입자 시스템에 의해 디스플레이되는 패턴 효과의 개략적인 도면이다.
도 3은 본 출원의 실시예에 따른 입자 시스템에 의해 디스플레이되는 텍스트 효과의 개략적인 도면이다.
도 4는 본 출원의 실시예에 따른 구체적인 게임 시나리오와 조합되는 입자 시스템의 디스플레이 효과의 개략적인 도면이다.
도 5는 본 출원의 다른 실시예에 따른 입자 시스템을 위한 처리 방법의 개략적인 흐름도이다.
도 6은 본 출원의 다른 실시예에 따른 입자 시스템을 위한 처리 방법의 개략적인 흐름도이다.
도 7은 본 출원의 다른 실시예에 따른 입자 시스템을 위한 처리 방법의 개략적인 흐름도이다.
도 8은 본 출원의 실시예에 따른 버디 알고리즘의 개략적인 구조도이다.
도 9는 본 출원의 실시예에 따른 입자 시스템의 할당 인터페이스의 개략적인 도면이다.
도 10은 본 출원의 실시예에 따른 입자 시스템을 위한 처리 장치의 개략적인 구조도이다.
도 11은 본 출원의 실시예에 따른 입자 속성 업데이트 모듈의 개략적인 구조도이다.
도 12는 B/W 디지털 이미지에 따라 CPU에 의해 생성되고 본 출원의 실시예에 따라 GPU에 전송되는 컬러 이미지의 개략적인 도면이다.
도 13은 본 출원의 다른 실시예에 따른 입자 시스템을 위한 처리 장치의 개략적인 구조도이다.
본 출원의 목적들, 기술적 해결책들, 및 이점들을 명확하게 하기 위해, 이하는 첨부 도면들을 참조하여 본 출원을 상세히 추가로 설명한다.
본 출원의 실시예들에서의 입자 시스템을 위한 처리 방법 및 장치는 컴퓨터 시스템에서 GPU를 사용하여 구현될 수 있거나, GPU의 것과 유사한 기능을 갖고 컴퓨터 시스템에 있는 기능적 아키텍처를 사용하여 구현될 수 있다. 개략적으로, 이하는 GPU를 본 출원의 실시예들에서의 실행 주체로서 사용하여 본 출원의 구현들을 설명한다. 다른 실시예의 컴퓨터 시스템의 기능적 아키텍처에서, 본 출원의 실시예들에서의 대응하는 단계들은 대안적으로 다른 기능적 구조 모듈들에 의해 구현될 수 있다.
도 1은 본 출원의 실시예에 따른 입자 시스템을 위한 처리 방법의 개략적인 흐름도이다. 도면에 도시되는 바와 같이, 본 방법은 적어도 이하의 단계들을 포함한다:
S101: CPU에 의해 전송되는 타겟 입자 시스템의 일반적인 속성 정보를 수신함.
구체적으로, 본 출원의 본 실시예에서의 입자 시스템은 그래픽 디스플레이 클래스이고, 불규칙 퍼지 오브젝트 또는 형상을 효과적으로 시뮬레이션하는데 사용된다. 예를 들어, 입자 시스템은 스크린 상에 불꽃을 시뮬레이션하고 디스플레이하는데 사용되고, 다른 입자 시스템은 스크린 상에 항상 변화하는 상태를 갖는 일련의 캐릭터들을 시뮬레이션하고 디스플레이하는데 사용된다. 타겟 입자 시스템은 타겟 텍스처를 렌더링하도록 구성되는 시스템이다. 입자 시스템에서, 불규칙 오브젝트는 랜덤하게 분포되는 많은 수량의 불규칙 입자들을 포함하는 것으로서 정의되고, 각각의 입자는 수명 주기를 갖는다. 이러한 입자들은 그들의 위치들을 계속 변경하고 이동하여, 불규칙 오브젝트의 특성들을 충분히 제시한다. 본 출원의 본 실시예에서, CPU는 입자 시스템의 일반적인 속성 데이터를 GPU에 송신한다. 이러한 일반적인 속성 데이터는 입자 시스템에서 모든 입자들의 속성들의 값 범위들을 포함하고, 단일 입자의 속성들을 포함할 필요는 없다. 송신되는 데이터는 입자들의 수량이 증가하는 만큼 증가할 수 없다. 입자 시스템의 일반적인 속성 정보는 입자 디스플레이 범위(셰이더 방출 위치 및 범위), 입자 수명 주기 범위, 입자 속도 범위, 및 생성 시간을 포함한다. 본 실시예에서, CPU는 타겟 입자 시스템의 일반적인 속성 정보를 GPU의 상수 레지스터에 송신할 수 있다.
일부 실시예들에서, 일반적인 속성 정보는 타겟 입자 시스템의 주요 프레임 데이터를 추가로 포함할 수 있거나, 또는 타겟 입자 시스템의 패턴 정보를 포함할 수 있다. 이러한 정보는 입자 시스템의 입자들의 입자 속성들을 초기화하는데 사용되거나, 또는 타겟 입자 시스템의 입자들의 입자 속성들을 후속하여 업데이트하는데 사용된다. 타겟 입자 시스템의 주요 프레임 데이터는 적어도 하나의 주요 프레임의 대응하는 시간에서의 디스플레이 오브젝트 위치, 변경 속력 또는 디스플레이 컬러를 포함한다. 타겟 입자 시스템의 패턴 정보는 각각의 픽셀의 초기 픽셀 위치 정보 및 생성 시간을 운반한다.
일부 실시예들에서, CPU는 타겟 입자 시스템의 일반적인 속성 정보를 GPU에 주기적으로 전송할 수 있고, 일반적인 속성 정보는 GPU에 의해 타겟 입자 시스템의 입자들의 입자 속성들을 후속하여 업데이트하는데 사용된다.
S102: 타겟 입자 시스템의 일반적인 속성 정보에 따라 타겟 입자 시스템의 입자들을 생성하고 타겟 입자 시스템의 입자들의 입자 속성들을 초기화함. 각각의 입자의 입자 속성들은 해당 입자의 위치 정보, 속도 정보, 수명 주기 및 생성 시간을 포함한다.
구체적으로, 타겟 입자 시스템의 일반적인 속성 정보에서의 입자 디스플레이 범위(이에 기초하여 셰이더 방출 위치 및 범위가 결정될 수 있음)에 따라, GPU는 입자 디스플레이 범위에서의 입자들의 위치 정보를 랜덤하게 결정할 수 있고, 즉, 생성된 입자들의 위치들은 입자 디스플레이 범위에서 랜덤하게 분포되고; GPU는 타겟 입자 시스템의 일반적인 속성 정보에서의 입자 수명 주기 범위에 따라 입자 수명 주기 범위에서의 각각의 입자의 수명 주기를 랜덤하게 결정할 수 있고, 즉, 생성된 입자들의 수명 주기들은 입자 수명 주기 범위에서 랜덤하게 분포되고; GPU는 타겟 입자 시스템의 입자 속도 범위에 따라 입자 속도 범위에서의 각각의 입자의 속도를 랜덤하게 결정할 수 있고, 즉, 생성된 입자들의 속도들은 입자 속도 범위에서 랜덤하게 분포되고; GPU는 타겟 입자 시스템의 일반적인 속성 정보에서의 생성 시간에 따라 생성 시간의 결정된 수명 주기에서의 각각의 입자의 생성 시간을 랜덤하게 결정할 수 있다, 즉, 생성된 입자들의 생성 시간은 생성 시간의 결정된 수명 주기에서 랜덤하게 분포된다.
일부 실시예들에서, GPU는 생성된 입자들의 위치 정보 및 생성 시간을 PosRT(position render target, position RT, RT는 Render Target이고 오프-스크린 렌더링 텍스처를 표시함)- PosRT의 RGB 채널은 입자들의 위치 정보를 기록하고, PosRT의 알파 채널은 입자들의 생성 시간을 기록함 -에 저장할 수 있고; 생성된 입자들의 속도 정보 및 수명 주기를 VelocityRT(velocity render target)- VelocityRT의 RGB 채널은 입자들의 속도 정보를 기록하고, VelocityRT의 알파 채널은 입자들의 수명 주기를 기록함 -에 저장할 수 있다. 일부 실시예들에서, GPU는 입자들을 생성하도록 구성되는 셰이더를 사용하여 위치 렌더링 타겟 및 속도 렌더링 타겟에 입자들의 입자 속성들을 추가할 수 있다. 일부 실시예들에서, 각각의 RT(PosRT 또는 VelocityRT)는 RGBA32f의 포맷일 수 있다. 점유된 비디오 메모리는 0.125 M 내지 16 M이고, 이에 대응하여, 8192 내지 100W 입자들의 입자 속성들이 저장될 수 있다.
일부 실시예들에서, 타겟 입자 시스템의 일반적인 속성 정보가 타겟 입자 시스템의 주요 프레임 데이터를 운반하면, GPU는 타겟 입자 시스템의 주요 프레임 데이터에 따라 타겟 입자 시스템의 입자들의 입자 속성들을 초기화할 수 있다. 타겟 입자 시스템의 주요 프레임 데이터는 초기 디스플레이 위치, 초기 변경 속력, 또는 초기 디스플레이 컬러를 포함할 수 있다. 예를 들어, 타겟 입자 시스템의 주요 프레임 데이터가 초기 주요 프레임의 디스플레이 오브젝트 위치를 포함하면, GPU는 초기 주요 프레임의 디스플레이 오브젝트 위치에 따라 타겟 입자 시스템의 위치 정보를 결정할 수 있다. 일반적인 속성 정보에서의 입자 디스플레이 범위에 따라 타겟 입자 시스템의 위치 정보를 결정하는 것에 비해, 입자 시스템의 각각의 입자의 디스플레이 위치는 초기 주요 프레임의 디스플레이 오브젝트 위치에 따라 추가로 정확하게 결정될 수 있고, 셰이더의 디스플레이 범위의 형상에 의해 제한되지 않을 수 있다. 유사하게, GPU는 초기 주요 프레임의 변경 속력에 따라 입자 시스템의 각각의 입자의 초기 속도 정보 및 디스플레이 컬러를 추가로 결정할 수 있다.
S103: 타겟 입자 시스템에서 입자들의 입자 속성들에 따라 타겟 입자 시스템의 입자들을 디스플레이함.
구체적으로, GPU는 입자의 PosRT(position render target)에 저장되는 위치 정보 및 VelocityRT(velocity render target)에 저장되는 속도 정보를 샘플링하고, 다음으로 입자의 위치 정보 및 속도 정보에 따라 스크린 상에 대응하는 입자를 묘화할 수 있고, 입자의 위치 정보는 스크린 상의 입자의 묘화 위치를 결정하고, 속도 정보는 입자가 디스플레이되는 자세 및 방향을 결정할 수 있고 후속 업데이트하는데 사용될 수 있다.
GPU는 입자들을 디스플레이하기 위한 셰이더를 사용하여 입자들을 디스플레이할 수 있다. 입자들을 디스플레이하기 위한 셰이더는 구체적으로, 위치 렌더링 타겟으로부터 입자의 위치 정보를 판독하도록, 속도 렌더링 타겟으로부터 입자의 속도 정보를 판독하도록, 그리고 입자의 위치 정보 및 속도 정보에 따라 스크린 상에 대응하는 입자를 묘화하도록 구성된다. 셰이더는 GPU 상의 이미지 렌더링을 구현하는데 사용되고 고정식 렌더링 파이프라인을 대체하는데 사용되는 편집 가능 프로그램이다. 셰이더는 정점 셰이더픽셀 셰이더를 포함한다. 정점 셰이더는 정점 등의 기하학적 관계의 연산을 위해 사용되고, 픽셀 셰이더는 프로그램 소스 등의 컬러를 계산하는데 사용된다. 셰이더의 편집 가능성으로 인해, 정점 셰이더에서 RT(render target)를 샘플링하고 픽셀 셰이더에서 컬러를 샘플링하는 것에 의해 대응하는 입자가 디스플레이되므로, 다양한 이미지 효과들이 그래픽 카드의 고정식 렌더링 파이프라인에 의해 제한되지 않고 구현될 수 있다.
예시적으로, 도 2는 셰이더를 사용하여 디스플레이되는 패턴 효과를 도시하고, 도 3은 셰이더를 사용하여 디스플레이되는 텍스트 효과이다. 패턴 효과 및 텍스트 효과는 흑백 또는 컬러일 수 있다.
구체적인 게임 시나리오와 조합하여, 본 출원의 타겟 입자 시스템의 디스플레이 효과가 도 4에 도시될 수 있다. 일부 실시예들에서, 타겟 입자 시스템의 입자들은 게임 시나리오의 상단 레이어 상에 디스플레이될 수 있다. 즉, 게임 시나리오 인터페이스에서의 다른 디스플레이 오브젝트들이 먼저 묘화되고, 마지막으로 타겟 입자 시스템이 스크린 상에 디스플레이된다.
일부 실시예들에서, 셰이더는 방사 방식으로, 또는 응집 방식으로 입자들을 디스플레이 할 수 있다. 방사 방식은 입자들을 랜덤 속력으로 전반적으로 그리고 셰이더의 방출 위치 상에 중심을 두고 랜덤하게 방사하는 것이다. 이러한 경우, 초기 상태에서의 입자들의 응집도가 가장 높고, 입자들은 점진적으로 확산한다. 응집 방식은 인력 방식이라고도 한다. 즉, 셰이더는 범위 내에서 입자들을 랜덤하게 방출하고, 다음으로 스크린의 미리 설정된 트랙 또는 패턴 상에 인력이 설정되므로, 주변 입자들이 이러한 트랙 또는 패턴 주위로 끌릴 수 있다. 이러한 경우, 초기 상태에서의 입자들의 응집도가 매우 낮고, 다음으로 미리 설정된 트랙 또는 패턴 주위로 입자들이 점진적으로 응집하여, 미리 설정된 트랙 또는 패턴의 디스플레이 효과를 형성한다.
본 출원의 본 실시예에 따르면, GPU는 CPU에 의해 전송되는 입자 시스템의 일반적인 속성 정보를 수신한 이후 입자들을 생성하고 디스플레이한다. 본 출원의 본 실시예에 따르면, GPU와 CPU 사이의 데이터 송신이 크게 감소되고, CPU의 데이터 송신을 대기하는 GPU의 시간들 및 빈도가 감소되고, 그렇게 함으로써 입자 시스템의 처리 효율을 향상시킨다.
도 5는 본 출원의 다른 실시예에 따른 입자 시스템을 위한 처리 방법의 개략적인 흐름도이다. 도면에 도시되는 바와 같이, 본 방법은 적어도 이하의 단계들을 포함한다:
S201: CPU에 의해 전송되는 타겟 입자 시스템의 일반적인 속성 정보 및 패턴 정보를 수신함.
입자 시스템의 일반적인 속성 정보는 입자 디스플레이 범위(셰이더 방출 위치 및 범위), 입자 수명 주기 범위, 입자 속도 범위, 및 생성 시간을 포함한다. 일부 실시예들에서, CPU는 타겟 입자 시스템의 일반적인 속성 정보를 GPU의 상수 레지스터에 송신할 수 있다.
타겟 입자 시스템의 패턴 정보는 각각의 픽셀의 위치 정보 및 각각의 픽셀의 생성 시간을 포함할 수 있다. 일부 실시예들에서, CPU는 타겟 입자 시스템의 패턴 정보(예를 들어, 컬러 이미지)를, 예를 들어, 메모리, 하드 디스크 또는 비디오 메모리에서의 명시된 저장 공간에 추가할 수 있고, GPU는 이러한 명시된 저장 공간으로부터 패턴 정보를 로딩한다.
구체적으로, CPU는 B/W 이미지에 따라 컬러 이미지를 생성할 수 있다. B/W 이미지에서의 픽셀들은 하나씩 횡단된다. 픽셀 컬러가 0보다 클 때(비-블랙), 컬러 이미지에서의 픽셀의 RGB 채널은 컬러가 0보다 큰 픽셀의 위치 정보를 기록하는데 사용되고, 이러한 픽셀의 알파 채널은 컬러가 0보다 큰 픽셀의 정보, 예를 들어, 생성 시간 및 디스플레이 시간을 기록하는데 사용되므로, 컬러가 0보다 큰 각각의 픽셀의 위치 및 시간 정보가 컬러 이미지의 각각의 픽셀에 저장된다. CPU는 컬러 이미지의 획득된 패턴 정보를 GPU에 전송한다.
예시적으로, 도 12의 B/W 이미지에 도시되는 바와 같이, B/W 이미지의 RGB 채널은 좌측 상에 제시되고, B/W 이미지의 알파 채널은 우측 상에 제시된다. CPU는 B/W 이미지의 RGB 채널에서의 위치 정보 및 B/W 이미지의 알파 채널에서의 시간 정보에 따라 우측 상의 컬러 이미지를 생성하고 획득할 수 있다. 컬러 이미지에서의 픽셀들의 컬러들은 B/W 이미지의 비-제로 픽셀들의 위치들에 따라 결정된다. 각각의 픽셀의 알파 채널은 컬러가 0보다 큰 픽셀의 정보, 예를 들어, 생성 시간 및 디스플레이 시간을 기록한다.
일부 실시예들에서, B/W 이미지는 텍스트 패턴을 갖는 이미지일 수 있다.
유사하게, CPU는 3차원 모델 이미지(3D 그리드 이미지)에 따라 컬러 이미지를 대안적으로 생성할 수 있다. 유사하게, 컬러 이미지의 픽셀의 RGB 채널은 3차원 모델 이미지에 정점의 위치 좌표들을 저장한다.
구체적으로, CPU가 컬러 패턴을 생성하는데 기초하는 B/W 이미지는 텍스트 패턴일 수 있다. 텍스트 패턴에 기초하여 생성되는 이미지의 해상도(디폴트 32*32)가 매우 낮기 때문에, 이미지는 실시간으로 생성될 수 있다.
S202: 패턴 정보에서의 각각의 픽셀의 픽셀 위치 정보 및 생성 시간에 따라 그리고 타겟 입자 시스템의 일반적인 속성 정보와 조합하여, 타겟 입자 시스템의 입자들의 위치 정보 및 생성 시간을 초기화함.
GPU는 패턴 정보로부터 픽셀들의 대응하는 픽셀 위치 정보 및 생성 시간을 추출하여, 타겟 입자 시스템의 일반적인 속성 정보와 조합하여 각각의 픽셀의 위치 및 생성 시간에 따라 타겟 입자 시스템의 입자들의 입자 속성들을 초기화한다.
S203: 타겟 입자 시스템에서 입자들의 입자 속성들에 따라 타겟 입자 시스템의 입자들을 디스플레이함.
따라서, GPU는 스크린 상의 패턴 정보에 대응하는 원본 이미지, 예를 들어, 전술한 타겟 B/W 이미지 또는 3차원 모델 이미지를 복원할 수 있다.
본 실시예에 따르면, GPU는 CPU에 의해 전송되는 타겟 입자 시스템의 일반적인 속성 정보 및 패턴 정보를 수신하여, 타겟 입자 시스템의 일반적인 속성 정보 및 패턴 정보에 따라 입자들을 생성하고 디스플레이할 수 있고, 그렇게 함으로써 패턴 정보로부터 추출되는 픽셀들의 픽셀 위치 정보 및 생성 시간에 따라 입자 시스템의 입자들의 디스플레이 위치들 및 생성 시간을 추가로 결정하여, 보다 정교한 입자 디스플레이 제어를 구현한다.
도 6은 본 출원의 다른 실시예에 따른 입자 시스템을 위한 처리 방법의 개략적인 흐름도이다. 도면에 도시되는 바와 같이, 본 방법은 적어도 이하의 단계들을 포함한다:
S301: CPU에 의해 전송되는 타겟 입자 시스템의 일반적인 속성 정보를 수신함.
입자 시스템의 일반적인 속성 정보는 입자 디스플레이 범위(셰이더 방출 위치 및 범위), 입자 수명 주기 범위, 입자 속도 범위, 및 생성 시간을 포함한다. 일부 실시예들에서, CPU는 타겟 입자 시스템의 일반적인 속성 정보를 GPU의 상수 레지스터에 송신할 수 있다.
일부 실시예들에서, 일반적인 속성 정보는 타겟 입자 시스템의 주요 프레임 데이터를 추가로 포함할 수 있거나, 또는 타겟 입자 시스템의 패턴 정보 및 타겟 입자 시스템의 힘 보유 상태를 포함할 수 있고, 이는 입자 시스템의 입자들의 입자 속성들을 초기화하는데 사용되거나, 또는 타겟 입자 시스템의 입자들의 입자 속성들을 후속하여 업데이트하는데 사용된다. 타겟 입자 시스템의 주요 프레임 데이터는 적어도 하나의 주요 프레임의 대응하는 시간에서의 디스플레이 오브젝트 위치, 변경 속력 또는 디스플레이 컬러를 포함한다. 타겟 입자 시스템의 패턴 정보는 각각의 픽셀의 초기 픽셀 위치 정보 및 생성 시간을 운반한다.
일부 실시예들에서, CPU는 타겟 입자 시스템의 일반적인 속성 정보를 GPU에 주기적으로 전송할 수 있고, 일반적인 속성 정보는 GPU에 의해 타겟 입자 시스템의 입자들의 입자 속성들을 후속하여 업데이트하는데 사용된다.
S302: 타겟 입자 시스템의 일반적인 속성 정보에 따라 타겟 입자 시스템의 입자들을 생성하고 타겟 입자 시스템의 입자들의 입자 속성들을 초기화함. 각각의 입자의 입자 속성들은 해당 입자의 위치 정보, 속도 정보, 수명 주기 및 생성 시간을 포함한다.
구체적인 구현에 대해서는 전술한 실시예에서의 S102를 참조하고, 상세 사항들이 본 실시예에서 다시 설명되지는 않는다.
S303: 타겟 입자 시스템에서 입자들의 입자 속성들에 따라 타겟 입자 시스템의 입자들을 디스플레이함.
구체적인 구현에 대해서는 전술한 실시예에서의 S103을 참조하고, 상세 사항들이 본 실시예에서 다시 설명되지는 않는다.
S304: 타겟 입자 시스템의 입자의 수명 주기 및 생성 시간에 따라 입자가 죽었는지 결정하고; 입자가 죽었으면, 입자를 디스플레이하는 것을 중단함.
구체적으로, 본 실시예에서, GPU는 입자들의 입자 속성들을 초기화할 때 각각의 입자의 생성 시간 및 수명 주기를 기록하고, 예를 들어, PosRT 및 VelocityRT의 알파 채널들을 사용하여 각각의 입자의 생성 시간 및 수명 주기를 기록하고; 입자들이 셰이더를 사용하여 디스플레이된 이후, 입자의 생성 시간 및 현재 시간에 따라 각각의 입자의 생성 시간 길이가 획득될 수 있고, 다음으로 이러한 생성 시간 길이가 입자의 수명 주기와 비교되고; 생성 시간 길이가 수명 주기에 도달하거나 이를 초과하면, 입자가 죽었다고 결정될 수 있고, 다음으로 죽은 입자가 스크린 밖으로 이동되고, 입자를 디스플레이하는 것이 중단된다.
S305: 입자들이 수명 주기에 여전히 있으면, 타겟 입자 시스템의 입자들의 입자 속성들을 업데이트하고, 셰이더를 사용하여 타겟 입자 시스템의 업데이트된 입자들을 디스플레이함.
구체적으로, 입자 속성들은 상태 관련 입자 속성들 및 상태 무관 입자 속성들로 분할될 수 있다. 상태 무관 입자 속성은 입자의 원본 속성들 및 현재 시간에 따라서만 정의되는 폐쇄 함수를 사용하여 계산되는 입자 속성이다. 그러나, 상태 관련 입자 속성은 이전 프레임의 입자 속성들이 계산을 업데이트하기 위한 입력들로서 판독될 필요가 있다는 점을 의미한다. 상태 관련 입자 속성은 독립적인 묘화 단계를 필요로 한다. 업데이트된 입자 속성은 RT에 저장되고, 업데이트된 입자는 셰이더를 사용하여 디스플레이된다. 일부 실시예들에서, GPU는 각각의 프레임에서 입자들을 업데이트할 필요가 없고, 필요에 따라 입자들의 업데이트 주기를 설정할 수 있다. 예를 들어, 시각으로부터 먼 오브젝트를 시뮬레이션하고 묘사하기 위한 입자들의 업데이트 주기는 2개 프레임들마다 한 번 또는 3번마다 한 번일 수 있다.
일부 실시예들에서, GPU는 타겟 입자 시스템의 힘 보유 상태에 따라 상태 관련 입자 속성들을 업데이트할 수 있다. 타겟 입자 시스템의 힘 보유 상태는 CPU에 의해 처리되고 나서 GPU에 송신될 수 있다. 예를 들어, 타겟 입자 시스템의 일반적인 정보를 GPU에 주기적으로 전송하는 한편, CPU는 타겟 입자 시스템의 힘 보유 상태를 GPU에 또한 전송한다.
일부 실시예들에서, GPU는 타겟 입자 시스템의 주요 프레임 데이터에 따라 타겟 입자 시스템의 입자들의 입자 속성들을 대안적으로 업데이트할 수 있다. 타겟 입자 시스템의 주요 프레임 데이터는 적어도 하나의 주요 프레임의 대응하는 시간에서의 디스플레이 오브젝트 위치, 변경 속력, 또는 디스플레이 컬러를 포함한다. 주요 프레임의 대응하는 시간이 도달될 때, GPU는 주요 프레임의 대응하는 시간에서의 디스플레이 오브젝트 위치에 따라 타겟 입자 시스템의 위치 정보를 결정할 수 있고, 입자들의 위치들을 주요 프레임에서 디스플레이되는 디스플레이 오브젝트 위치로 조정할 수 있고, 유사하게, 주요 프레임의 대응하는 시간에서의 변경 속력에 따라 통일된 방식으로 타겟 입자 시스템의 속도 정보를 조정할 수 있고, 주요 프레임의 대응하는 시간에서의 디스플레이 오브젝트의 컬러에 따라 통일된 방식으로 타겟 입자 시스템의 입자들의 컬러들을 조정할 수 있고, 그렇게 함으로써 타겟 입자 시스템의 입자들에 대한 정확한 제어를 구현한다.
본 출원의 본 실시예에 따르면, GPU는 CPU에 의해 전송되는 입자 시스템의 일반적인 속성 정보를 수신한 이후 입자들을 생성하고, 생성된 입자들을 디스플레이하고 수명 주기를 관리한다. 본 출원의 본 실시예에 따르면, GPU와 CPU 사이의 데이터 송신이 크게 감소되고, CPU의 데이터 송신을 대기하는 GPU의 시간들 및 빈도가 감소되고, 그렇게 함으로써 입자 시스템의 처리 효율을 향상시킨다.
도 7은 본 출원의 다른 실시예에 따른 입자 시스템을 위한 처리 방법의 개략적인 흐름도이다. 도면에 도시되는 바와 같이, 본 방법은 적어도 이하의 동작들을 포함한다:
S401: CPU가 타겟 입자 시스템에 대해 렌더링 타겟 리소스들을 할당함.
일부 실시예들에서, RT 리소스들(render target resources)은 타겟 입자 시스템에 할당되는 비디오 메모리 리소스들이다. 구체적으로, CPU는 동시에 타겟 입자 시스템에 존재하는 입자들의 최대 수량에 따라 타겟 입자 시스템에 대해 렌더링 타겟 리소스들을 할당하고, 입자의 최대 수량 = 최대 입자 방출 비율 * 최대 수명 주기이다. 다음으로, 타겟 입자 시스템에 의해 요구되는 RT 리소스들은 각각의 RT 리소스에 저장되는 입자 속성들의 수량에 따라 결정될 수 있다. 예를 들어, 일부 실시예들에서, 각각의 RT(PosRT 또는 VelocityRT)는 RGBA32f의 포맷이다. 점유된 비디오 메모리는 0.125 M 내지 16 M이고, 이에 대응하여, 8192 내지 100W 입자들의 입자 속성들이 저장될 수 있다.
다음으로, 할당 및 복원에 의해 생성되는 단편들을 감소시키기 위해, 유휴 렌더링 타겟 리소스들을 관리하도록 다수 순서 링크된 리스트가 수립될 수 있고, 다음으로 렌더링 타겟 리소스들은 버디 알고리즘에 따라 유휴 렌더링 타겟 리소스들로부터 타겟 입자 시스템에 대해 할당된다. 구체적으로, 도 9에 도시되는 바와 같이, 0 내지 9는 순서 링크된 리스트의 순서를 식별한다. n개 순서 링크된 리스트의 관리 크기는 1*2n개 RT 리소스들을 포함한다. 즉, 각각의 순서 링크된 리스트에 의해 관리되는 RT 블록들의 크기는 상위 순서에 의해 관리되는 RT 블록들의 것의 2배이다. 그러나, n개 순서 링크된 리스트에서, RT 리소스들은 복수의 서브블록들로 추가로 분할될 수 있다. 예를 들어, 1*2n개 RT 리소스들은 2*2n-1개 RT 리소스들로 분할될 수 있다. 순서 링크된 리스트가 할당을 관리하는데 사용될 때, 타겟 입자 시스템이 4개의 RT들을 요구하면, 블록 크기가 4인 순서 링크된 리스트로부터 점검이 시작된다. 링크된 리스트에 유휴 블록이 존재하면, 크기가 4인 RT 리소스 블록이 사용자에게 직접 할당될 수 있고, 그렇지 않으면 하위 순서(블록 크기가 8임) 링크된 리스트 상에 점검이 수행되고; 관리되는 RT 리소스 블록들의 크기가 8인 링크된 리스트에 유휴 리소스 블록이 존재하면, 이러한 유휴 RT 리소스 블록은 크기가 4인 2개의 리소스 블록들로 분열되는데, 크기가 4인 하나의 RT 리소스 블록은 타겟 입자 시스템에 할당되고, 크기가 4인 나머지 리소스 블록은 상위 순서 링크된 리스트에 추가되는 등이다. 그러나, 타겟 입자 시스템이 RT 리소스들을 릴리즈할 때, 타겟 입자 시스템에 의해 릴리즈되는 RT 리소스 블록의 것과 크기가 동일한 유휴 RT 리소스 블록이 현재 존재하면, 동일한 크기를 갖는 2개의 RT 리소스 블록들이 조합되어 하위 순서 링크된 리스트에 배치된다. 예를 들어, 타겟 입자 시스템이 크기가 4인 RT 리소스 블록을 릴리즈하면, 그리고 크기가 4인 유휴 RT 리소스 블록이 발견되면, 2개의 RT 리소스 블록들은 크기가 8인 RT 리소스 블록으로 조합될 수 있고, 조합된 RT 리소스 블록은 관리되는 RT 리소스 블록들의 크기가 8인 링크된 리스트에 배치되는 등이다.
S402: CPU에 의해 전송되는 타겟 입자 시스템의 일반적인 속성 정보 및 타겟 입자 시스템에 할당되는 렌더링 타겟 리소스들을 수신함.
구체적으로, 본 출원의 본 실시예에서의 입자 시스템은 불규칙 퍼지 오브젝트 또는 매우 효과적인 형상을 시뮬레이션하기 위한 그래픽 디스플레이 클래스이다. 예를 들어, 입자 시스템은 스크린 상에 불꽃을 시뮬레이션하고 디스플레이하는데 사용되고, 다른 입자 시스템은 스크린 상에 항상 변화하는 상태를 갖는 일련의 캐릭터들을 시뮬레이션하고 디스플레이하는데 사용된다. 입자 시스템에서, 불규칙 오브젝트는 랜덤하게 분포되는 많은 수량의 불규칙 입자들을 포함하는 것으로서 정의되고, 각각의 입자는 수명 주기를 갖는다. 이러한 입자들은 그들의 위치들을 계속 변경하고 이동하여, 불규칙 오브젝트의 특성들을 충분히 제시한다. 입자 시스템의 일반적인 속성 정보는 입자 디스플레이 범위(셰이더 방출 범위), 입자 수명 주기 범위, 입자 속도 범위, 및 생성 시간을 포함한다.
CPU는 입자 시스템의 일반적인 속성들의 데이터를 GPU에 송신하고, 이러한 데이터는 단일 입자의 속성들을 포함할 필요가 없다. 송신되는 데이터는 입자들의 수량이 증가하는 만큼 증가할 수 없다.
일부 실시예들에서, CPU는 타겟 입자 시스템의 최대 입자 방출 비율 및 최대 수명 주기를 타겟 입자 시스템의 일반적인 속성 정보 내에 대안적으로 배치하고 이러한 정보를 GPU에 전송할 수 있다. GPU는 타겟 입자 시스템에 대해 렌더링 타겟 리소스들을 할당한다.
S403: 타겟 입자 시스템의 일반적인 속성 정보에 따라 타겟 입자 시스템의 입자들을 생성하고, 입자들의 위치 정보 및 생성 시간을 위치 렌더링 타겟에 저장하고, 입자들의 속도 정보 및 수명 주기를 속도 렌더링 타겟에 저장함.
구체적으로, 각각의 입자의 입자 속성들은 해당 입자의 위치 정보, 속도 정보, 수명 주기 및 생성 시간을 포함한다.
GPU는 생성된 입자들의 위치 정보 및 생성 시간을 PosRT(position render target)- PosRT의 RGB 채널은 입자들의 위치 정보를 기록하고, PosRT의 알파 채널은 입자들의 생성 시간을 기록함 -에 저장할 수 있고; 생성된 입자들의 속도 정보 및 수명 주기를 VelocityRT(velocity render target)- VelocityRT의 RGB 채널은 입자들의 속도 정보를 기록하고, VelocityRT의 알파 채널은 입자들의 수명 주기를 기록함 -에 저장할 수 있다.
S404: 입자의 위치 렌더링 타겟에 저장되는 위치 정보 및 속도 렌더링 타겟에 저장되는 속도 정보를 샘플링하여 대응하는 입자를 디스플레이함.
구체적으로, GPU는 입자의 PosRT(position render target)에 저장되는 위치 정보 및 VelocityRT(velocity render target)에 저장되는 속도 정보를 샘플링하고, 다음으로 입자의 위치 정보 및 속도 정보에 따라 스크린 상에 대응하는 입자를 묘화할 수 있고, 입자의 위치 정보는 스크린 상의 입자의 묘화 위치를 결정하고, 속도 정보는 입자가 디스플레이되는 자세 및 방향을 결정할 수 있고 후속 업데이트하는데 사용될 수 있다.
GPU는 입자들을 디스플레이하기 위한 셰이더를 사용하여 입자들을 디스플레이할 수 있다. 입자들을 디스플레이하기 위한 셰이더는 구체적으로, 위치 렌더링 타겟으로부터 입자의 위치 정보를 판독하도록, 속도 렌더링 타겟으로부터 입자의 속도 정보를 판독하도록, 그리고 입자의 위치 정보 및 속도 정보에 따라 스크린 상에 대응하는 입자를 묘화하도록 구성된다. 셰이더는 GPU 상의 이미지 렌더링을 구현하는데 사용되고 고정식 렌더링 파이프라인을 대체하는데 사용되는 편집 가능 프로그램이다. 셰이더는 정점 셰이더픽셀 셰이더를 포함한다. 정점 셰이더는 정점 등의 기하학적 관계의 연산을 위해 사용되고, 픽셀 셰이더는 프로그램 소스 등의 컬러를 계산하는데 사용된다. 셰이더의 편집 가능성으로 인해, 정점 셰이더에서 RT(render target)를 샘플링하고 픽셀 셰이더에서 컬러를 샘플링하는 것에 의해 대응하는 입자가 디스플레이되므로, 다양한 이미지 효과들이 그래픽 카드의 고정식 렌더링 파이프라인에 의해 제한되지 않고 구현될 수 있다.
예를 들어, 도 2는 셰이더를 사용하여 디스플레이되는 패턴 효과를 도시하고, 도 3은 셰이더를 사용하여 디스플레이되는 텍스트 효과이다. 패턴 효과 및 텍스트 효과는 흑백 또는 컬러일 수 있다.
S405: 타겟 입자 시스템의 입자의 수명 주기 및 생성 시간에 따라 입자가 죽었는지 결정하고; 입자가 죽었으면, 입자를 디스플레이하는 것을 중단함.
구체적으로, 입자들의 생성 시간 및 수명 주기는 PosRT 및 VelocityRT의 알파 채널들에 기록된다. 각각의 입자의 생성 시간 및 현재 시간에 따라 생성 시간 길이가 획득되고, 다음으로 생성 시간 길이가 입자의 수명 주기와 비교된다. 생성 시간 길이가 수명 주기에 도달하거나 이를 초과하면, 입자가 죽었다고 결정될 수 있고, 다음으로 죽은 입자가 스크린 밖으로 이동되고, 입자를 디스플레이하는 것이 중단된다.
S406: 입자들이 수명 주기에 있으면, 타겟 입자 시스템의 힘 보유 상태에 따라, 타겟 입자 시스템에서 상태 관련 입자 속성들이 있는 입자의 입자 속성들의 속성 변동들을 계산하고, 이러한 속성 변동들을 임시 렌더링 타겟에 저장함.
구체적으로, 입자 속성들은 상태 관련 입자 속성들 및 상태 무관 입자 속성들로 분할될 수 있다. 상태 무관 입자 속성은 입자의 원본 속성들 및 현재 시간에 따라서만 정의되는 폐쇄 함수를 사용하여 계산되는 입자 속성이다. 그러나, 상태 관련 입자 속성은 이전 프레임의 입자 속성들이 계산을 업데이트하기 위한 입력들로서 판독될 필요가 있다는 점을 의미한다. 상태 관련 입자 속성을 업데이트하는 것은 독립적인 묘화 단계를 필요로 하고, 입자 속성은 RT로 렌더링된다. 입자들이 수명 주기에 있으면, GPU는, 타겟 입자 시스템의 힘 보유 상태에 따라, 타겟 입자 시스템에서 상태 관련 입자 속성들이 있는 입자의 입자 속성들의 속성 변동들을 계산하고, 이러한 속성 변동들을 임시 렌더링 타겟에 저장할 수 있고, 이러한 속성 변동들은 위치 변동 및 속도 변동을 포함한다. 일부 실시예들에서, CPU는 처리 이후 획득되는 타겟 입자 시스템의 힘 보유 상태를, GPU에, 송신할 수 있다. 예를 들어, 타겟 입자 시스템의 일반적인 정보를 GPU에 주기적으로 전송하는 한편, CPU는 타겟 입자 시스템의 힘 보유 상태를 GPU에 또한 전송한다.
S407: 임시 렌더링 타겟에서의 위치 변동을 대응하는 입자의 위치 렌더링 타겟에서의 위치 정보에 중첩시키고, 임시 렌더링 타겟에서의 속도 변동을 대응하는 입자의 속도 렌더링 타겟에서의 속도 정보에 중첩시킴.
구체적으로, 업데이트 이전에 위치 렌더링 타겟에 저장되는 위치 정보가 u1이고, 계산에 의해 획득되는 위치 증분이 u이면, 업데이트 이후 위치 렌더링 타겟에 저장되는 위치 정보는 u2 = u1 + u이고; 유사하게, 업데이트 이전에 속도 렌더링 타겟에 저장되는 속도 정보가 v1이고, 계산에 의해 획득되는 속도 증분이 v이면, 업데이트 이후 속도 렌더링 타겟에 저장되는 속도 정보는 v2 = v1 + v이고, u 및 v는 임시 렌더링 타겟을 사용하여 저장된다.
업데이트 처리 프로시저에 대해서는 도 8을 참조한다. 회색 영역은 RT들을 감소시키기 위한 알고리즘의 핵심이다. TempRT는 증분을 저장하지만 이전 프레임에 저장되는 결과를 판독하지는 않으며, TempRT는 업데이트 이후 릴리즈될 수 있다. 고전적 알고리즘에 비해, 2개의 RT들이 감소되고, Pass에 추가하는 2개의 단계들이 추가된다.
S408: 입자의 PosRT(position render target)에 저장되는 중첩된 위치 정보 및 VelocityRT(velocity render target)에 저장되는 중첩된 속도 정보를 샘플링하여 업데이트된 입자를 디스플레이함.
본 출원의 본 실시예에 따르면, GPU는 CPU에 의해 전송되는 입자 시스템의 일반적인 속성 정보를 수신한 이후 입자들을 생성하고, 생성된 입자들을 디스플레이하고 수명 주기를 관리한다. 본 출원의 본 실시예에 따르면, GPU와 CPU 사이의 데이터 송신이 크게 감소되고, CPU의 데이터 송신을 대기하는 GPU의 시간들 및 빈도가 감소되고, 그렇게 함으로써 입자 시스템의 처리 효율을 향상시킨다. 다른 한편, 입자 속성들을 업데이트할 때, CPU는 현재 프레임에 그리고 이전 프레임에 입자들의 위치 정보 및 속도 정보를 저장하는데 RT들의 쌍들을 2개 이상 일반적으로 필요로 한다. 그러나, 본 출원의 본 실시예에서는, 입자 속성들을 업데이트할 때, GPU는 속도 정보 및 위치 정보의 증분들을 저장하기만 하면 된다. 따라서, 적어도 하나의 위치 렌더링 타겟 및 하나의 속도 렌더링 타겟이 감소될 수 있고, 임시 렌더링 타겟만이 추가될 필요가 있다. 그러나, 임시 렌더링 타겟은 업데이트 이후에 릴리즈될 수 있다. 엄청난 수량의 입자들을 갖는 입자 시스템의 처리 프로세스에서는 특히, 많은 수량의 비디오 메모리 리소스들이 감소될 수 있다.
도 10은 본 출원의 실시예에 따른 입자 시스템을 위한 처리 장치의 개략적인 구조도이다. 도 10에 도시되는 바와 같이, 본 장치는 일반적인 속성 정보 수신 모듈(810), 입자 속성 초기화 모듈(820), 및 입자 디스플레이 모듈(830)을 적어도 포함한다.
일반적인 속성 정보 수신 모듈(810)은 CPU에 의해 전송되는 타겟 입자 시스템의 일반적인 속성 정보를 수신하도록 구성된다.
구체적으로, 본 출원의 본 실시예에서의 입자 시스템은 그래픽 디스플레이 클래스이고, 불규칙 퍼지 오브젝트 또는 형상을 효과적으로 시뮬레이션하는데 사용된다. 예를 들어, 입자 시스템은 스크린 상에 불꽃을 시뮬레이션하고 디스플레이하는데 사용되고, 다른 입자 시스템은 스크린 상에 항상 변화하는 상태를 갖는 일련의 캐릭터들을 시뮬레이션하고 디스플레이하는데 사용된다. 입자 시스템에서, 불규칙 오브젝트는 랜덤하게 분포되는 많은 수량의 불규칙 입자들을 포함하는 것으로서 정의되고, 각각의 입자는 수명 주기를 갖는다. 이러한 입자들은 그들의 위치들을 계속 변경하고 이동하여, 불규칙 오브젝트의 특성들을 충분히 제시한다. 본 출원의 본 실시예에서, CPU는 입자 시스템의 일반적인 속성들의 데이터를 GPU에 송신하고, 이러한 데이터는 단일 입자의 속성들을 포함할 필요가 없다. 송신되는 데이터는 입자들의 수량이 증가하는 만큼 증가할 수 없다. 입자 시스템의 일반적인 속성 정보는 입자 디스플레이 범위(셰이더 방출 위치 및 범위), 입자 수명 주기 범위, 입자 속도 범위, 및 생성 시간을 포함한다. 일부 실시예들에서, CPU는 타겟 입자 시스템의 일반적인 속성 정보를 GPU의 상수 레지스터에 송신할 수 있다.
일부 실시예들에서, 일반적인 속성 정보는 타겟 입자 시스템의 주요 프레임 데이터를 추가로 포함할 수 있거나, 또는 타겟 입자 시스템의 패턴 정보를 포함할 수 있다. 이러한 정보는 입자 시스템의 입자들의 입자 속성들을 초기화하는데 사용되거나, 또는 타겟 입자 시스템의 입자들의 입자 속성들을 후속하여 업데이트하는데 사용된다. 타겟 입자 시스템의 주요 프레임 데이터는 적어도 하나의 주요 프레임의 대응하는 시간에서의 디스플레이 오브젝트 위치, 변경 속력 또는 디스플레이 컬러를 포함한다. 타겟 입자 시스템의 패턴 정보는 각각의 픽셀의 초기 픽셀 위치 정보 및 생성 시간을 운반한다.
일부 실시예들에서, CPU는 타겟 입자 시스템의 일반적인 속성 정보를 GPU에 주기적으로 전송할 수 있고, 일반적인 속성 정보는 GPU에 의해 타겟 입자 시스템의 입자들의 입자 속성들을 후속하여 업데이트하는데 사용된다.
입자 속성 초기화 모듈(820)은, 타겟 입자 시스템의 일반적인 속성 정보에 따라 타겟 입자 시스템의 입자들을 생성하도록 그리고 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하도록 구성된다.
구체적으로, 입자 속성 초기화 모듈(820)은 타겟 입자 시스템의 일반적인 속성 정보에서의 입자 디스플레이 범위(결정된 셰이더 방출 위치 및 범위)에 따라 입자 디스플레이 범위에서의 입자들의 위치 정보를 랜덤하게 결정할 수 있고, 즉, 생성된 입자들의 위치들이 입자 디스플레이 범위에서 랜덤하게 분포되고; GPU는 타겟 입자 시스템의 일반적인 속성 정보에서의 입자 수명 주기 범위에 따라 입자 수명 주기 범위에서의 각각의 입자의 수명 주기를 랜덤하게 결정할 수 있고, 즉, 생성된 입자들의 수명 주기들은 입자 수명 주기 범위에서 랜덤하게 분포되고; GPU는 타겟 입자 시스템의 입자 속도 범위에 따라 입자 속도 범위에서의 각각의 입자의 속도를 랜덤하게 결정할 수 있고, 즉, 생성된 입자들의 속도들은 입자 속도 범위에서 랜덤하게 분포되고; GPU는 타겟 입자 시스템의 일반적인 속성 정보에서의 생성 시간에 따라 생성 시간의 결정된 수명 주기에서의 각각의 입자의 생성 시간을 랜덤하게 결정할 수 있다, 즉, 생성된 입자들의 생성 시간은 생성 시간의 결정된 수명 주기에서 랜덤하게 분포된다.
일부 실시예들에서, 입자 속성 초기화 모듈(820)은 구체적으로,
입자들의 위치 정보 및 생성 시간을 위치 렌더링 타겟에 저장하도록, 그리고 입자들의 속도 정보 및 수명 주기를 속도 렌더링 타겟에 저장하도록 구성된다. 입자 속성 초기화 모듈(820)은 생성된 입자들의 위치 정보 및 생성 시간을 PosRT(position render target, position RT, RT는 Render Target이고 오프-스크린 렌더링 텍스처를 표시함)- PosRT의 RGB 채널은 입자들의 위치 정보를 기록하고, PosRT의 알파 채널은 입자들의 생성 시간을 기록함 -에 저장할 수 있고; 생성된 입자들의 속도 정보 및 수명 주기를 VelocityRT(velocity render target)- VelocityRT의 RGB 채널은 입자들의 속도 정보를 기록하고, VelocityRT의 알파 채널은 입자들의 수명 주기를 기록함 -에 저장할 수 있다. 일부 실시예들에서, 입자 속성 초기화 모듈(820)은 입자들을 생성하도록 구성되는 셰이더를 사용하여 위치 렌더링 타겟 및 속도 렌더링 타겟에 입자들의 입자 속성들을 추가할 수 있다.
일부 실시예들에서, 각각의 RT(PosRT 또는 VelocityRT)는 RGBA32f의 포맷일 수 있다. 점유된 비디오 메모리는 0.125 M 내지 16 M이고, 이에 대응하여, 8192 내지 100W 입자들의 입자 속성들이 저장될 수 있다.
일부 실시예들에서, 타겟 입자 시스템의 일반적인 속성 정보가 타겟 입자 시스템의 주요 프레임 데이터를 운반하면, GPU는 타겟 입자 시스템의 주요 프레임 데이터에 따라 타겟 입자 시스템의 입자들의 입자 속성들을 초기화할 수 있다. 타겟 입자 시스템의 주요 프레임 데이터는 초기 디스플레이 위치, 초기 변경 속력, 또는 초기 디스플레이 컬러를 포함할 수 있다. 예를 들어, 타겟 입자 시스템의 주요 프레임 데이터가 초기 주요 프레임의 디스플레이 오브젝트 위치를 포함하면, GPU는 초기 주요 프레임의 디스플레이 오브젝트 위치에 따라 타겟 입자 시스템의 위치 정보를 결정할 수 있다. 일반적인 속성 정보에서의 입자 디스플레이 범위에 따라 타겟 입자 시스템의 위치 정보를 결정하는 것에 비해, 입자 시스템의 각각의 입자의 디스플레이 위치는 초기 주요 프레임의 디스플레이 오브젝트 위치에 따라 추가로 정확하게 결정될 수 있고, 셰이더의 디스플레이 범위의 형상에 의해 제한되지 않을 수 있다. 유사하게, GPU는 초기 주요 프레임의 변경 속력에 따라 입자 시스템의 각각의 입자의 초기 속도 정보 및 디스플레이 컬러를 추가로 결정할 수 있다.
입자 디스플레이 모듈(830)은 타겟 입자 시스템에서 입자들의 입자 속성들에 따라 셰이더를 사용하여 타겟 입자 시스템의 입자들을 디스플레이하도록 구성된다.
구체적으로, 입자 디스플레이 모듈(830)은 입자의 PosRT(position render target)에 저장되는 위치 정보 및 VelocityRT(velocity render target)에 저장되는 속도 정보를 샘플링하고, 다음으로 입자의 위치 정보 및 속도 정보에 따라 스크린 상에 대응하는 입자를 묘화할 수 있고, 입자의 위치 정보는 스크린 상의 입자의 묘화 위치를 결정하고, 속도 정보는 입자가 디스플레이되는 자세 및 방향을 결정할 수 있고 후속 업데이트하는데 사용될 수 있다.
입자 디스플레이 모듈(830)은 입자들을 디스플레이하기 위한 셰이더를 사용하여 입자들을 디스플레이할 수 있다. 입자들을 디스플레이하기 위한 셰이더는 구체적으로, 위치 렌더링 타겟으로부터 입자의 위치 정보를 판독하도록, 속도 렌더링 타겟으로부터 입자의 속도 정보를 판독하도록, 그리고 입자의 위치 정보 및 속도 정보에 따라 스크린 상에 대응하는 입자를 묘화하도록 구성된다. 셰이더는 GPU 상의 이미지 렌더링을 구현하는데 사용되고 고정식 렌더링 파이프라인을 대체하는데 사용되는 편집 가능 프로그램이다. 셰이더는 정점 셰이더픽셀 셰이더를 포함한다. 정점 셰이더는 정점 등의 기하학적 관계의 연산을 위해 사용되고, 픽셀 셰이더는 프로그램 소스 등의 컬러를 계산하는데 사용된다. 셰이더의 편집 가능성으로 인해, 정점 셰이더에서 RT(render target)를 샘플링하고 픽셀 셰이더에서 컬러를 샘플링하는 것에 의해 대응하는 입자가 디스플레이되므로, 다양한 이미지 효과들이 그래픽 카드의 고정식 렌더링 파이프라인에 의해 제한되지 않고 구현될 수 있다.
예시적으로, 도 2는 셰이더를 사용하여 디스플레이되는 패턴 효과를 도시하고, 도 3은 셰이더를 사용하여 디스플레이되는 텍스트 효과이다. 패턴 효과 및 텍스트 효과는 흑백 또는 컬러일 수 있다.
구체적인 게임 시나리오와 조합하여, 본 출원의 타겟 입자 시스템의 디스플레이 효과가 도 4에 도시될 수 있다. 일부 실시예들에서, 타겟 입자 시스템의 입자들은 게임 시나리오의 상단 레이어 상에 디스플레이될 수 있다. 즉, 게임 시나리오 인터페이스에서의 다른 디스플레이 오브젝트들이 먼저 묘화되고, 마지막으로 타겟 입자 시스템이 스크린 상에 디스플레이된다.
일부 실시예들에서, 셰이더는 방사 방식으로, 또는 응집 방식으로 입자들을 디스플레이 할 수 있다. 방사 방식은 입자들을 랜덤 속력으로 전반적으로 그리고 셰이더의 방출 위치 상에 중심을 두고 랜덤하게 방사하는 것이다. 이러한 경우, 초기 상태에서의 입자들의 응집도가 가장 높고, 입자들은 점진적으로 확산한다. 응집 방식은 인력 방식이라고도 한다. 즉, 셰이더는 범위 내에서 입자들을 랜덤하게 방출하고, 다음으로 스크린의 미리 설정된 트랙 또는 패턴 상에 인력이 설정되므로, 주변 입자들이 이러한 트랙 또는 패턴 주위로 끌릴 수 있다. 이러한 경우, 초기 상태에서의 입자들의 응집도가 매우 낮고, 다음으로 미리 설정된 트랙 또는 패턴 주위로 입자들이 점진적으로 응집하여, 미리 설정된 트랙 또는 패턴의 디스플레이 효과를 형성한다.
일부 실시예들에서, 본 장치는, 타겟 입자 시스템의 입자의 수명 주기 및 생성 시간에 따라 입자가 죽었는지 결정하도록, 그리고, 입자가 죽었으면, 입자를 디스플레이하는 것을 중단하도록 구성되는 죽음 결정 모듈(840)을 추가로 포함할 수 있다.
구체적으로, GPU는 입자들의 입자 속성들을 초기화할 때 각각의 입자의 생성 시간 및 수명 주기를 기록하고, 예를 들어, PosRT 및 VelocityRT의 알파 채널들을 사용하여 각각의 입자의 생성 시간 및 수명 주기를 기록하고; 입자들이 셰이더를 사용하여 디스플레이된 이후, 죽음 결정 모듈(840)은 입자의 생성 시간 및 현재 시간에 따라 각각의 입자의 생성 시간 길이를 획득할 수 있고, 그렇게 함으로써 생성 시간 길이를 입자의 수명 주기와 비교하고; 생성 시간 길이가 수명 주기에 도달하거나 이를 초과하면, 죽음 결정 모듈(840)은 입자가 죽었다고 결정할 수 있고, 다음으로 죽은 입자를 스크린 밖으로 이동하고, 입자를 디스플레이하는 것을 중단한다.
일부 실시예들에서, 본 장치는, 입자들이 수명 주기에 여전히 있으면, 타겟 입자 시스템의 입자들의 입자 속성들을 업데이트하도록, 그리고 타겟 입자 시스템의 업데이트된 입자들을 디스플레이하도록 구성되는 입자 속성 업데이트 모듈(850)을 추가로 포함할 수 있다.
구체적으로, 입자 속성들은 상태 관련 입자 속성들 및 상태 무관 입자 속성들로 분할될 수 있다. 상태 무관 입자 속성은 입자의 원본 속성들 및 현재 시간에 따라서만 정의되는 폐쇄 함수를 사용하여 계산되는 입자 속성이다. 그러나, 상태 관련 입자 속성은 이전 프레임의 입자 속성들이 계산을 업데이트하기 위한 입력들로서 판독될 필요가 있다는 점을 의미한다. 상태 관련 입자 속성은 독립적인 묘화 단계를 필요로 한다. 업데이트된 입자 속성은 RT에 저장되고, 업데이트된 입자는 셰이더를 사용하여 디스플레이된다. 일부 실시예들에서, 입자 속성 업데이트 모듈(850)은 각각의 프레임에서 입자들을 업데이트할 필요가 없고, 필요에 따라 입자들의 업데이트 주기를 설정할 수 있다. 예를 들어, 시각으로부터 먼 오브젝트를 시뮬레이션하고 묘사하기 위한 입자들의 업데이트 주기는 2개 프레임들마다 한 번 또는 3번마다 한 번일 수 있다.
일부 실시예들에서, 입자 속성 업데이트 모듈(850)은 타겟 입자 시스템의 힘 보유 상태에 따라 상태 관련 입자 속성들을 업데이트할 수 있다. 타겟 입자 시스템의 힘 보유 상태는 CPU에 의해 처리되고 나서 GPU에 송신될 수 있다. 예를 들어, 타겟 입자 시스템의 일반적인 정보를 GPU에 주기적으로 전송하는 한편, CPU는 타겟 입자 시스템의 힘 보유 상태를 GPU에 또한 전송한다.
일부 실시예들에서, 입자 속성 업데이트 모듈(850)은 타겟 입자 시스템의 주요 프레임 데이터에 따라 타겟 입자 시스템의 입자들의 입자 속성들을 대안적으로 업데이트할 수 있다. 타겟 입자 시스템의 주요 프레임 데이터는 적어도 하나의 주요 프레임의 대응하는 시간에서의 디스플레이 오브젝트 위치, 변경 속력, 또는 디스플레이 컬러를 포함한다. 주요 프레임의 대응하는 시간이 도달될 때, 입자 속성 업데이트 모듈(850)은 주요 프레임의 대응하는 시간에서의 디스플레이 오브젝트 위치에 따라 타겟 입자 시스템의 위치 정보를 결정할 수 있고, 입자들의 위치들을 주요 프레임에서 디스플레이되는 디스플레이 오브젝트 위치로 조정할 수 있고, 유사하게, 주요 프레임의 대응하는 시간에서의 변경 속력에 따라 통일된 방식으로 타겟 입자 시스템의 속도 정보를 조정할 수 있고, 주요 프레임의 대응하는 시간에서의 디스플레이 컬러에 따라 통일된 방식으로 타겟 입자 시스템의 입자들의 컬러들을 조정할 수 있고, 그렇게 함으로써 타겟 입자 시스템의 입자들에 대한 정확한 제어를 구현한다.
일부 실시예들에서, 입자 속성 업데이트 모듈(850)은 대응하는 위치 렌더링 타겟에 저장되는 입자의 위치 정보 및 대응하는 속도 렌더링 타겟에 저장되는 입자의 속도 정보를 업데이트하도록 구체적으로 구성된다.
구체적으로, 도 11에 도시되는 바와 같이, 입자 속성 업데이트 모듈(850)은,
타겟 입자 시스템의 힘 보유 상태에 따라, 타겟 입자 시스템에서 상태 관련 입자 속성들이 있는 입자의 입자 속성들의 속성 변동들을 계산하도록, 그리고 이러한 속성 변동들을 임시 렌더링 타겟에 저장하도록 구성되는 속성 변동 저장 유닛(851)- 속성 변동들은 위치 변동 및 속도 변동을 포함함 -; 및
임시 렌더링 타겟에서의 위치 변동을 대응하는 입자의 위치 렌더링 타겟에서의 위치 정보에 중첩시키고, 임시 렌더링 타겟에서의 속도 변동을 대응하는 입자의 속도 렌더링 타겟에서의 속도 정보에 중첩시키도록 구성되는 속성 변동 중첩 유닛(852)을 포함한다.
구체적으로, 업데이트 이전에 위치 렌더링 타겟에 저장되는 위치 정보가 u1이고, 계산에 의해 획득되는 위치 증분이 u이면, 업데이트 이후 위치 렌더링 타겟에 저장되는 위치 정보는 u2 = u1 + u이고; 유사하게, 업데이트 이전에 속도 렌더링 타겟에 저장되는 속도 정보가 v1이고, 계산에 의해 획득되는 속도 증분이 v이면, 업데이트 이후 속도 렌더링 타겟에 저장되는 속도 정보는 v2 = v1 + v이고, u 및 v는 임시 렌더링 타겟을 사용하여 저장된다.
업데이트 처리 프로시저에 대해서는 도 8을 참조한다. 회색 영역은 RT들을 감소시키기 위한 알고리즘의 핵심이다. TempRT는 증분을 저장하지만 이전 프레임에 저장되는 결과를 판독하지는 않으며, TempRT는 업데이트 이후 릴리즈될 수 있다. 고전적 알고리즘에 비해, 2개의 RT들이 감소되고, Pass에 추가하는 2개의 단계들이 추가된다.
일부 실시예들에서, 입자 시스템을 위한 처리 장치는,
타겟 입자 시스템의 최대 입자 방출 비율 및 최대 수명 주기에 따라 타겟 입자 시스템에 대해 렌더링 타겟 리소스들을 할당하도록 구성되는 타겟 리소스 할당 모듈(860)을 추가로 포함한다.
구체적으로, GPU는 동시에 타겟 입자 시스템에 존재하는 입자들의 최대 수량에 따라 타겟 입자 시스템에 대해 렌더링 타겟 리소스들을 할당할 수 있고, 입자의 최대 수량 = 최대 입자 방출 비율 * 최대 수명 주기이다. 다음으로, 타겟 입자 시스템에 의해 요구되는 RT 리소스들은 각각의 RT 리소스에 저장되는 입자 속성들의 수량에 따라 결정될 수 있다. 예를 들어, 일부 실시예들에서, 각각의 RT(PosRT 또는 VelocityRT)는 RGBA32f의 포맷이다. 점유된 비디오 메모리는 0.125 M 내지 16 M이고, 이에 대응하여, 8192 내지 100W 입자들의 입자 속성들이 저장될 수 있다. CPU는 타겟 입자 시스템의 최대 입자 방출 비율 및 최대 수명 주기를 타겟 입자 시스템의 일반적인 속성 정보 내에 배치하고 이러한 정보를 GPU에 전송할 수 있다. GPU는 타겟 입자 시스템에 대해 렌더링 타겟 리소스들을 할당한다.
다음으로, 할당 및 복원에 의해 생성되는 단편들을 감소시키기 위해, 유휴 렌더링 타겟 리소스들을 관리하도록 다수 순서 링크된 리스트가 수립될 수 있고, 다음으로 렌더링 타겟 리소스들은 버디 알고리즘에 따라 유휴 렌더링 타겟 리소스들로부터 타겟 입자 시스템에 대해 할당된다. 구체적으로, 도 9에 도시되는 바와 같이, 0 내지 9는 순서 링크된 리스트의 순서를 식별한다. n개 순서 링크된 리스트의 관리 크기는 1*2n개 RT 리소스들을 포함한다. 즉, 각각의 순서 링크된 리스트에 의해 관리되는 RT 블록들의 크기는 상위 순서에 의해 관리되는 RT 블록들의 것의 2배이다. 그러나, n개 순서 링크된 리스트에서, RT 리소스들은 복수의 서브블록들로 추가로 분할될 수 있다. 예를 들어, 1*2n개 RT 리소스들은 2*2n-1개 RT 리소스들로 분할될 수 있다. 순서 링크된 리스트가 할당을 관리하는데 사용될 때, 타겟 입자 시스템이 4개의 RT들을 요구하면, 블록 크기가 4인 순서 링크된 리스트로부터 점검이 시작된다. 링크된 리스트에 유휴 블록이 존재하면, 크기가 4인 RT 리소스 블록이 사용자에게 직접 할당될 수 있고, 그렇지 않으면 하위 순서(블록 크기가 8임) 링크된 리스트 상에 점검이 수행되고; 관리되는 RT 리소스 블록들의 크기가 8인 링크된 리스트에 유휴 리소스 블록이 존재하면, 이러한 유휴 RT 리소스 블록은 크기가 4인 2개의 리소스 블록들로 분열되는데, 크기가 4인 하나의 RT 리소스 블록은 타겟 입자 시스템에 할당되고, 크기가 4인 나머지 리소스 블록은 상위 순서 링크된 리스트에 추가되는 등이다. 그러나, 타겟 입자 시스템이 RT 리소스들을 릴리즈할 때, 타겟 입자 시스템에 의해 릴리즈되는 RT 리소스 블록의 것과 크기가 동일한 유휴 RT 리소스 블록이 현재 존재하면, 동일한 크기를 갖는 2개의 RT 리소스 블록들이 조합되어 하위 순서 링크된 리스트에 배치된다. 예를 들어, 타겟 입자 시스템이 크기가 4인 RT 리소스 블록을 릴리즈하면, 그리고 크기가 4인 유휴 RT 리소스 블록이 발견되면, 2개의 RT 리소스 블록들은 크기가 8인 RT 리소스 블록으로 조합될 수 있고, 조합된 RT 리소스 블록은 관리되는 RT 리소스 블록들의 크기가 8인 링크된 리스트에 배치되는 등이다.
일부 실시예들에서, CPU는 대안적으로 타겟 입자 시스템에 대해 렌더링 타겟 리소스들을 할당하고, 타겟 입자 시스템에 할당되는 RT 리소스들을 GPU에 통보할 수 있다.
일부 실시예들에서, 본 장치는,
CPU에 의해 전송되는 타겟 입자 시스템의 패턴 정보를 수신하도록 구성되는 패턴 정보 수신 모듈(880)- 패턴 정보는 각각의 픽셀의 픽셀 위치 정보 및 생성 시간을 포함함 -을 추가로 포함한다.
일부 실시예들에서, CPU는 타겟 입자 시스템의 패턴 정보(예를 들어, 컬러 이미지)를, 예를 들어, 메모리, 하드 디스크 또는 비디오 메모리에서의 명시된 저장 공간에 추가할 수 있고, 패턴 정보 수신 모듈(880)은 이러한 명시된 저장 공간으로부터 패턴 정보를 로딩한다.
구체적으로, CPU는 B/W 이미지에 따라 컬러 이미지를 생성할 수 있다. B/W 이미지에서의 픽셀들은 하나씩 횡단된다. 픽셀 컬러가 0보다 클 때(비-블랙), 컬러 이미지에서의 픽셀의 RGB 채널은 컬러가 0보다 큰 픽셀의 위치 정보를 기록하는데 사용되고, 이러한 픽셀의 알파 채널은 컬러가 0보다 큰 픽셀의 정보, 예를 들어, 생성 시간 및 디스플레이 시간을 기록하는데 사용되므로, 컬러가 0보다 큰 각각의 픽셀의 위치 및 시간 정보가 컬러 이미지의 각각의 픽셀에 저장된다. CPU는 컬러 이미지의 획득된 패턴 정보를 GPU에 전송한다.
예시적으로, 도 12의 B/W 이미지에 도시되는 바와 같이, B/W 이미지의 RGB 채널은 좌측(1201) 상에 제시되고, B/W 이미지의 알파 채널은 우측(1202) 상에 제시된다. CPU는 B/W 이미지의 RGB 채널에서의 위치 정보 및 B/W 이미지의 알파 채널에서의 시간 정보에 따라 우측 상의 컬러 이미지(1203)를 생성하고 획득할 수 있다. 컬러 이미지에서의 픽셀들의 컬러들은 B/W 이미지의 비-제로 픽셀들의 위치들에 따라 결정된다. 각각의 픽셀의 알파 채널은 컬러가 0보다 큰 픽셀의 정보, 예를 들어, 생성 시간 및 디스플레이 시간을 기록한다.
일부 실시예들에서, B/W 이미지는 텍스트 패턴을 갖는 이미지일 수 있다.
유사하게, CPU는 3차원 모델 이미지(3D 그리드 이미지)에 따라 컬러 이미지를 대안적으로 생성할 수 있다. 유사하게, 컬러 이미지의 픽셀의 RGB 채널은 3차원 모델 이미지에 정점의 위치 좌표들을 저장한다.
구체적으로, CPU가 컬러 패턴을 생성하는데 기초하는 B/W 이미지는 텍스트 패턴일 수 있다. 텍스트 패턴에 기초하여 생성되는 이미지의 해상도(디폴트 32*32)가 매우 낮기 때문에, 이미지는 실시간으로 생성될 수 있다.
입자 속성 초기화 모듈(820)은,
패턴 정보에서의 각각의 픽셀의 픽셀 위치 정보 및 생성 시간에 따라 그리고 타겟 입자 시스템의 일반적인 속성 정보와 조합하여, 타겟 입자 시스템의 입자들의 위치 정보 및 생성 시간을 초기화도록 추가로 구성된다. 후속하여, GPU는 스크린 상의 패턴 정보에 대응하는 원본 이미지, 예를 들어, 전술한 타겟 B/W 이미지 또는 3차원 모델 이미지를 복원할 수 있고, 그렇게 함으로써 패턴 정보로부터 추출되는 픽셀들의 픽셀 위치 정보 및 생성 시간에 따라 입자 시스템의 입자들의 디스플레이 위치들 및 생성 시간을 결정하여, 보다 정교한 입자 디스플레이 제어를 구현한다.
본 출원의 본 실시예에 따르면, 입자 시스템을 위한 처리 장치는 CPU에 의해 전송되는 입자 시스템의 일반적인 속성 정보를 수신한 이후 입자들을 생성하고, 생성된 입자들을 디스플레이하고 수명 주기를 관리한다. 본 출원의 본 실시예에 따르면, GPU와 CPU 사이의 데이터 송신이 크게 감소되고, CPU의 데이터 송신을 대기하는 GPU의 시간들 및 빈도가 감소되고, 그렇게 함으로써 입자 시스템의 처리 효율을 향상시킨다. 다른 한편, 입자 속성들을 업데이트할 때, CPU는 현재 프레임에 그리고 이전 프레임에 입자들의 위치 정보 및 속도 정보를 저장하는데 RT들의 쌍들을 2개 이상 일반적으로 필요로 한다. 그러나, 본 출원의 본 실시예에서는, 입자 속성들을 업데이트할 때, 입자 시스템을 위한 처리 장치는 속도 정보 및 위치 정보의 증분들을 저장하기만 하면 된다. 따라서, 적어도 하나의 위치 렌더링 타겟 및 하나의 속도 렌더링 타겟이 감소될 수 있고, 임시 렌더링 타겟만이 추가될 필요가 있다. 그러나, 임시 렌더링 타겟은 업데이트 이후에 릴리즈될 수 있다. 엄청난 수량의 입자들을 갖는 입자 시스템의 처리 프로세스에서는 특히, 많은 수량의 비디오 메모리 리소스들이 감소될 수 있다.
도 13은 본 출원의 다른 실시예에 따른 입자 시스템을 위한 처리 장치의 개략적인 구조도이다. 도면에 도시되는 바와 같이, 본 실시예에서, 입자 시스템을 위한 처리 장치(1300)는 적어도 하나의 CPU(1301), GPU(1303), 메모리(1304), 디스플레이(1305), 및 적어도 하나의 통신 버스(1307)를 포함할 수 있다. 통신 버스(1307)는 컴포넌트들 사이의 접속 및 통신을 구현하도록 구성된다. 메모리(1304)는 적어도 하나의 셰이더를 포함한다. 적어도 하나의 셰이더가 GPU(1303)에 의해 구현될 때,
CPU에 의해 전송되는 타겟 입자 시스템의 일반적인 속성 정보를 수신하는 동작- 타겟 입자 시스템의 일반적인 속성 정보는 입자 디스플레이 범위, 입자 수명 주기 범위, 입자 속도 범위, 및 생성 시간을 포함함 -;
타겟 입자 시스템의 일반적인 속성 정보에 따라 타겟 입자 시스템의 입자들을 생성하고 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하는 동작- 각각의 입자의 입자 속성들은 해당 입자의 위치 정보, 속도 정보, 수명 주기 및 생성 시간을 포함함 -; 및
타겟 입자 시스템에서 입자들의 입자 속성들에 따라 타겟 입자 시스템의 입자들을 디스플레이하는 동작이 수행된다.
일부 실시예들에서, 타겟 입자 시스템에서 입자들의 입자 속성들에 따라 타겟 입자 시스템의 입자들을 디스플레이한 이후, 적어도 하나의 셰이더는,
타겟 입자 시스템의 입자의 수명 주기 및 생성 시간에 따라 입자가 죽었는지 결정하는 동작; 및 입자가 죽었으면, 입자를 디스플레이하는 것을 중단하는 동작을 수행하도록 추가로 구성될 수 있다.
일부 실시예들에서, 적어도 하나의 셰이더는,
입자들이 수명 주기에 여전히 있으면, 타겟 입자 시스템의 입자들의 입자 속성들을 업데이트하는 동작, 및 타겟 입자 시스템의 업데이트된 입자들을 디스플레이하는 동작을 수행하도록 추가로 구성될 수 있다.
일부 실시예들에서, 적어도 하나의 셰이더는 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하는 동작을 수행하도록 구성되고, 이러한 동작은 구체적으로,
입자들의 위치 정보 및 생성 시간을 위치 렌더링 타겟에 저장하는 동작, 및 입자들의 속도 정보 및 수명 주기를 속도 렌더링 타겟에 저장하는 동작을 포함하고;
적어도 하나의 셰이더는, 타겟 입자 시스템에서 입자들의 입자 속성들에 따라 타겟 입자 시스템의 입자들을 디스플레이하는 동작을 수행하도록 구성되고, 이러한 동작은,
입자의 위치 렌더링 타겟에 저장되는 위치 정보 및 속도 렌더링 타겟에 저장되는 속도 정보를 샘플링하여 대응하는 입자를 디스플레이하는 동작을 포함하고;
적어도 하나의 셰이더는 타겟 입자 시스템의 입자들의 입자 속성들을 업데이트하는 동작을 수행하도록 구성되고, 이러한 동작은 구체적으로,
입자들의 위치 렌더링 타겟에 저장되는 위치 정보 및 속도 렌더링 타겟에 저장되는 속도 정보를 업데이트하는 동작을 포함한다.
일부 실시예들에서, 적어도 하나의 셰이더는 입자들의 위치 렌더링 타겟에 저장되는 위치 정보 및 속도 렌더링 타겟에 저장되는 속도 정보를 업데이트하는 동작을 수행하도록 구성되고, 이러한 동작은 구체적으로,
타겟 입자 시스템의 힘 보유 상태에 따라, 타겟 입자 시스템에서 상태 관련 입자 속성들이 있는 입자의 입자 속성들의 속성 변동들을 계산하는 동작, 및 속성 변동들을 임시 렌더링 타겟에 저장하는 동작- 속성 변동들은 위치 변동 및 속도 변동을 포함함 -; 및
임시 렌더링 타겟에서의 위치 변동을 대응하는 입자의 위치 렌더링 타겟에서의 위치 정보에 중첩시키는 동작, 임시 렌더링 타겟에서의 속도 변동을 대응하는 입자의 속도 렌더링 타겟에서의 속도 정보에 중첩시키는 동작을 포함한다.
일부 실시예들에서, 타겟 입자 시스템의 일반적인 속성 정보는 최대 입자 방출 비율 및 최대 수명 주기를 추가로 포함하고;
입자들의 위치 정보 및 생성 시간을 위치 렌더링 타겟에 저장하고, 입자들의 속도 정보 및 수명 주기를 속도 렌더링 타겟에 저장하기 이전에, 적어도 하나의 셰이더는,
타겟 입자 시스템의 최대 입자 방출 비율 및 최대 수명 주기에 따라 타겟 입자 시스템에 대해 렌더링 타겟 리소스들을 할당하는 동작을 수행하도록 추가로 구성된다.
일부 실시예들에서, 적어도 하나의 셰이더는 타겟 입자 시스템의 최대 입자 방출 비율 및 최대 수명 주기에 따라 타겟 입자 시스템에 대해 렌더링 타겟 리소스들을 할당하는 동작을 수행하도록 구성되고, 이러한 동작은 구체적으로,
유휴 렌더링 타겟 리소스들을 관리하는 다수 순서 링크된 리스트 및 버디 알고리즘에 따라 유휴 렌더링 타겟 리소스들로부터 타겟 입자 시스템에 대해 렌더링 타겟 리소스들을 할당하는 동작을 포함한다.
일부 실시예들에서, 일반적인 속성 정보는 타겟 입자 시스템의 주요 프레임 데이터를 추가로 포함하고, 타겟 입자 시스템의 주요 프레임 데이터는 적어도 하나의 주요 프레임의 대응하는 시간에서의 디스플레이 오브젝트 위치, 변경 속력 또는 디스플레이 컬러를 포함하고;
적어도 하나의 셰이더는,
타겟 입자 시스템의 주요 프레임 데이터에 따라 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하거나 또는 업데이트하는 동작을 수행하도록 구성된다.
일부 실시예들에서, 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하는 동작을 수행하기 이전에, 적어도 하나의 셰이더는,
CPU에 의해 전송되는 타겟 입자 시스템의 패턴 정보를 수신하는 동작- 패턴 정보는 각각의 픽셀의 픽셀 위치 정보 및 생성 시간을 운반함 -을 수행하도록 추가로 구성되고;
적어도 하나의 셰이더는 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하는 동작을 수행하도록 구성되고, 이러한 동작은 구체적으로,
패턴 정보에서의 각각의 픽셀의 픽셀 위치 정보 및 생성 시간에 따라 그리고 타겟 입자 시스템의 일반적인 속성 정보와 조합하여, 타겟 입자 시스템의 입자들의 위치 정보 및 생성 시간을 초기화하는 동작을 포함한다.
일부 실시예들에서, 적어도 하나의 셰이더는 도 10에 도시되는 일반적인 속성 정보 수신 모듈(810), 입자 속성 초기화 모듈(820), 및 입자 디스플레이 모듈(830)을 포함할 수 있다.
해당 분야에서의 통상의 기술자는 실시예들에서의 방법들의 프로세스들 중 일부 또는 전부가 관련 하드웨어에 명령하는 컴퓨터 프로그램에 의해 구현될 수 있다는 점을 이해할 수 있다. 이러한 프로그램은 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 이러한 프로그램이 실행될 때, 실시예들에서의 방법들의 프로세스들이 수행된다. 이러한 저장 매체는 자기 디스크, 광 디스크, ROM(read-only memory), RAM(random access memory) 등일 수 있다.
전술한 설명들은 본 출원의 단지 바람직한 실시예들일 뿐이며, 본 출원의 범위를 제한하려고 의도되는 것은 아니다. 본 출원의 사상 및 원리 내에서 이루어지는 모든 수정, 등가의 대체 및 향상은 본 출원의 보호 범위 내에 있을 것이다.

Claims (19)

  1. 입자 시스템을 위한 처리 방법으로서, 상기 방법은,
    CPU(central processing unit)에 의해 전송되는 타겟 입자 시스템의 일반적인 속성 정보를 수신하는 단계- 상기 타겟 입자 시스템의 일반적인 속성 정보는 입자 디스플레이 범위, 입자 수명 주기 범위, 입자 속도 범위, 및 생성 시간을 포함함 -;
    상기 타겟 입자 시스템의 일반적인 속성 정보에 따라 상기 타겟 입자 시스템의 입자들을 생성하고 상기 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하는 단계- 각각의 입자의 입자 속성들은 해당 입자의 위치 정보, 속도 정보, 수명 주기 및 생성 시간을 포함함 -; 및
    상기 타겟 입자 시스템에서 상기 입자들의 입자 속성들에 따라 상기 타겟 입자 시스템의 입자들을 디스플레이하는 단계를 포함하고,
    상기 타겟 입자 시스템의 일반적인 속성 정보에 따라 상기 타겟 입자 시스템의 입자들을 생성하고 상기 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하는 단계는,
    상기 입자 디스플레이 범위에서 상기 입자들의 상기 위치 정보를 랜덤하게 결정하고, 상기 입자 수명 주기 범위에서의 각각의 입자의 상기 수명 주기를 랜덤하게 결정하고, 상기 입자 속도 범위에서의 각각의 입자의 속도를 랜덤하게 결정하고, 상기 생성 시간의 결정된 수명 주기에서의 각각의 입자의 상기 생성 시간을 랜덤하게 결정하는 단계를 포함하고,
    상기 일반적인 속성 정보는 상기 타겟 입자 시스템의 주요 프레임 데이터를 추가로 포함하고, 상기 타겟 입자 시스템의 상기 주요 프레임 데이터는 적어도 하나의 주요 프레임의 대응하는 시간에서의 디스플레이 오브젝트 위치, 변경 속력 또는 디스플레이 컬러를 포함하고;
    상기 방법은,
    상기 주요 프레임의 상기 대응하는 시간에서의 상기 디스플레이 오브젝트 위치에 따라 상기 타겟 입자 시스템에서의 상기 입자들의 상기 위치 정보를 결정하고, 상기 입자들의 위치들을 상기 주요 프레임에서 디스플레이되는 상기 디스플레이 오브젝트 위치로 조정하는 단계;
    상기 주요 프레임의 상기 대응하는 시간에서의 상기 변경 속력에 따라 상기 타겟 입자 시스템에서의 각각의 입자의 상기 속도 정보를 조정하는 단계; 및
    상기 주요 프레임의 상기 대응하는 시간에서의 상기 디스플레이 컬러에 따라 상기 타겟 입자 시스템에서의 상기 입자들의 컬러들을 조정하는 단계를 추가로 포함하는 입자 시스템을 위한 처리 방법.
  2. 제1항에 있어서,
    상기 타겟 입자 시스템에서 상기 입자들의 입자 속성들에 따라 상기 타겟 입자 시스템의 입자들을 디스플레이하는 단계 이후, 상기 방법은,
    상기 타겟 입자 시스템의 입자의 수명 주기 및 생성 시간에 따라 입자가 죽었는지 결정하는 단계; 및 상기 입자가 죽었으면, 상기 입자를 디스플레이하는 것을 중단하는 단계를 추가로 포함하는 입자 시스템을 위한 처리 방법.
  3. 제2항에 있어서,
    상기 방법은,
    상기 입자들이 상기 수명 주기에 여전히 있으면, 상기 타겟 입자 시스템의 입자들의 입자 속성들을 업데이트하는 단계, 및 상기 타겟 입자 시스템의 상기 업데이트된 입자들을 디스플레이하는 단계를 추가로 포함하는 입자 시스템을 위한 처리 방법.
  4. 제3항에 있어서,
    상기 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하는 단계는,
    상기 입자들의 상기 위치 정보 및 상기 생성 시간을 위치 렌더링 타겟에 저장하는 단계, 및 상기 입자들의 상기 속도 정보 및 상기 수명 주기를 속도 렌더링 타겟에 저장하는 단계를 포함하고;
    상기 타겟 입자 시스템에서 상기 입자들의 입자 속성들에 따라 상기 타겟 입자 시스템의 입자들을 디스플레이하는 단계는,
    상기 입자의 상기 위치 렌더링 타겟에 저장되는 상기 위치 정보 및 상기 속도 렌더링 타겟에 저장되는 상기 속도 정보를 샘플링하여 대응하는 입자를 디스플레이하는 단계를 포함하고;
    상기 타겟 입자 시스템의 입자들의 입자 속성들을 업데이트하는 단계는,
    상기 입자들의 상기 위치 렌더링 타겟에 저장되는 상기 위치 정보 및 상기 속도 렌더링 타겟에 저장되는 상기 속도 정보를 업데이트하는 단계를 포함하는 입자 시스템을 위한 처리 방법.
  5. 제4항에 있어서,
    상기 입자들의 상기 위치 렌더링 타겟에 저장되는 상기 위치 정보 및 상기 속도 렌더링 타겟에 저장되는 상기 속도 정보를 업데이트하는 단계는,
    상기 타겟 입자 시스템의 힘 보유 상태에 따라, 상기 타겟 입자 시스템에서 상태 관련 입자 속성들이 있는 입자의 입자 속성들의 속성 변동들을 계산하고, 상기 속성 변동들을 임시 렌더링 타겟에 저장하는 단계- 상기 속성 변동들은 위치 변동 및 속도 변동을 포함함 -; 및
    상기 임시 렌더링 타겟에서의 위치 변동을 상기 대응하는 입자의 상기 위치 렌더링 타겟에서의 위치 정보에 중첩시키고, 상기 임시 렌더링 타겟에서의 속도 변동을 상기 대응하는 입자의 상기 속도 렌더링 타겟에서의 속도 정보에 중첩시키는 단계를 포함하는 입자 시스템을 위한 처리 방법.
  6. 제4항에 있어서,
    상기 타겟 입자 시스템의 일반적인 속성 정보는 최대 입자 방출 비율 및 최대 수명 주기를 추가로 포함하고,
    상기 입자들의 상기 위치 정보 및 상기 생성 시간을 위치 렌더링 타겟에 저장하는 단계, 및 상기 입자들의 상기 속도 정보 및 상기 수명 주기를 속도 렌더링 타겟에 저장하는 단계 이전에, 상기 방법은,
    상기 타겟 입자 시스템의 상기 최대 입자 방출 비율 및 상기 최대 수명 주기에 따라 상기 타겟 입자 시스템에 대해 렌더링 타겟 리소스들을 할당하는 단계를 추가로 포함하는 입자 시스템을 위한 처리 방법.
  7. 제6항에 있어서,
    상기 타겟 입자 시스템의 상기 최대 입자 방출 비율 및 상기 최대 수명 주기에 따라 상기 타겟 입자 시스템에 대해 렌더링 타겟 리소스들을 할당하는 단계는,
    유휴 렌더링 타겟 리소스들을 관리하는 다수 순서 링크된 리스트 및 버디 알고리즘에 따라 유휴 렌더링 타겟 리소스들로부터 상기 타겟 입자 시스템에 대해 상기 렌더링 타겟 리소스들을 할당하는 단계를 포함하는 입자 시스템을 위한 처리 방법.
  8. 제1항에 있어서,
    상기 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하는 단계 이전에, 상기 방법은,
    상기 CPU에 의해 전송되는 상기 타겟 입자 시스템의 패턴 정보를 수신하는 단계- 상기 패턴 정보는 각각의 픽셀의 픽셀 위치 정보 및 생성 시간을 운반함 -를 추가로 포함하고;
    상기 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하는 단계는,
    상기 패턴 정보에서의 각각의 픽셀의 상기 픽셀 위치 정보 및 상기 생성 시간에 따라 그리고 상기 타겟 입자 시스템의 일반적인 속성 정보와 조합하여, 상기 타겟 입자 시스템의 입자들의 상기 위치 정보 및 상기 생성 시간을 초기화하는 단계를 포함하는 입자 시스템을 위한 처리 방법.
  9. 입자 시스템을 위한 처리 장치로서, 상기 장치는,
    GPU(graphics processing unit);
    상기 GPU에 접속되는 메모리- 상기 메모리는 일반적인 속성 정보 수신 모듈, 입자 속성 초기화 모듈, 및 입자 디스플레이 모듈을 포함하는 복수의 명령어 모듈들을 저장하고; 상기 명령어 모듈들이 상기 GPU에 의해 실행될 때, 이하의 동작들이 수행됨 -를 포함하고:
    상기 일반적인 속성 정보 수신 모듈은 CPU(central processing unit)에 의해 전송되는 타겟 입자 시스템의 일반적인 속성 정보를 수신하도록 구성되고 - 상기 타겟 입자 시스템의 일반적인 속성 정보는 입자 디스플레이 범위, 입자 수명 주기 범위, 입자 속도 범위, 및 생성 시간을 포함함 -;
    상기 입자 속성 초기화 모듈은, 상기 타겟 입자 시스템의 일반적인 속성 정보에 따라 상기 타겟 입자 시스템의 입자들을 생성하도록 그리고 상기 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하도록 구성되고- 각각의 입자의 입자 속성들은 해당 입자의 위치 정보, 속도 정보, 수명 주기 및 생성 시간을 포함함 -;
    상기 입자 디스플레이 모듈은 상기 타겟 입자 시스템에서 입자들의 입자 속성들에 따라 상기 타겟 입자 시스템의 입자들을 디스플레이하도록 구성되고,
    상기 입자 속성 초기화 모듈은,
    상기 입자 디스플레이 범위에서 상기 입자들의 상기 위치 정보를 랜덤하게 결정하고, 상기 입자 수명 주기 범위에서의 각각의 입자의 상기 수명 주기를 랜덤하게 결정하고, 상기 입자 속도 범위에서의 각각의 입자의 속도를 랜덤하게 결정하고, 상기 생성 시간의 결정된 수명 주기에서의 각각의 입자의 상기 생성 시간을 랜덤하게 결정하도록 추가로 구성되고,
    상기 일반적인 속성 정보는 상기 타겟 입자 시스템의 주요 프레임 데이터를 추가로 포함하고, 상기 타겟 입자 시스템의 상기 주요 프레임 데이터는 적어도 하나의 주요 프레임의 대응하는 시간에서의 디스플레이 오브젝트 위치, 변경 속력 또는 디스플레이 컬러를 포함하고;
    상기 입자 속성 초기화 모듈은,
    상기 주요 프레임의 상기 대응하는 시간에서의 상기 디스플레이 오브젝트 위치에 따라 상기 타겟 입자 시스템에서의 상기 입자들의 상기 위치 정보를 결정하고, 상기 입자들의 위치들을 상기 주요 프레임에서 디스플레이되는 상기 디스플레이 오브젝트 위치로 조정하도록;
    상기 주요 프레임의 상기 대응하는 시간에서의 상기 변경 속력에 따라 상기 타겟 입자 시스템에서의 각각의 입자의 상기 속도 정보를 조정하도록; 그리고
    상기 주요 프레임의 상기 대응하는 시간에서의 상기 디스플레이 컬러에 따라 상기 타겟 입자 시스템에서의 상기 입자들의 컬러들을 조정하도록 추가로 구성되는 입자 시스템을 위한 처리 장치.
  10. 제9항에 있어서,
    상기 타겟 입자 시스템의 입자의 상기 수명 주기 및 상기 생성 시간에 따라 입자가 죽었는지 결정하도록, 그리고 상기 입자가 죽었으면, 상기 입자를 디스플레이하는 것을 중단하도록 구성되는 죽음 결정 모듈을 추가로 포함하는 입자 시스템을 위한 처리 장치.
  11. 제10항에 있어서,
    상기 입자들이 상기 수명 주기에 여전히 있으면, 상기 타겟 입자 시스템의 입자들의 입자 속성들을 업데이트하도록, 그리고 상기 타겟 입자 시스템의 상기 업데이트된 입자들을 디스플레이하도록 구성되는 입자 속성 업데이트 모듈을 추가로 포함하는 입자 시스템을 위한 처리 장치.
  12. 제11항에 있어서,
    상기 입자 속성 초기화 모듈은 구체적으로,
    상기 입자들의 상기 위치 정보 및 상기 생성 시간을 위치 렌더링 타겟에 저장하도록, 그리고 상기 입자들의 상기 속도 정보 및 상기 수명 주기를 속도 렌더링 타겟에 저장하도록 구성되고;
    상기 입자 디스플레이 모듈은 구체적으로,
    상기 입자의 상기 위치 렌더링 타겟에 저장되는 상기 위치 정보 및 상기 속도 렌더링 타겟에 저장되는 상기 속도 정보를 샘플링하여 대응하는 입자를 디스플레이하도록 구성되고;
    입자 속성 업데이트 모듈은 구체적으로,
    상기 입자들의 상기 위치 렌더링 타겟에 저장되는 상기 위치 정보 및 상기 속도 렌더링 타겟에 저장되는 상기 속도 정보를 업데이트하도록 구성되는 입자 시스템을 위한 처리 장치.
  13. 제12항에 있어서,
    상기 입자 속성 업데이트 모듈은,
    상기 타겟 입자 시스템의 힘 보유 상태에 따라, 상기 타겟 입자 시스템에서 상태 관련 입자 속성들이 있는 입자의 입자 속성들의 속성 변동들을 계산하도록, 그리고 상기 속성 변동들을 임시 렌더링 타겟에 저장하도록 구성되는 속성 변동 저장 유닛- 상기 속성 변동들은 위치 변동 및 속도 변동을 포함함 -; 및
    상기 임시 렌더링 타겟에서의 상기 위치 변동을 상기 대응하는 입자의 상기 위치 렌더링 타겟에서의 상기 위치 정보에 중첩시키도록, 그리고 상기 임시 렌더링 타겟에서의 상기 속도 변동을 상기 대응하는 입자의 상기 속도 렌더링 타겟에서의 상기 속도 정보에 중첩시키도록 구성되는 속성 변동 중첩 유닛을 포함하는 입자 시스템을 위한 처리 장치.
  14. 제12항에 있어서,
    상기 타겟 입자 시스템의 일반적인 속성 정보는 최대 입자 방출 비율 및 최대 수명 주기를 추가로 포함하고,
    상기 장치는,
    상기 타겟 입자 시스템의 상기 최대 입자 방출 비율 및 상기 최대 수명 주기에 따라 상기 타겟 입자 시스템에 대해 렌더링 타겟 리소스들을 할당하도록 구성되는 타겟 리소스 할당 모듈을 추가로 포함하는 입자 시스템을 위한 처리 장치.
  15. 제14항에 있어서,
    상기 타겟 리소스 할당 모듈은 구체적으로,
    유휴 렌더링 타겟 리소스들을 관리하는 다수 순서 링크된 리스트 및 버디 알고리즘에 따라 유휴 렌더링 타겟 리소스들로부터 상기 타겟 입자 시스템에 대해 상기 렌더링 타겟 리소스들을 할당하도록 구성되는 입자 시스템을 위한 처리 장치.
  16. 제9항에 있어서,
    상기 장치는,
    상기 CPU에 의해 전송되는 상기 타겟 입자 시스템의 패턴 정보를 수신하도록 구성되는 패턴 정보 수신 모듈- 상기 패턴 정보는 각각의 픽셀의 픽셀 위치 정보 및 생성 시간을 포함함 -을 추가로 포함하고;
    상기 입자 속성 초기화 모듈은 구체적으로,
    상기 패턴 정보에서의 각각의 픽셀의 상기 픽셀 위치 정보 및 상기 생성 시간에 따라 그리고 상기 타겟 입자 시스템의 일반적인 속성 정보와 조합하여, 상기 타겟 입자 시스템의 입자들의 상기 위치 정보 및 상기 생성 시간을 초기화도록 구성되는 입자 시스템을 위한 처리 장치.
  17. 비-휘발성 머신 판독 가능 저장 매체로서, 상기 저장 매체는 머신 판독 가능 명령어들을 저장하고, 상기 머신 판독 가능 명령어들은 GPU(graphics processing unit)에 의해 실행되어,
    CPU(central processing unit)에 의해 전송되는 타겟 입자 시스템의 일반적인 속성 정보를 수신하는 동작- 상기 타겟 입자 시스템의 일반적인 속성 정보는 입자 디스플레이 범위, 입자 수명 주기 범위, 입자 속도 범위, 및 생성 시간을 포함함 -;
    상기 타겟 입자 시스템의 일반적인 속성 정보에 따라 상기 타겟 입자 시스템의 입자들을 생성하고 상기 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하는 동작- 각각의 입자의 입자 속성들은 해당 입자의 위치 정보, 속도 정보, 수명 주기 및 생성 시간을 포함함 -; 및
    상기 타겟 입자 시스템에서 상기 입자들의 입자 속성들에 따라 상기 타겟 입자 시스템의 입자들을 디스플레이하는 동작을 수행하고,
    상기 타겟 입자 시스템의 일반적인 속성 정보에 따라 상기 타겟 입자 시스템의 입자들을 생성하고 상기 타겟 입자 시스템의 입자들의 입자 속성들을 초기화하는 동작은,
    상기 입자 디스플레이 범위에서 상기 입자들의 상기 위치 정보를 랜덤하게 결정하고, 상기 입자 수명 주기 범위에서의 각각의 입자의 상기 수명 주기를 랜덤하게 결정하고, 상기 입자 속도 범위에서의 각각의 입자의 속도를 랜덤하게 결정하고, 상기 생성 시간의 결정된 수명 주기에서의 각각의 입자의 상기 생성 시간을 랜덤하게 결정하는 동작을 포함하고,
    상기 일반적인 속성 정보는 상기 타겟 입자 시스템의 주요 프레임 데이터를 추가로 포함하고, 상기 타겟 입자 시스템의 상기 주요 프레임 데이터는 적어도 하나의 주요 프레임의 대응하는 시간에서의 디스플레이 오브젝트 위치, 변경 속력 또는 디스플레이 컬러를 포함하고;
    상기 머신 판독 가능 명령어들은 상기 GPU에 의해 실행되어,
    상기 주요 프레임의 상기 대응하는 시간에서의 상기 디스플레이 오브젝트 위치에 따라 상기 타겟 입자 시스템에서의 상기 입자들의 상기 위치 정보를 결정하고, 상기 입자들의 위치들을 상기 주요 프레임에서 디스플레이되는 상기 디스플레이 오브젝트 위치로 조정하는 동작;
    상기 주요 프레임의 상기 대응하는 시간에서의 상기 변경 속력에 따라 상기 타겟 입자 시스템에서의 각각의 입자의 상기 속도 정보를 조정하는 동작; 및
    상기 주요 프레임의 상기 대응하는 시간에서의 상기 디스플레이 컬러에 따라 상기 타겟 입자 시스템에서의 상기 입자들의 컬러들을 조정하는 동작을 추가로 수행하는 비-휘발성 머신 판독 가능 저장 매체.
  18. 삭제
  19. 삭제
KR1020187018114A 2016-05-16 2017-05-11 입자 시스템을 위한 처리 방법 및 장치 KR102047615B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610324183.1A CN107392835B (zh) 2016-05-16 2016-05-16 一种粒子系统的处理方法及装置
CN201610324183.1 2016-05-16
PCT/CN2017/083917 WO2017198104A1 (zh) 2016-05-16 2017-05-11 一种粒子系统的处理方法及装置

Publications (2)

Publication Number Publication Date
KR20180087356A KR20180087356A (ko) 2018-08-01
KR102047615B1 true KR102047615B1 (ko) 2019-11-21

Family

ID=60325664

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187018114A KR102047615B1 (ko) 2016-05-16 2017-05-11 입자 시스템을 위한 처리 방법 및 장치

Country Status (4)

Country Link
US (1) US10699365B2 (ko)
KR (1) KR102047615B1 (ko)
CN (1) CN107392835B (ko)
WO (1) WO2017198104A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108665531A (zh) * 2018-05-08 2018-10-16 阿里巴巴集团控股有限公司 3d粒子模型的变换方法及装置
CN109191550B (zh) * 2018-07-13 2023-03-14 卓米私人有限公司 一种粒子渲染方法、装置、电子设备及存储介质
CN108933895A (zh) * 2018-07-27 2018-12-04 北京微播视界科技有限公司 三维粒子特效生成方法、装置和电子设备
CN109903359B (zh) * 2019-03-15 2023-05-05 广州市百果园网络科技有限公司 一种粒子的显示方法、装置、移动终端和存储介质
CN110213638B (zh) * 2019-06-05 2021-10-08 北京达佳互联信息技术有限公司 动画显示方法、装置、终端及存储介质
CN110415326A (zh) * 2019-07-18 2019-11-05 成都品果科技有限公司 一种粒子效果的实现方法及装置
CN111815749A (zh) * 2019-09-03 2020-10-23 厦门雅基软件有限公司 粒子计算方法、装置、电子设备及计算机可读存储介质
CN112215932B (zh) * 2020-10-23 2024-04-30 网易(杭州)网络有限公司 粒子动画处理方法、装置、存储介质及计算机设备
CN112270732A (zh) * 2020-11-17 2021-01-26 Oppo广东移动通信有限公司 粒子动画的生成方法、处理装置、电子设备和存储介质
CN112700518B (zh) * 2020-12-28 2023-04-07 北京字跳网络技术有限公司 拖尾视觉效果的生成方法、视频的生成方法、电子设备
CN113763701B (zh) * 2021-05-26 2024-02-23 腾讯科技(深圳)有限公司 路况信息的显示方法、装置、设备及存储介质
CN117194055B (zh) * 2023-11-06 2024-03-08 西安芯云半导体技术有限公司 Gpu显存申请及释放的方法、装置及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010507865A (ja) * 2006-10-27 2010-03-11 トムソン ライセンシング 2次元画像から3次元パーティクル・システムを復元するためのシステムおよび方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0104931D0 (en) * 2001-02-28 2001-04-18 Univ Leeds object interaction simulation
US20060155576A1 (en) * 2004-06-14 2006-07-13 Ryan Marshall Deluz Configurable particle system representation for biofeedback applications
CN100354894C (zh) * 2005-11-10 2007-12-12 北京航空航天大学 基于图形处理单元gpu的粒子系统实现方法
KR100898989B1 (ko) * 2006-12-02 2009-05-25 한국전자통신연구원 물 표면의 포말 생성 및 표현 장치와 그 방법
KR100889601B1 (ko) * 2006-12-04 2009-03-20 한국전자통신연구원 물 파티클 데이터를 이용한 물결과 거품 표현 장치 및 방법
CN101452582B (zh) * 2008-12-18 2013-09-18 北京中星微电子有限公司 一种实现三维视频特效的方法和装置
US8289327B1 (en) * 2009-01-21 2012-10-16 Lucasfilm Entertainment Company Ltd. Multi-stage fire simulation
CN102426692A (zh) * 2011-08-18 2012-04-25 北京像素软件科技股份有限公司 粒子绘制方法
CN102722859B (zh) * 2012-05-31 2014-05-14 北京像素软件科技股份有限公司 一种计算机仿真场景渲染方法
CN102982506A (zh) * 2012-11-13 2013-03-20 沈阳信达信息科技有限公司 基于gpu的粒子系统优化
CN104143208A (zh) * 2013-05-12 2014-11-12 哈尔滨点石仿真科技有限公司 一种大规模真实感雪景实时渲染方法
CN103714568B (zh) * 2013-12-31 2017-02-15 北京像素软件科技股份有限公司 一种大规模粒子系统的实现方法
CN104022756B (zh) * 2014-06-03 2016-09-07 西安电子科技大学 一种基于gpu架构的改进的粒子滤波方法
CN104571993B (zh) * 2014-12-30 2018-01-30 北京像素软件科技股份有限公司 粒子系统的处理方法、显卡和移动应用平台
CN104778737B (zh) * 2015-03-23 2017-10-13 浙江大学 基于gpu的大规模落叶实时渲染方法
CN104700446B (zh) * 2015-03-31 2017-10-03 境界游戏股份有限公司 一种粒子系统中粒子顶点数据的更新方法
US9905038B2 (en) * 2016-02-15 2018-02-27 Nvidia Corporation Customizable state machine for visual effect insertion

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010507865A (ja) * 2006-10-27 2010-03-11 トムソン ライセンシング 2次元画像から3次元パーティクル・システムを復元するためのシステムおよび方法

Also Published As

Publication number Publication date
CN107392835A (zh) 2017-11-24
CN107392835B (zh) 2019-09-13
US10699365B2 (en) 2020-06-30
KR20180087356A (ko) 2018-08-01
US20180342041A1 (en) 2018-11-29
WO2017198104A1 (zh) 2017-11-23

Similar Documents

Publication Publication Date Title
KR102047615B1 (ko) 입자 시스템을 위한 처리 방법 및 장치
US9842424B2 (en) Volume rendering using adaptive buckets
KR101563098B1 (ko) 커맨드 프로세서를 갖는 그래픽 프로세싱 유닛
CN105261066B (zh) 一种三维地理信息系统实时绘制多线程分配与控制方法
EP3246880A1 (en) Method and device for rendering an image of a scene comprising a real object and a virtual replica of the real object
US9588651B1 (en) Multiple virtual environments
CN104854622A (zh) 形成基于优化的多边形的外壳网格的方法
CN103679813B (zh) 三维数字地球的构建方法以及三维数字地球系统
CN105144243A (zh) 数据可视化
KR20170058113A (ko) 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법
CN110415326A (zh) 一种粒子效果的实现方法及装置
US10699470B2 (en) Methods and systems for representing a scene using orthographic and perspective projections
CN115082609A (zh) 图像渲染方法、装置、存储介质及电子设备
CN117390322A (zh) 虚拟空间构建方法、装置、电子设备及非易失性存储介质
KR20160068204A (ko) 메시 지오메트리를 위한 데이터 처리 방법 및 이를 기록한 컴퓨터 판독 가능 저장 매체
US20220237851A1 (en) Spatial partitioning in a multi-tenancy graphics processing unit
CN114494550B (zh) 基于WebGPU的渲染方法、电子设备及存储介质
Olsson et al. More efficient virtual shadow maps for many lights
WO2019042272A2 (en) MULTIPLE VIEW RENDERING SYSTEM AND METHOD
Döllner Geovisualization and real-time 3D computer graphics
CN110662099B (zh) 用于显示弹幕的方法和装置
CN111078392B (zh) 一种基于Unity的场景物件Mipmap Level统计方法及其系统
Miyachi et al. Parallelization of particle based volume rendering on tiled display wall
WO2022135050A1 (zh) 渲染方法、设备以及系统
Chaudhuri et al. Distributed rendering of virtual worlds

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