DE102015009222A1 - Malpinsel- und Flüssigkeitssimulation - Google Patents

Malpinsel- und Flüssigkeitssimulation Download PDF

Info

Publication number
DE102015009222A1
DE102015009222A1 DE102015009222.7A DE102015009222A DE102015009222A1 DE 102015009222 A1 DE102015009222 A1 DE 102015009222A1 DE 102015009222 A DE102015009222 A DE 102015009222A DE 102015009222 A1 DE102015009222 A1 DE 102015009222A1
Authority
DE
Germany
Prior art keywords
virtual
paint
realistic
paintbrush
simulated
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
DE102015009222.7A
Other languages
English (en)
Inventor
Byungmoon Kim
Nathan A. Carr
Zhili Chen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Systems Inc
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 Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of DE102015009222A1 publication Critical patent/DE102015009222A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B11/00Teaching hand-writing, shorthand, drawing, or painting
    • G09B11/10Teaching painting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/24Fluid dynamics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Beschrieben werden Malpinsel- und Flüssigkeitssimulationstechniken. Bei einer oder mehreren Implementierungen wird eine Eingabe zum Durchführen von Pinselstrichen mit einem virtuellen Malpinsel auf einer virtuellen Leinwand empfangen. Für virtuelle Farbe auf der virtuellen Leinwand werden wirklichkeitsnahe Maleigenschaften simuliert. Die wirklichkeitsnahen Maleigenschaften werden jedoch lediglich für diejenige virtuelle Farbe simuliert, die innerhalb eines Bereiches der Leinwand ist. Die wirklichkeitsnahen Maleigenschaften werden nicht für virtuelle Farbe, die außerhalb des Bereiches befindlich ist, simuliert. Als Teil des Simulierens der Wechselwirkung zwischen der virtuellen Farbe, dem virtuellen Malpinsel und der virtuellen Leinwand können verschiedene Teile der Simulation von verschiedenen Verarbeitungseinheiten durchgeführt werden. So können beispielsweise Borsten des virtuellen Malpinsels unter Verwendung einer ersten Verarbeitungsvorrichtung, so beispielsweise einer zentralen Verarbeitungseinheit (CPU), simuliert werden. Eine zweite Verarbeitungseinheit, so beispielsweise eine Grafikverarbeitungseinheit (GPU), kann zum Simulieren der wirklichkeitsnahen Effekte der virtuellen Farbe verwendet werden.

Description

  • Hintergrund
  • Herkömmliche Techniken zum Malen mit einem Computer sind allgemein unter Verwendung von wenigstens zwei Lösungsansätzen implementiert, nämlich einem prozeduralen Lösungsansatz und einem Simulationslösungsansatz. Prozedurale Lösungsansätze sind rechentechnisch schnell, begrenzen jedoch wirklichkeitsnahe Maleffekte, die simuliert werden können. Prozedurale Lösungsansätze implizieren typischerweise die Interpolation von festen zweidimensionalen (2D) Bildern, was als „Stamping” („Stempeln” bzw. „Prägen”) bezeichnet wird. Das Stamping versagt jedoch gegebenenfalls dabei, eine wirklichkeitsnahe Wechselwirkung eines virtuellen Malpinsels mit virtueller Farbe zu modellieren.
  • Im Gegensatz hierzu können Simulationslösungsansätze dergestalt beschrieben werden, dass sie Flüssigkeiten auf Leinwänden als zweidimensionale Höhenfelder simulieren oder dass sie das Sickerverhalten, das Perkolationsverhalten oder das Dispersionsverhalten von virtueller Farbe innerhalb einer virtuellen Leinwand simulieren. Die meisten Simulationslösungsansätze injizieren jedoch lediglich Flüssigkeiten auf Leinwände und verrühren die Flüssigkeit unter Verwendung eines Pinsels fester Form. Aufgrund dieser Beschränkungen wirken herkömmliche Techniken zum Simulieren der Wechselwirkung zwischen einem virtuellen Malpinsel, virtueller Farbe und einer virtuellen Leinwand jedoch gegebenenfalls nicht realistisch.
  • Zusammenfassung
  • Es werden Malpinsel- und Flüssigkeitssimulationstechniken beschrieben. Bei einer oder mehreren Implementierungen wird eine Eingabe zum Durchführen eines oder mehrerer Pinselstriche mit einem virtuellen Malpinsel auf einer virtuellen Leinwand empfangen. Für virtuelle Farbe auf der virtuellen Leinwand werden wirklichkeitsnahe Maleigenschaften simuliert. Die wirklichkeitsnahen Maleigenschaften werden jedoch lediglich für diejenige virtuelle Farbe simuliert, die innerhalb eines Bereiches der Leinwand befindlich ist. Die wirklichkeitsnahen Maleigenschaften werden nicht für virtuelle Farbe simuliert, die außerhalb des Bereiches befindlich ist. Die wirklichkeitsnahen Maleigenschaften, die simuliert werden, können beispielsweise das Aussehen der virtuellen Farbe, das Fließen der virtuellen Farbe zwischen der virtuellen Leinwand und dem virtuellen Malpinsel sowie die Geschwindigkeit der virtuellen Farbe beinhalten.
  • Als Teil einer Simulation der Wechselwirkung zwischen der virtuellen Farbe, dem virtuellen Malpinsel und der virtuellen Leinwand können verschiedene Teile der Simulation von verschiedenen Verarbeitungseinheiten durchgeführt werden. Borsten des virtuellen Malpinsels können beispielsweise an einer ersten Verarbeitungsvorrichtung, so beispielsweise einer zentralen Verarbeitungseinheit (CPU), simuliert werden. In Zusammenwirkung mit dem Simulieren der Borsten kann eine Borstendichtekarte berechnet werden. Die Borstendichtekarte kann sodann an eine zweite Verarbeitungseinheit, so beispielsweise eine Grafikverarbeitungseinheit (GPU), übermittelt werden. Die zweite Verarbeitungseinheit kann sodann zum Simulieren von wirklichkeitsnahen Effekten der virtuellen Farbe verwendet werden. In Verbindung damit kann eine Fluidoberflächenkarte berechnet werden. Die Fluidoberflächenkarte kann an die erste Verarbeitungseinheit übermittelt und zum Simulieren der Borsten des virtuellen Malpinsels verwendet werden. Zusätzlich kann die Fluidoberflächenkarte zum Rendern bzw. Geben eines Volumens der virtuellen Farbe zur Anzeige verwendet werden. Auf diese Weise kann die Wechselwirkung des virtuellen Pinsels mit der virtuellen Farbe und der virtuellen Leinwand in der Nähe des virtuellen Malpinsels wirklichkeitsnah wirken.
  • Die vorliegende Zusammenfassung führt in vereinfachter Form eine Auswahl von Konzepten ein, die nachstehend in der Detailbeschreibung beschrieben werden. Als solche soll die vorliegende Zusammenfassung wesentliche Merkmale des beanspruchten Gegenstandes weder identifizieren, noch soll sie als Hilfe beim Bestimmen des Umfanges des beanspruchten Gegenstandes verwendet werden.
  • Kurzbeschreibung der Zeichnung
  • Die Detailbeschreibung erfolgt anhand der begleitenden Figuren. In den Figuren identifiziert die am weitesten links stehende Ziffer eines Bezugszeichens oder identifizieren die am weitesten links stehenden Ziffern eines Bezugszeichens die Figur, in der das Bezugszeichen erstmalig auftritt. Die Verwendung derselben Bezugszeichen an verschiedenen Stellen in der Beschreibung und den Figuren kann ähnliche oder identische Objekte bezeichnen. Entitäten, die in den Figuren dargestellt sind, können ein oder mehrere Entitäten angeben, weshalb eine Verweisung auf eine oder mehrere Formen der Entitäten bei der Diskussion gleichwertig erfolgen kann.
  • 1 ist eine Darstellung einer Umgebung bei einer exemplarischen Implementierung, die zum Einsetzen der hier beschriebenen Techniken betreibbar ist.
  • 2 zeigt aus der Umgebung von 1 eine Rechenvorrichtung mit einem virtuellen Malpinsel sowie ein Flüssigkeitssimulationsmodul und mehrere Verarbeitungseinheiten detaillierter, die zum Implementieren einer Simulation eingesetzt werden können.
  • 3 zeigt ein Beispiel einer virtuellen Farbe, die auf eine virtuelle Leinwand unter Verwendung eines virtuellen Malpinsels aufgebracht wird, sowie ein Beispiel eines Bereiches, innerhalb dessen eine Simulation der Wechselwirkung durchgeführt wird.
  • 4 zeigt ein Beispiel, bei dem eine Simulation der Wechselwirkung zwischen der virtuellen Farbe, dem Malpinsel und der Leinwand zwischen mehreren verschiedenen Verarbeitungseinheiten aufgeteilt ist.
  • 5 zeigt ein Beispiel von Malpinselborstendaten, die an einer Verarbeitungseinheit berechnet werden, und einen entsprechenden Abschnitt von geglätteten Malpinselborstendaten, die an einer weiteren Verarbeitungseinheit berechnet werden können.
  • 6 ist ein Flussdiagramm zur Darstellung einer Prozedur bei einer exemplarischen Implementierung, bei der eine Wechselwirkung eines virtuellen Malpinsels, einer Farbe und einer Leinwand für einen Bereich der Leinwand simuliert wird.
  • 7 ist ein Flussdiagramm zur Darstellung einer Prozedur bei einer exemplarischen Implementierung, bei der Vorgänge, die in Verbindung mit der Malpinsel- und Flüssigkeitssimulation durchgeführt werden, zwischen einer ersten und einer zweiten Verarbeitungseinheit aufgeteilt sind.
  • 8 zeigt ein exemplarisches System, das verschiedene Komponenten einer exemplarischen Vorrichtung beinhaltet, die für eine oder mehrere Implementierungen von Malpinsel- und Flüssigkeitssimulationstechniken gemäß vorliegender Beschreibung eingesetzt werden können.
  • Detailbeschreibung
  • Überblick
  • Herkömmliche Techniken zum Simulieren von Wechselwirkungen zwischen virtueller Farbe, einem virtuellen Malpinsel und einer virtuellen Leinwand im Zusammenhang mit Malanwendungen schaffen dies gegebenenfalls nicht realistisch. Einige herkömmliche Techniken, die rechentechnisch schnell sind, sind beispielsweise gegebenenfalls nicht dazu in der Lage, Eigenschaften von virtueller Farbe wirklichkeitsnah zu simulieren. Andere herkömmliche Techniken bedienen sich gegebenenfalls eines virtuellen Malpinsels fester Form. Eine feste Form gibt jedoch nicht diejenige Art wieder, in der Malpinsel beim Malen in der realen Welt reagieren. Obwohl einige herkömmliche Techniken flexible Malpinsel verwenden, bewerkstelligen diese Techniken dies auf beschränkte Weise. So modellieren beispielsweise einige dieser herkömmlichen Lösungsansätze einen virtuellen Malpinsel als Geflecht mit Oberflächengitter. Hierdurch fehlen jedoch Effekte, die sich aus der Wechselwirkung der einzelnen Malpinselborsten ergeben. Andere herkömmliche Techniken zum virtuellen Malen, die sich eines flexiblen Malpinsels bedienen, leiden an einer Vielzahl von anderen Unzulänglichkeiten. Infolgedessen empfinden Anwender das Malen am Computer, das entsprechend herkömmlichen Techniken simuliert wird, gegebenenfalls als unrealistisch.
  • Es werden Malpinsel- und Flüssigkeitssimulationstechniken beschrieben. Bei einer oder mehreren Implementierungen werden wirklichkeitsnahe Eigenschaften für Wechselwirkungen zwischen virtueller Farbe, einem virtuellen Malpinsel und einer virtuellen Leinwand simuliert. Im Gegensatz zu herkömmlichen Techniken werden die wirklichkeitsnahen Eigenschaften für einen begrenzten Bereich der virtuellen Leinwand simuliert. Insbesondere werden die wirklichkeitsnahen Eigenschaften innerhalb eines Bereiches in der Nähe des virtuellen Malpinsels simuliert. Bewegt sich der virtuelle Malpinsel über die virtuelle Leinwand (beispielsweise entsprechend neuen Pinselstrichen), so folgt derjenige Bereich, für den die wirklichkeitsnahen Eigenschaften simuliert werden, dem virtuellen Malpinsel. Die wirklichkeitsnahen Eigenschaften werden nicht für diejenige virtuelle Farbe simuliert, die nicht innerhalb des Bereiches ist, also beispielsweise für diejenige, die jenseits einer Grenze des Bereiches ist.
  • Wird der Bereich dahingehend aktualisiert, dass er dem virtuellen Malpinsel folgt, so kann die Simulation der wirklichkeitsnahen Eigenschaften für diejenigen Abschnitte der virtuellen Leinwand, die nicht mehr in dem zu simulierenden Bereich befindlich sind, beendet werden. Durch lediglich auf diesen Bereich erfolgendes Begrenzen der Simulation der wirklichkeitsnahen Eigenschaften können Rechenressourcen die Eigenschaften der darin befindlichen virtuellen Farbe mit höherem Detailgrad simulieren. Des Weiteren kann das lediglich auf diesen Bereich erfolgende Begrenzen der Simulation der wirklichkeitsnahen Eigenschaften ermöglichen, dass eine Leinwand verwendet wird, die größer als bei herkömmlichen Techniken ist.
  • Zusätzlich zu der auf einen Bereich der Leinwand in der Nähe des virtuellen Malpinsels erfolgenden Begrenzung der Simulation der wirklichkeitsnahen Eigenschaften kann die Arbeitsbelastung beim Durchführen der Simulation zwischen mehreren verschiedenen Verarbeitungseinheiten aufgeteilt werden. Die Arbeitsbelastung kann beispielsweise zwischen einer zentralen Verarbeitungseinheit (CPU) und einer Grafikverarbeitungseinheit (GPU) aufgeteilt werden. Die CPU kann beispielsweise eine Borstensimulation für die Borsten eines virtuellen Malpinsels durchführen. Information, die diese Simulation angibt, kann sodann an die GPU übermittelt werden. Unter Verwendung dieser Information kann die GPU eine Fluidsimulation für die virtuelle Farbe durchführen. Information, die die Fluidsimulation angibt, kann sodann zurück an die GPU zur Verwendung bei der Durchführung der Borstensimulation übermittelt werden. Die CPU und die GPU können diese Aufgaben während der Simulation durchführen. Information, die von der CPU und der GPU berechnet wird, kann zur Wiedergabe der Wechselwirkung der virtuellen Farbe mit dem virtuellen Malpinsel und der virtuellen Leinwand zur Anzeige verwendbar sein.
  • Bei der nachfolgenden Diskussion wird zunächst eine exemplarische Umgebung beschrieben, die die hier beschriebenen Techniken einsetzen kann. Details zur exemplarischen Implementierung und zu Prozeduren hierfür, die in der exemplarischen Umgebung wie auch in anderen Umgebungen durchgeführt werden können, werden sodann beschrieben. Als Folge sind die Kapazitäten der exemplarischen Prozeduren nicht auf die exemplarische Umgebung beschränkt, und es ist die exemplarische Umgebung nicht auf die Kapazitäten der exemplarischen Prozeduren beschränkt.
  • Exemplarische Umgebung
  • 1 ist eine Darstellung einer Umgebung 100 bei einer exemplarischen Implementierung, die zum Einsetzen der hier beschriebenen Techniken betreibbar ist. Die dargestellte Umgebung 100 beinhaltet eine Rechenvorrichtung 102, die ein Verarbeitungssystem 104 aufweist, das ein oder mehrere Verarbeitungsvorrichtungen (beispielsweise Prozessoren) beinhalten kann, sowie ein oder mehrere computerlesbare Speichermedien 106. Die dargestellte Umgebung 100 beinhaltet zudem digitale Bilder 108 und ein Malpinsel- und Flüssigkeitssimulationsmodul 110 (PB&L-Simulationsmodul 110), das auf den computerlesbaren Speichermedien 106 verkörpert ist und über das Verarbeitungssystem 104 zum Implementieren einer entsprechenden hier beschriebenen Funktionalität betreibbar ist. Bei wenigstens einigen Implementierungen kann die Rechenvorrichtung 102 eine Funktionalität zum Zugreifen auf verschiedene Arten von webbasierten Ressourcen (Inhalt bzw. Content und Dienste bzw. Services) bieten, mit Online-Providern interagieren und dergleichen mehr, was nachstehend detaillierter beschrieben wird.
  • Die Rechenvorrichtung 102 kann als beliebiger geeigneter Typ von Rechenvorrichtung konfiguriert sein. Konfiguriert sein kann die Rechenvorrichtung 102 beispielsweise als Server, Desktopcomputer, Laptopcomputer, Mobilvorrichtung (beispielsweise unter Annahme einer Handgerätkonfiguration, so beispielsweise eines Tablets oder eines Mobiltelefons), als Vorrichtung mit Eignung zum Empfangen einer Gesten- bzw. Gebärdeneingabe, als Vorrichtung mit Eignung zum Empfangen von dreidimensionalen (3D) Gesten bzw. Gebärden als Eingabe, als Vorrichtung mit Eignung zum Empfangen einer Spracheingabe, als Vorrichtung mit Eignung zum Empfangen einer stiftbasierten Eingabe, als Vorrichtung mit Eignung zum Empfangen einer Kombination aus den genannten Eingaben und dergleichen mehr. Daher kann die Rechenvorrichtung 102 in einem Bereich von Vollressourcenvorrichtungen mit im Wesentlichen hohen Speicher- und Prozessorressourcen (beispielsweise Server, PCs, Spielkonsolen) zu einer Niedrigressourcenvorrichtung mit begrenztem Speicher und/oder begrenzten Verarbeitungsressourcen (beispielsweise Mobilfunkvorrichtungen) angesiedelt sein. Darüber hinaus kann, obwohl eine einzige Rechenvorrichtung 102 gezeigt ist, die Rechenvorrichtung 102 auch eine Mehrzahl von verschiedenen Vorrichtungen zum Durchführen von Vorgängen „über eine Cloud” darstellen, wie nachstehend anhand 8 weiter beschrieben wird.
  • Die Umgebung 100 zeigt des Weiteren einen oder mehrere Service-Provider 112 mit Eignung zum Kommunizieren mit der Rechenvorrichtung 102 über ein Netzwerk 114, so beispielsweise über das Internet, zur Bereitstellung einer „cloudbasierten” Rechenumgebung. Allgemein sind die Service-Provider 112 dafür geeignet, verschiedene Ressourcen 116 über das Netzwerk 114 für Clients bzw. Kunden verfügbar zu machen. Bei einigen der Szenarios können Anwender Konten bzw. Profile einrichten, die zum Zugreifen auf entsprechende Ressourcen von einem Provider eingesetzt werden. Der Provider kann Berechtigungsnachweise (credentials) eines Anwenders (beispielsweise Anwendername und Passwort) authentifizieren, bevor er einen Zugriff auf ein Konto bzw. Profil und entsprechende Ressourcen 116 ermöglicht. Andere Ressourcen 116 können frei zugänglich gemacht werden (beispielsweise ohne Authentifizierung oder konto- bzw. profilbasierten Zugriff). Die Ressourcen 116 können eine beliebige geeignete Kombination aus Diensten und/oder Inhalt beinhalten, die üblicherweise über ein Netzwerk durch einen oder mehrere Provider zugänglich gemacht werden. Einige Beispiele von Diensten beinhalten unter anderem Inhaltserstellungsdienste (content creation services), die Mal- und Zeichenanwendungen anbieten (beispielsweise Fresh Paint®, Creative Cloud® und dergleichen), Mal- und Zeichenspeicherdienste und/oder Dienste zum Teilen bzw. gemeinsamen Verwenden (sharing), soziale Netzwerkdienste (beispielsweise Facebook®, Twitter®, Instagram®, Hyperlapse® und dergleichen mehr) und ähnliches.
  • Diese Quellen können wesentliche Mengen von Bildinhalt liefern. Derartige digitale Bilder können in einem aus einer Vielzahl von Bildformaten formatiert sein, darunter unter anderem JPEG, TIFF, RAW, GIF, BMP, PNG und dergleichen mehr. Die digitalen Bilder, die durch die Dienste verfügbar gemacht werden, können von Anwendern, die Konten bzw. Profile bei diesen Diensten unterhalten, hinterlegt bzw. gepostet werden. So kann beispielsweise ein Anwender, der ein Konto bzw. Profil bei einem Mal- und Zeichenspeicherdienst und/oder einem Dienst zum Teilen bzw. gemeinsamen Verwenden unterhält, Bilder hochladen, so beispielsweise diejenigen, die er mit einer Malanwendung erstellt hat, oder diejenigen, die ihm über elektronische Mittel übersandt wurden. Ein Anwender des Mal- und Zeichenspeicherdienstes und/oder des Dienstes zum Teilen bzw. gemeinsamen Verwenden kann sodann seine hochgeladenen Bilder beispielsweise durch Bereitstellen eines Links zu einer Bildersammlung oder zu einem Profil des Anwenders mit anderen teilen.
  • Das PB&L-Simulationsmodul 110 bietet eine Funktionalität zum Implementieren der vorbeschriebenen Malpinsel- und Flüssigkeitssimulationstechniken. So kann das BP&L-Simulationsmodul 110 auf verschiedene Weisen konfiguriert sein, um wirklichkeitsnahe Eigenschaften für Wechselwirkungen im Zusammenhang mit virtueller Farbe zu simulieren, die auf eine virtuelle Leinwand mit einem virtuellen Malpinsel aufgebracht wird. So kann das PB&L-Simulationsmodul 110 beispielsweise dafür konfiguriert sein, wirklichkeitsnahe Eigenschaften zu simulieren, so beispielsweise das Aussehen von virtueller Farbe, das Fließen der virtuellen Farbe auf die virtuelle bzw. auf der virtuellen Leinwand, das Fließen der virtuellen Farbe zwischen dem virtuellen Malpinsel und der virtuellen Leinwand und dergleichen mehr.
  • In der realen Welt fließt Farbe gegebenenfalls weiter über die Leinwand und sickert in diese in Bereichen ein, die von einem Malpinsel entfernt sind. Die Menge, um die sich die Farbe in jenen Bereichen (beispielsweise infolge des Fließens, Sickerns und dergleichen) ändert, ist im Allgemeinen weit geringer als die Menge, um die sich die Farbe in der Nähe des Malpinsels (beispielsweise als Ergebnis von frisch aufgebrachten Pinselstrichen und dergleichen mehr) ändert. Auf Grundlage dieser Beobachtung kann das PB&L-Simulationsmodul 110 die wirklichkeitsnahen Eigenschaften für Wechselwirkungen im Zusammenhang mit virtueller Farbe innerhalb eines Bereiches der virtuellen Leinwand um den virtuellen Malpinsel herum simulieren. Bei einer oder mehreren Implementierungen simuliert das PB&L-Simulationsmodul 110 jedoch die wirklichkeitsnahen Eigenschaften nicht für virtuelle Farbe, die außerhalb des Bereiches befindlich ist. Obwohl das Beenden der Simulation von wirklichkeitsnahen Eigenschaften für virtuelle Farbe außerhalb des Bereiches bewirken kann, dass die virtuelle Farbe weniger wirklichkeitsnah aussieht, kann eine derartige Vorgehensweise Rechenressourcen freigeben, damit die wirklichkeitsnahen Eigenschaften für die virtuelle Farbe innerhalb des Bereiches simuliert werden können. Infolgedessen können detailliertere Eigenschaften innerhalb des Bereiches simuliert werden, wodurch bewirkt wird, dass die Farbe innerhalb des Bereiches wirklichkeitsnäher als bei herkömmlichen Techniken wirkt.
  • Darüber hinaus kann das PB&L-Simulationsmodul 110 eine Funktionalität zum zwischen mehreren Verarbeitungseinheiten erfolgenden Aufteilen der Arbeitsbelastung (beispielsweise der Rechenarbeitsbelastung) im Zusammenhang mit der Simulation der Wechselwirkung bieten. So kann das PB&L-Simulationsmodul 110 beispielsweise die Rechenarbeitsbelastung zwischen einer zentralen Verarbeitungseinheit (CPU) und einer Grafikverarbeitungseinheit (GPU) aufteilen. Zu diesem Zweck kann das PB&L-Simulationsmodul 110 die CPU zum Durchführen von Vorgängen der hier beschriebenen Techniken und die GPU zum Durchführen von anderem einsetzen. Bei einem Beispiel kann das PB&L-Simulationsmodul 110 die CPU zum Berechnen einer Borstendichtekarte für den virtuellen Malpinsel und die GPU zum Berechnen einer Fluidoberflächenkarte für die auf die virtuelle Leinwand aufgebrachte virtuelle Farbe einsetzen.
  • Die simulierte Wechselwirkung zwischen der virtuellen Farbe, dem virtuellen Malpinsel und der virtuellen Leinwand kann durch eine Anwenderschnittstelle angezeigt werden. Die hier beschriebenen Techniken können den Anwender einer Malanwendung in die Lage versetzen, Eingaben vorzunehmen, die bewirken, dass ein virtueller Malpinsel virtuelle Pinselstriche auf einer virtuellen Leinwand durchführt. Entsprechend kann, wenn eine Eingabe für die Pinselstriche empfangen wird, die Simulation bewirken, dass die virtuelle Farbe wirklichkeitsnah als Ergebnis der Pinselstriche erscheint.
  • Das PB&L-Simulationsmodul 110 kann als Softwaremodul, Hardwarevorrichtung oder unter Verwendung einer Kombination aus Software, Hardware, Firmware, einer Fixed-Logic-Schaltung und dergleichen mehr implementiert sein. Des Weiteren kann das PB&L-Simulationsmodul 110 als unabhängige Komponente der dargestellten Rechenvorrichtung 102 implementiert sein. Zusätzlich oder alternativ kann das PB&L-Simulationsmodul 110 als Komponente eines Webdienstes, als Anwendung, als Betriebssystem der Rechenvorrichtung 102, als Plug-in-Modul oder als andere Vorrichtungsanwendung, wie nachstehend weiter anhand 8 beschrieben wird, konfiguriert sein.
  • Nachdem die exemplarische Umgebung betrachtet worden ist, geht die Diskussion nunmehr zu einigen exemplarischen Details der Techniken der Malpinsel- und Flüssigkeitssimulation entsprechend einer oder mehreren Implementierungen über.
  • Details zur Malpinsel- und Flüssigkeitssimulation
  • Der vorliegende Abschnitt beschreibt einige exemplarische Details von Malpinsel- und Flüssigkeitssimulationstechniken entsprechend einer oder mehreren Implementierungen. 2 zeigt bei 200 allgemein einige Abschnitte der Umgebung 100 von 1, diese allerdings detaillierter. Insbesondere sind das Verarbeitungssystem 104 und die computerlesbaren Speichermedien 106 einer Rechenvorrichtung detaillierter gezeigt.
  • In 2 ist das Verarbeitungssystem 104 als Teil einer Rechenvorrichtung 202 dargestellt und beinhaltet eine zentrale Verarbeitungseinheit 204 (CPU 204) und eine Grafikverarbeitungseinheit 206 (GPU) 206. Die computerlesbaren Speichermedien 106 sind ebenfalls als Teil der Rechenvorrichtung 202 dargestellt und beinhalten das PB&L-Simulationsmodul 110, Malpinselborstendaten 208, Maldaten 210 und Leinwanddaten 212. Die Diskussion der in 2 dargestellten Komponenten kann anhand 3 bis 5 erfolgen, die Aspekte einer Malpinsel- und Flüssigkeitssimulation darstellen.
  • Allgemein kann das PB&L-Simulationsmodul 110 verschiedene Verarbeitungseinheiten (beispielsweise die CPU 204 und die GPU 206) zum Simulieren einer Wechselwirkung von virtueller Farbe mit einem virtuellen Malpinsel und einer virtuellen Leinwand einsetzen. In Verbindung mit den Begriffen „Farbe”, „Malpinsel” und „Leinwand” kann der Begriff „virtuell” die simulierte Farbe, den simulierten Malpinsel und die simulierte Leinwand beispielsweise als Teil einer Malanwendung (nicht gezeigt), die auf der Rechenvorrichtung 202 ausgeführt wird, bezeichnen. Unter Verwendung der hier beschriebenen Techniken kann die Simulation der Wechselwirkung zwischen virtueller Farbe, dem virtuellen Malpinsel und der virtuellen Leinwand jedoch wirklichkeitsnäher als bei Simulationen erscheinen, die herkömmliche Techniken verwenden.
  • 3 zeigt bei 300 ein Beispiel, bei dem virtuelle Farbe auf eine virtuelle Leinwand unter Verwendung eines virtuellen Malpinsels aufgebracht wird, sowie ein Beispiel für einen Bereich, innerhalb dessen eine Simulation der Wechselwirkung durchgeführt wird. Insbesondere zeigt 3 eine virtuelle Leinwand 302, einen virtuellen Malpinsel 304 und virtuelle Farbe 306. 3 zeigt zudem ein Szenario, bei dem eine Eingabe, die von einem Anwender zum Ausführen von Pinselstrichen mit dem virtuellen Malpinsel 304 empfangen wird, das Aufbringen der virtuellen Farbe 306 auf der virtuellen Leinwand 302 bewirkt. Die virtuelle Leinwand 302 ist durch Pfeile zum Angeben dessen dargestellt, dass sie sich in einer beliebigen Richtung über das dargestellte Ausmaß hinaus erstrecken kann. Es sollte einsichtig sein, dass die virtuelle Leinwand 302 eine Vielzahl von Formen aufweisen kann, ohne vom Wesen oder Umfang der hier beschriebenen Techniken abzugehen. Beispielhalber und nicht im Sinne einer Beschränkung kann die virtuelle Leinwand 302 eine Form aufweisen, die rechteckig, kreisförmig, dreieckig, oval und dergleichen mehr ist.
  • Allgemein ist das Simulieren von wirklichkeitsnahen Eigenschaften des Malens mit Blick auf Rechenressourcen kostenintensiv. Infolge der Begrenzung der Rechenressourcen ist das Simulieren von wirklichkeitsnahen Maleigenschaften für virtuelle Farbe auf einer kompletten Leinwand gegebenenfalls bei einigen Rechenvorrichtungen nicht umsetzbar. Gleichwohl können Rechenvorrichtungen Rechenressourcen aufweisen, die zum Implementieren von beschränkten Simulationen ausreichend sind. Einige herkömmliche Techniken können beispielsweise Maleigenschaften auf einer kompletten virtuellen Leinwand simulieren. Hierbei bedingt der Umstand, dass die virtuelle Farbe unter Verwendung dieser Techniken simuliert wird, gegebenenfalls kein wirklichkeitsnahes Aussehen der virtuellen Farbe. Im Gegensatz zu herkömmlichen Techniken können die Malpinsel- und Flüssigkeitssimulationstechniken aus vorliegender Beschreibung jedoch zu einem wirklichkeitsnahen Aussehen von virtueller Farbe in der Nähe des virtuellen Malpinsels führen.
  • Um das virtuelle Malen derart zu simulieren, dass es in der Nähe eines virtuellen Malpinsels wirklichkeitsnah erscheint, kann das PB&L-Simulationsmodul 110 die Simulation einer oder mehrerer wirklichkeitsnaher Maleigenschaften auf einen Bereich der virtuellen Leinwand um den virtuellen Malpinsel herum beschränken. In 3 ist die virtuelle Leinwand 302 durch den Bereich 308 dargestellt. Innerhalb des Bereiches 308 können die wirklichkeitsnahen Eigenschaften der virtuellen Farbe 306 detailliert simuliert werden. Die wirklichkeitsnahen Eigenschaften, die simuliert werden, können ein wirklichkeitsnahes Aussehen der Farbe, von Fluideigenschaften der Farbe (beispielsweise Fließen, Sickern und dergleichen mehr), Trocknungseigenschaften der Farbe (und Effekte des Trocknens für Fluideigenschaften) und dergleichen mehr beinhalten. Es sollte einsichtig sein, dass weitere wirklichkeitsnahe Eigenschaften innerhalb des Bereiches 308 für Wechselwirkungen im Zusammenhang mit der virtuellen Farbe simuliert werden können, ohne vom Wesen oder Umfang der hier beschriebenen Techniken abzugehen.
  • Der gesamte Satz von wirklichkeitsnahen Eigenschaften (beispielsweise diejenigen, die für die virtuelle Farbe innerhalb des Bereiches 308 simuliert werden) wird nicht für die virtuelle Farbe 306 außerhalb des Bereiches 308 simuliert. Beispielhalber werden die Fluideigenschaften gegebenenfalls nicht für die virtuelle Farbe 306 außerhalb des Bereiches 308 simuliert. Anstatt dessen erscheint die virtuelle Farbe außerhalb des Bereiches 308 „eingefroren”, was zum Beenden der Simulation der Fluideigenschaften der virtuellen Farbe (beispielsweise Fließen und Sickern) führen kann. Auch wenn sich die virtuelle Farbe 306 außerhalb des Bereiches 308 gegebenenfalls nicht mehr bewegt (beispielsweise aufgrund dessen, dass die Simulation der Fluideigenschaften hiervon beendet ist), kann ihr Aussehen ansonsten dennoch wirklichkeitsnah sein.
  • Wird eine Eingabe zum Ausführen von Pinselstrichen empfangen, so kann das PB&L-Simulationsmodul 110 den Bereich 308, innerhalb dessen die wirklichkeitsnahen Eigenschaften simuliert werden, ändern. Beispielhalber kann der Bereich, innerhalb dessen die wirklichkeitsnahen Eigenschaften simuliert werden, vorher unterhalb und links von demjenigen Bereich, wo der Bereich 308 in 3 dargestellt ist, lokalisiert gewesen sein. Wenn daher der Abschnitt der virtuellen Farbe 306, der außerhalb des Bereiches 308 dargestellt ist, aufgebracht wird, kann er innerhalb des Bereiches sein, der sodann simuliert wird. Unter dieser Voraussetzung kann das PB&L-Simulationsmodul 110 den gesamten Satz von wirklichkeitsnahen Maleigenschaften für jenen Abschnitt der virtuellen Farbe 306 zum Zeitpunkt der Aufbringung simuliert haben. Ist jedoch eine Eingabe für mehrere Pinselstriche empfangen worden, so kann das PB&L-Simulationsmodul 110 den Bereich, innerhalb dessen die wirklichkeitsnahen Eigenschaften simuliert werden, geändert haben.
  • Zum Ändern des Bereiches, innerhalb dessen die wirklichkeitsnahen Maleigenschaften simuliert werden, bestimmt das PB&L-Simulationsmodul 110 gegebenenfalls die Geschwindigkeit des virtuellen Malpinsels 304. Bei dem Beispiel bezeichnet bei 300 der Pfeil 310 die Geschwindigkeit. Die bestimmte Geschwindigkeit gibt sowohl die Schnelligkeit wie auch die Richtung des virtuellen Malpinsels 304 bei dessen Bewegung über die virtuelle Leinwand 302 an. Das PB&L-Simulationsmodul 110 kann die Geschwindigkeit auf Grundlage einer Eingabe bestimmen, die zum Ausführen von Pinselstrichen mit dem virtuellen Malpinsel 304 empfangen wird.
  • Zusätzlich zur Verwendung der Geschwindigkeit des virtuellen Malpinsels 304 zur Änderung desjenigen Bereiches, innerhalb dessen die wirklichkeitsnahen Maleigenschaften simuliert werden, verwendet das PB&L-Simulationsmodul 110 zudem gegebenenfalls eine vorherige Bahnkurve des virtuellen Malpinsels 304. Das PB&L-Simulationsmodul 110 bestimmt beispielsweise gegebenenfalls eine vorherige Rate der Biegungs- und Krümmungsänderung des virtuellen Malpinsels 304. Zu diesem Zweck kann das PB&L-Simulationsmodul 110 diese Information im Zusammenhang mit Information über denjenigen Weg, den der virtuelle Malpinsel 304 über der virtuellen Leinwand 302 nimmt, nachverfolgen und vorhalten. Die bestimmte Rate der Biegungs- und Krümmungsänderung kann bei der Vorhersage dessen wirkungsvoll sein, wo auf der virtuellen Leinwand 302 sich der virtuelle Malpinsel wahrscheinlich bewegt. Zusätzlich zur Krümmung und Geschwindigkeit kann das PB&L-Simulationsmodul zudem eine Beschleunigung des Pinsels nachverfolgen und diese Information mit derjenigen, die über den Weg vorgehalten wird, vorhalten. Die Information über die Beschleunigung des virtuellen Malpinsels 304 kann zudem bei der Vorhersage dessen von Nutzen sein, wo auf der virtuellen Leinwand 302 sich der virtuelle Malpinsel 304 wahrscheinlich bewegt.
  • Man betrachte ein Beispiel, bei dem eine Eingabe zum Durchführen von Pinselstrichen mit dem virtuellen Malpinsel 304 allgemein in der durch den Pfeil 310 dargestellten Richtung, das heißt nach oben und rechts, empfangen wird. Infolgedessen kann das PB&L-Simulationsmodul 110 die Geschwindigkeit des virtuellen Malpinsels 304 auf Grundlage der empfangenen Pinselstriche bestimmen. Das PB&L-Simulationsmodul 110 kann zudem die vorherige Bahnkurve und die Beschleunigung des virtuellen Malpinsels 304 in Verbindung mit der bestimmten Geschwindigkeit berücksichtigen. Das PB&L-Simulationsmodul kann dies durch Analysieren derjenigen Information bewerkstelligen, die über den Weg, der von dem virtuellen Malpinsel 304 über der virtuellen Leinwand 302 genommen wird, vorgehalten wird. Das PB&L-Simulationsmodul 110 kann sodann den Bereich entsprechend der vorherigen Bahnkurve und Beschleunigung des virtuellen Malpinsels 304 wie auch die bestimmte Geschwindigkeit beispielsweise durch nach oben und rechts erfolgendes Bewegen desjenigen Bereiches, für den die wirklichkeitsnahen Eigenschaften simuliert werden, sowie mit einer durch die Geschwindigkeit gegebenen Schnelligkeit ändern. Wird sodann eine Eingabe zum Ausführen von Pinselstrichen mit dem virtuellen Malpinsel 304 nach oben und links (nicht gezeigt) empfangen, so kann das PB&L-Simulationsmodul 110 sodann denjenigen Bereich, für den die wirklichkeitsnahen Eigenschaften simuliert werden, nach oben und links bewegen. Auf diese Weise kann der Bereich, innerhalb dessen die wirklichkeitsnahen Maleigenschaften simuliert werden, dem virtuellen Malpinsel 304 „folgen”.
  • Hinsichtlich der Bahnkurve kann das PB&L-Simulationsmodul 110 zum Ändern des Bereiches derart konfiguriert sein, dass die virtuelle Farbe 306 entlang des Weges, der von dem virtuellen Malpinsel 304 genommen wird, in dem Bereich gehalten wird. Mit anderen Worten, die virtuelle Farbe 306 entlang des Weges, der vorher genommen wurde, kann stärkeren Einfluss auf die Änderung des Bereiches ausüben. Auf diese Weise kann die Simulation der virtuellen Farbe 304 entlang der neueren Abschnitte des Weges länger (beispielsweise bis die Simulation der Fluideigenschaften hiervon beendet ist) als dann simuliert werden, wenn nur die Geschwindigkeit berücksichtigt wird.
  • Wie in 3 dargestellt ist, kann der Ort, an dem der virtuelle Malpinsel 304 in dem Bereich 308 angezeigt wird, von einem Zentrum des Bereiches 308 versetzt sein. Insbesondere kann der Anzeigeort des virtuellen Malpinsels 304 auf der bestimmten Geschwindigkeit beruhen. Das Ausmaß, in dem der virtuelle Malpinsel 304 vom Zentrum des Bereiches 308 versetzt ist, kann beispielsweise auf der Schnelligkeitskomponente der bestimmten Geschwindigkeit beruhen. Bewegt sich der virtuelle Malpinsel 304 über die virtuelle Leinwand 302 mit größerer Schnelligkeit, so kann der Versatz vom Zentrum des Bereiches 308 größer als in dem Fall sein, in dem sich der virtuelle Malpinsel 304 mit geringerer Schnelligkeit über die virtuelle Leinwand 302 bewegt. Bei einer oder mehreren Implementierungen kann, wenn der virtuelle Malpinsel 304 ruht (wenn also beispielsweise keine Eingabe zum Ausführen von Pinselstrichen zum Bewegen des virtuellen Malpinsels 304 über die virtuelle Leinwand 302 empfangen wird), er im Zentrum des Bereiches 308 angezeigt werden.
  • Des Weiteren kann die Richtung, in der der virtuelle Malpinsel 304 vom Zentrum des Bereiches 308 versetzt ist, auf einer Richtungskomponente der bestimmten Geschwindigkeit beruhen. Wenn sich beispielsweise der virtuelle Malpinsel 304 über die virtuelle Leinwand 302 in Richtung des Pfeiles 310 (beispielsweise nach oben und rechts) bewegt, kann der virtuelle Malpinsel 304 vom Zentrum des Bereiches 308 in ebenjener Richtung versetzt werden. Bewegt sich der virtuelle Malpinsel 304 über die virtuelle Leinwand 302 in einer Richtung nach oben und rechts, so kann indes die Richtung des Versatzes nach oben und rechts bezüglich des Zentrums gegeben sein. Auf ähnliche Weise kann der Versatz nach unten und links, nach unten und rechts, genau nach oben, genau nach unten, genau nach rechts, genau nach links und dergleichen mehr gegeben sein, was von der Richtung abhängig ist, in der der virtuelle Malpinsel 304 über die virtuelle Leinwand 302 bewegt wird.
  • Die Größe des Bereiches 308 kann ebenfalls auf der bestimmten Geschwindigkeit des virtuellen Malpinsels 304 bei dessen Bewegung über die virtuelle Leinwand 302 beruhen. Die Größe des Bereiches 308 kann beispielsweise umgekehrt mit der Schnelligkeit korrelieren, mit der der virtuelle Malpinsel 304 bewegt wird, sodass dann, wenn der virtuelle Malpinsel 304 mit größerer Schnelligkeit bewegt wird, der Bereich 308 kleiner als dann ist, wenn der virtuelle Malpinsel 304 mit geringerer Schnelligkeit bewegt wird. Auf diese Weise können die Rechenressourcen für die Simulation der wirklichkeitsnahen Eigenschaften innerhalb des Bereiches 308 angemessen sein, wenn der virtuelle Malpinsel 304 rasch bewegt wird.
  • Ändert sich der Bereich, innerhalb dessen die wirklichkeitsnahen Maleigenschaften simuliert werden, so kann das PB&L-Simulationsmodul 110 das Simulieren von einigen der wirklichkeitsnahen Maleigenschaften für die virtuelle Farbe 306, die nicht innerhalb des Bereiches befindlich ist, beenden. Man betrachte ein Beispiel, bei dem das PB&L-Simulationsmodul 110 wirklichkeitsnahe Maleigenschaften innerhalb eines „aktuellen” Bereiches der virtuellen Leinwand 302, so beispielsweise innerhalb des Bereiches 308, simuliert. Man betrachte zudem, dass vor dem Simulieren der wirklichkeitsnahen Maleigenschaften für den aktuellen Bereich das PB&L-Simulationsmodul 110 jene Eigenschaften für einen Bereich simuliert hat, der vorher als aktueller Bereich betrachtet worden sind. Ein Bereich, der als aktueller Bereich genau vor dem aktuellen Bereich betrachtet worden ist, kann als „vorher simulierter” Bereich betrachtet werden. Anders gesagt, der vorher simulierte Bereich ist der Bereich der virtuellen Leinwand 302, für den die wirklichkeitsnahen Maleigenschaften genau vor der Simulation jener Eigenschaften innerhalb des aktuellen Bereiches simuliert worden sind.
  • Angesichts der Art, in der der virtuelle Malpinsel 304 für eine Bewegung über die virtuelle Leinwand 302 konfiguriert ist, kann der aktuelle Bereich einen Abschnitt des vorher simulierten Bereiches wie auch einen Abschnitt der virtuellen Leinwand außerhalb des vorher simulierten Bereiches beinhalten. Bei einem Beispiel, bei dem der virtuelle Malpinsel 304 im Allgemeinen nach oben und rechts bewegt wird, kann der aktuelle Bereich obere rechte Abschnitte des vorher simulierten Bereiches wie auch Abschnitte der virtuellen Leinwand benachbart (beispielsweise in einer Richtung nach oben und rechts) zu jenen oberen rechten Abschnitten des vorher simulierten Bereiches beinhalten. Auf Grundlage einer derartigen Bewegung des virtuellen Malpinsels 304 beinhaltet der aktuelle Bereich indes gegebenenfalls keine unteren linken Abschnitte des vorher simulierten Bereiches. Das PB&L-Simulationsmodul 110 kann daher die Simulation der wirklichkeitsnahen Maleigenschaften für diese unteren linken Abschnitte des vorher simulierten Bereiches als Teil der Änderung des Simulierens jener Eigenschaften für den aktuellen Bereich beenden.
  • Allgemein gesagt bedeutet dies, dass das PB&L-Simulationsmodul 110 eine Funktionalität zum Simulieren einer Wechselwirkung der virtuellen Farbe 306 mit dem virtuellen Malpinsel 304 und der virtuellen Leinwand 302 detaillierter in der Nähe des virtuellen Malpinsels 304 und weniger detailliert in einem Abstand von dem virtuellen Malpinsel 304 bieten kann. Es sollte einsichtig sein, dass derjenige Bereich, innerhalb dessen die wirklichkeitsnahen Eigenschaften für die Wechselwirkung simuliert werden, eine Vielzahl von verschiedenen Formen aufweisen kann. Beispielhalber und nicht im Sinne einer Beschränkung kann der Bereich, innerhalb dessen die wirklichkeitsnahen Eigenschaften simuliert werden, zur Form der Leinwand passen (jedoch kleiner sein), und er kann ein Kreis, ein Quadrat und dergleichen mehr sein, ohne vom Wesen und Umfang der hier beschriebenen Techniken abzugehen. Bei einer oder mehreren Implementierungen kann der Bereich, innerhalb dessen die wirklichkeitsnahen Eigenschaften simuliert werden, durch Anzeigen eines Fensters, das den Bereich wie in 3 begrenzt, angegeben werden. Das begrenzende Fenster kann eine beliebige Vielzahl von Linienfarben oder Typen, so beispielsweise durchgezogen oder gestrichelt, aufweisen. Bei einer oder mehreren Implementierungen ist gegebenenfalls kein spezieller Indikator (beispielsweise kein begrenzendes Fenster) vorhanden, der zur Angabe dessen angezeigt wird, wo der Bereich, innerhalb dessen die wirklichkeitsnahen Eigenschaften simuliert werden, endet und die nicht simulierten Bereiche der virtuellen Leinwand beginnen.
  • Zusätzlich kann das PB&L-Simulationsmodul 110 eine Funktionalität zum Ändern der Größe des Bereiches 308 teilweise auf Grundlage von Kapazitäten der Rechenressourcen mit Verwendung zum Simulieren der Wechselwirkung der virtuellen Farbe, des virtuellen Malpinsels und der virtuellen Leinwand bieten. Zu diesem Zweck kann das PB&L-Simulationsmodul 110 Fähigkeiten (beispielsweise Rechenschnelligkeit, Speicher, Vorhandensein/Nichtvorhandensein von spezieller Hardware und dergleichen mehr) der Rechenressourcen bestimmen, die zum Simulieren der wirklichkeitsnahen Eigenschaften des virtuellen Malens innerhalb des Bereiches verwendet werden. Auf Grundlage der bestimmten Fähigkeiten kann das PB&L-Simulationsmodul 110 die Größe des Bereiches der Simulation derart bestimmen, dass die bestimmte Größe größer ist, wenn die Rechenressourcen als „bessere” Fähigkeiten aufweisend (beispielsweise höhere Rechenschnelligkeit, mehr Speicher, Vorhandensein von spezieller Hardware und dergleichen mehr) betrachtet werden, und kleiner, wenn die Rechenressourcen als geringere Fähigkeiten aufweisend (beispielsweise niedrigere Rechenschnelligkeit, weniger Speicher, Nichtvorhandensein von spezieller Hardware und dergleichen mehr) betrachtet werden.
  • Unabhängig von der Größe oder Form des Bereiches oder davon, welche wirklichkeitsnahen Maleigenschaften innerhalb des Bereiches simuliert werden, kann die Simulation durch Aufteilen der rechentechnischen Arbeitsbelastung zwischen mehreren Verarbeitungseinheiten durchgeführt werden. So kann beispielsweise das Rechnen im Zusammenhang mit dem Simulieren der Wechselwirkung der virtuellen Farbe, des virtuellen Malpinsels und der virtuellen Leinwand zwischen einer ersten und einer zweiten Verarbeitungseinheit, so beispielsweise einer zentralen Verarbeitungseinheit (CPU) und einer Grafikverarbeitungseinheit (GPU), aufgeteilt werden. Es sollte einsichtig sein, dass eine derartige Berechnung auch zwischen mehr als zwei Verarbeitungseinheiten aufgeteilt werden kann, ohne vom Wesen oder Umfang der hier beschriebenen Techniken abzugehen. Beispielhalber und nicht im Sinne einer Beschränkung können einige der Berechnungen unter Verwendung von spezieller Hardware durchgeführt werden, die zum Durchführen eines speziellen Teiles oder von speziellen Teilen der Simulation ausgelegt ist, so beispielsweise ein hardwareimplementiertes Borstenmodul mit Eignung zum Durchführen von Vorgängen im Zusammenhang mit der Simulation der Borsten des virtuellen Malpinsels 304.
  • 4 zeigt bei 400 ein Beispiel, bei dem die Simulation der Wechselwirkung zwischen der virtuellen Farbe, dem virtuellen Malpinsel und der virtuellen Leinwand zwischen mehreren verschiedenen Verarbeitungseinheiten aufgeteilt ist. Insbesondere zeigt 4 eine erste Verarbeitungseinheit 402 und eine zweite Verarbeitungseinheit 404. Die erste Verarbeitungseinheit 402 und die zweite Verarbeitungseinheit 404 können bezugsrichtig der CPU 204 und der GPU 206 gemäß Darstellung in 2 entsprechen.
  • Darüber hinaus zeigt 4 eine Vielzahl von Aufgaben, die zum Simulieren der Wechselwirkung der virtuellen Farbe, des virtuellen Malpinsels und der virtuellen Leinwand durchgeführt werden, wie auch einige Komponenten der Verarbeitungseinheiten zum Implementieren der Simulation. Die Aufgaben, die innerhalb der ersten Verarbeitungseinheit 402 und der zweiten Verarbeitungseinheit 404 gezeigt sind, können darstellen, welche Verarbeitungseinheit zum Durchführen der jeweiligen Aufgabe konfiguriert ist. Unabhängig davon, welche Aufgabe von welcher Verarbeitungseinheit durchgeführt wird, wird der Leistungsanfall der Aufgaben jedoch zwischen mehreren Verarbeitungseinheiten aufgeteilt. Zur Ermöglichung einer Aufteilung der Arbeitsbelastung können die Verarbeitungseinheiten zum Übertragen bzw. Übermitteln von Information (beispielsweise Malpinselborstendaten 208, Maldaten 210 und Leinwanddaten 212) untereinander zum Durchführen der verschiedenen Simulationsaufgaben konfiguriert sein.
  • Bei dem dargestellten Beispiel beinhaltet die erste Verarbeitungseinheit 402 Aufgaben für eine Borstensimulation 402 und eine Pinselvoxelisierungserzeugung 408. Die Borstensimulation 406 bietet die der ersten Verarbeitungseinheit 402 zu eigene Funktionalität zum Durchführen einer Masse-Feder-Simulation für die Borsten des virtuellen Malpinsels 304. Treten die Borsten eines realen Malpinsels mit Farbe, einer Leinwand oder anderen Borsten in Kontakt, so können sie beispielsweise derart reagieren, als ob eine federartige Kraft auf sie einwirken würde, was eine Biegung bei einem Kontakt mit einer anderen Oberfläche oder einem Objekt und eine Rückkehr zu einer entspannten Position nach einem derartigen Kontakt bedingt. Das Ausmaß, in dem sich jede Borste biegen kann, kann von der Festigkeit und Masse der Borste und der Oberfläche, mit der die Borste in Kontakt gelangt, abhängen. Des Weiteren kann die Richtung, in der sich jede Borste zu einem gegebenen Zeitpunkt biegt, von der Summe von Kräften abhängen, die auf die Borsten durch damit in Kontakt befindliche verschiedene Oberflächen und Objekte einwirken.
  • Die Masse-Feder-Simulation, die von der ersten Verarbeitungseinheit 402 durchgeführt wird, kann daher ermöglichen, dass die Borsten des virtuellen Malpinsels sich auf eine ähnliche Weise wie ein realer Malpinsel bewegend erscheinen. Die Borstensimulation 406 kann die der ersten Verarbeitungseinheit 402 zu eigene Funktionalität zum Durchführen der Masse-Feder-Simulation für Führungsborsten des virtuellen Malpinsels 304 bieten. Die Führungsborsten können diejenigen Borsten des virtuellen Malpinsels 304 bezeichnen, für die die Position einzeln von der ersten Verarbeitungseinheit 402 simuliert wird. Unter Verwendung der Position der Führungsborsten kann die Position der anderen Borsten (beispielsweise der Nichtführungsborsten) interpoliert werden. Man betrachte ein Beispiel, bei dem der virtuelle Malpinsel 304 225 Borsten aufweist, von denen 21 Führungsborsten sind. Die Borstensimulation 406 bietet eine Funktionalität zum Simulieren der 21 Führungsborsten entsprechend dem Masse-Feder-Modell. Die Position der anderen 204 Borsten kann jedoch unter Verwendung der Position der 21 Führungsborsten, die auf Grundlage der Simulation bestimmt wird, interpoliert werden. Damit wird die Position der anderen 204 Borsten gegebenenfalls nicht unter Verwendung des Masse-Feder-Modells simuliert.
  • Sobald eine derartige Simulation und Interpolation durchgeführt sind, kann die Pinselvoxelisierungserzeugung 408 durchgeführt werden, um Ergebnisse zu liefern. Die Pinselvoxelisierungserzeugung 408 bietet eine Funktionalität zum Erzeugen von Daten, die eine Position einer jeden Borste innerhalb eines dreidimensionalen (3D) Volumens, das dem virtuellen Malpinsel entspricht, angeben. Im Allgemeinen bezeichnet ein „Voxel” einen Wert, der in einem dreidimensionalen Raum in einem regelmäßigen Gitter dargestellt wird, wobei der Name eine Kombination aus „Volumen” und „Pixel” ist. Jedes Voxel kann mit einem Wert verknüpft sein, der eine Anzahl von Borsten angibt, bei denen davon ausgegangen wird, dass sie zu einem gegebenen Zeitpunkt in dem Voxel positioniert sind. Geben die Simulation und Interpolation beispielsweise an, dass keine Borsten in einem Voxel vorhanden sind, so ist dort der Wert „0” vorhanden. Entsprechend hat ein Voxel den Wert „1”, wenn die Simulation und Interpolation angeben, dass eine Borste in dem Voxel positioniert ist, „2”, wenn die Simulation und Interpolation angeben, dass zwei Borsten in dem Voxel positioniert sind, und so weiter.
  • 5 zeigt bei 500 einen exemplarischen Abschnitt einer Voxelisierung eines virtuellen Malpinsels und einen Abschnitt einer geglätteten Voxelisierung in Entsprechung hierzu. Insbesondere beinhaltet 5 einen Abschnitt einer Voxelisierung 502 und einen Abschnitt einer geglätteten Voxelisierung 504, die beide durch Linien 506, 508, die die Borsten darstellen, gezeigt sind. Der Abschnitt der Voxelisierung 502 zeigt ein Gitter aus Kästchen mit Zahlen. Jedes Kästchen in dem Abschnitt der Voxelisierung 502 stellt ein Voxel dar, und die Zahl gibt die Anzahl von Borsten des virtuellen Malpinsels 304 an, bei denen davon ausgegangen wird, dass sie in dem Voxel positioniert sind.
  • Bei dem dargestellten Beispiel wird davon ausgegangen, dass die Kästchen mit „0” keine darin positionierten Borsten aufweisen. Demgegenüber wird davon ausgegangen, dass die Kästchen mit „2” zwei darin positionierte Borsten aufweisen. Der Prozess des mit einem Voxel erfolgenden Verknüpfens einer Zahl, die die Borsten darstellt, bei denen davon ausgegangen wird, dass diese darin positioniert sind, kann als „Voxelisierung” eines Malpinsels bezeichnet werden.
  • Das Ergebnis der Pinselvoxelisierungserzeugung 408, also das dreidimensionale Gitter mit den Zahlen zur Angabe der in jedem Voxel positionierten Borsten, wird hier als „Borstendichtekarte” bezeichnet. Der Abschnitt der Voxelisierung 502 kann Information darstellen, die durch die Pinselvoxelisierungserzeugung 408 erzeugt wird. Des Weiteren kann die Borstendichte den Malpinselborstendaten 208 von 2 entsprechen. Sobald die Borstendichtekarte von der ersten Verarbeitungseinheit 402 berechnet worden ist, kann sie an die zweite Verarbeitungseinheit 404 übermittelt werden.
  • Die zweite Verarbeitungseinheit 404 ist derart dargestellt, dass sie Aufgaben zur Pinselvoxelisierungsfilterung 408, Fluidsimulation 412, Fluidoberfläche 414 und Fluidgeschwindigkeit 416 wahrnimmt, sowie auch derart, dass sie einen Volumengeber (volume renderer) 408 aufweist. Die Pinselvoxelisierungsfilterung 408 bietet eine Funktionalität zum Glätten der Borstendichtekarte, die sich aus der Pinselvoxelisierungserzeugung 408 ergibt. Wie in 5 gezeigt ist, kann der Abschnitt der geglätteten Voxelisierung 504 Information darstellen, die sich aus der Pinselvoxelisierungsfilterung 410 ergibt. Insbesondere können die Abschnitte 510 und 512 Abschnitte einer „geglätteten” Version einer Borstendichtekarte darstellen. Der Abschnitt 510 kann beispielsweise eine geringere Borstendichte als der Abschnitt 512 darstellen. Der Abschnitt 510 kann beispielsweise darstellen, dass ein entsprechender Abschnitt des virtuellen Malpinsels 304 wahrscheinlich eine darin positionierte Borste aufweist. Im Gegensatz hierzu kann der Abschnitt 512 darstellen, dass ein entsprechender Abschnitt des virtuellen Malpinsels 304 wahrscheinlich zwei darin positionierte Borsten aufweist. In jedem Fall ist davon auszugehen, dass die Abschnitte 510, 512 nicht auf eine Weise auf die Kästchen beschränkt sind, in der der Abschnitt der Voxelisierung 502 beschränkt ist. Vielmehr weisen die Abschnitte 510, 512 geglättete Grenzen auf.
  • Zum Glätten einer Borstendichtekarte, die sich aus der Pinselvoxelisierungserzeugung 408 ergibt, kann die Pinselvoxelisierungsfilterung 410 einen Gauß'schen Filter einsetzen. Zusätzlich hierzu oder alternativ kann die Pinselvoxelisierungsfilterung 410 eine der zweiten Verarbeitungseinheit 404 zu eigene Funktionalität zum Glätten einer Borstendichtekarte unter Verwendung einer Vielzahl von Filtern jenseits eines Gauß'schen Filters bieten, ohne vom Wesen und Umfang der hier beschriebenen Techniken abzugehen. Unabhängig vom Typ des eingesetzten Filters kann die Pinselvoxelisierungsfilterung 410 zu einer geglätteten Borstendichtekarte führen.
  • Die zweite Verarbeitungseinheit 404 kann damit die geglättete Borstendichtekarte verwenden, um Flüssigkeiten (beispielsweise die virtuelle Farbe 306) zu verrühren und eine Borste-an-Borste-Kollision aufzulösen. Beispielsweise kann die geglättete Borstendichtekarte die Simulation der virtuellen Farbe 306 derart begrenzen, dass die geglättete Borstendichtekarte als Grenze für die virtuelle Farbe 306 wirkt. Die Geschwindigkeit des virtuellen Malpinsels 304 und damit die Geschwindigkeit der Borsten, die durch die geglättete Borstendichtekarte dargestellt werden, kann zudem zum Simulieren der virtuellen Farbe verwendet werden. Die Geschwindigkeit der Borsten kann als Borstengeschwindigkeitskarte dargestellt werden, die durch die Dichte als Grenzschnelligkeit gesichtet wird.
  • Bei dem dargestellten Beispiel bietet die Fluidsimulation 412 eine der zweiten Verarbeitungseinheit 404 zu eigene Funktionalität zum Durchführen einer volumetrischen Flüssigkeitssimulation von virtueller Farbe auf einer virtuellen Leinwand. Die Fluidsimulation 412 kann die Aufgabe der Fluidoberfläche 414 und die Aufgabe der Fluidgeschwindigkeit 416 implizieren. Die Aufgabe der Fluidoberfläche 414 kann die der zweiten Verarbeitungseinheit 404 zu eigene Funktionalität zum Berechnen einer Fluidoberflächenkarte der virtuellen Farbe bieten. Die Fluidoberflächenkarte kann derart gedeutet werden, dass sie die Topographie der virtuellen Farbe auf der virtuellen Leinwand darstellt. Die Fluidoberflächenkarte, die im Zusammenhang mit der Aufgabe der Fluidoberfläche 414 berechnet wird, kann bewirken, dass der Volumengeber 418 ein Volumen der virtuellen Farbe 306 berechnet. Zu diesem Zweck kann der Volumengeber 418 ein volumetrisches gleichmäßiges Gitter, das die gesamte virtuelle Leinwand 302 bedeckt, in der zweiten Verarbeitungseinheit 404 als Volumentextur zuweisen.
  • Die Aufgabe der Fluidgeschwindigkeit 406 kann eine der zweiten Verarbeitungseinheit 404 zu eigene Funktionalität zum Berechnen von Information bieten, die Eigenschaften der virtuellen Farbe 306 entsprechend der Geschwindigkeit hiervon angibt. Zu diesem Zweck kann die Aufgabe der Fluidgeschwindigkeit 416 bestimmen, ob die betrachtete virtuelle Farbe hochgradig viskos (beispielsweise Ölfarbe und dergleichen) oder nicht hochgradig viskos (beispielsweise Wasserfarbe, asiatische Farbe und dergleichen mehr) ist. Farbe mit hoher Viskosität kann als eine hohe Geschwindigkeit und eine rasche Diffusion aufweisend betrachtet werden. Entspricht die simulierte virtuelle Farbe einer hochgradig viskosen Farbe, so kann die Aufgabe der Fluidgeschwindigkeit 416 ein kleines Volumen von virtueller Farbe um den virtuellen Malpinsel 304 herum innerhalb eines adaptiven Gitters simulieren. So kann beispielsweise ein kleines Simulationsgitter, das adaptiv ist und dem virtuellen Malpinsel 304 folgt, simuliert werden. Bei Farbe, die nicht hochgradig viskos ist, kann das Simulationsgitter derart adaptiert werden, dass ein größeres Simulationsgitter, das dem virtuellen Malpinsel 304 folgt, simuliert werden kann. Gleichwohl ermöglicht die Aufgabe der Fluidgeschwindigkeit 416, dass die Fluidsimulation 412 das Fluidverhalten in der Nähe des Pinsels derart simuliert, dass die virtuelle Farbe in der Nähe des Pinsels mit einem detaillierten Fließmuster fließt. Die Fluidsimulation 412 simuliert jedoch nicht das Fluidverhalten, das zu einem detaillierten Fließmuster führt, weiter weg von dem virtuellen Malpinsel. Dies trägt der Beobachtung Rechnung, dass sich in der realen Welt Farbe, die weiter weg von einer Pinselborste befindlich ist, infolge der Viskosität oder des Sickerns in die Leinwand langsamer ausbreitet.
  • Die Information, die von der Pinselvoxelisierungsfilterung 410 und den verschiedenen Teilen der Fluidsimulation 412 erzeugt wird, kann sodann an die erste Verarbeitungseinheit 402 zur Verwendung bei der Borstensimulation 406 übermittelt werden. So kann beispielsweise die geglättete Borstendichtekarte einem Downsampling unterzogen und für die erste Verarbeitungseinheit 402 kopiert werden. Die dem Downsampling unterzogene Version der geglätteten Borstendichtekarte kann sodann bei der Borstensimulation 406 zum Lösen einer Inter-Borsten-Kollision des virtuellen Malpinsels 304 verwendet werden. Entsprechend der Masse-Feder-Simulation kann die Borstensimulation 406 eine Kraft in Richtung des abnehmenden Gradienten auf der geglätteten Borstendichtekarte ausüben.
  • Fluidgeschwindigkeitsinformation, die sich aus der Aufgabe der Fluidgeschwindigkeit 416 ergibt, kann ebenfalls einem Downsampling unterzogen und für die erste Verarbeitungseinheit 402 kopiert werden. Diese Fluidgeschwindigkeitsinformation kann von der Borstensimulation 406 verwendet werden, um eine Zugkraft auf die Borsten des virtuellen Malpinsels 304 auszuüben. Die Fluidoberflächenkarte, die im Zusammenhang mit der Aufgabe der Fluidoberfläche 414 berechnet wird, kann ebenfalls an die erste Verarbeitungseinheit 402 übermittelt werden. Die Fluidoberflächenkarte kann bei der Borstensimulation 406 als Grenze für die Borsten des virtuellen Malpinsels verwendet werden. Die Borstensimulation 406 kann beispielsweise eine Borste projizieren, wenn diese die virtuelle Leinwand oder trockene virtuelle Farbe durchdringt. Zusätzlich kann die Aufgabe der Borstensimulation 406 eine dynamische Reibungskraft auf die Borsten des virtuellen Malpinsels 304 auf Grundlage der Grenzbedingungen, die sich aus der Fluidoberflächenkarte ergeben, ausüben.
  • Die Aufteilung von Simulationsaufgaben zwischen mehreren Verarbeitungseinheiten kann sich während der Simulation der Wechselwirkung zwischen der virtuellen Farbe, dem virtuellen Malpinsel und der virtuellen Leinwand fortsetzen. Des Weiteren kann die erzeugte Information (beispielsweise die geglättete Borstendichtekarte, die Fluidoberflächenkarte, die Fluidgeschwindigkeitsinformation und dergleichen mehr) zur Wiedergabe der Simulation zur Anzeige über eine Anzeigevorrichtung verwendbar sein.
  • Nach erfolgter Diskussion von exemplarischen Details der Techniken zur Malpinsel- und Flüssigkeitssimulation werden nun exemplarische Prozeduren zum Darstellen von zusätzlichen Aspekten der Techniken betrachtet.
  • Exemplarische Prozeduren
  • Der vorliegende Abschnitt beschreibt exemplarische Prozeduren für Malpinsel- und Flüssigkeitssimulationen bei einer oder mehreren Implementierungen. Aspekte der Prozeduren können in Hardware, Firmware oder Software oder auch in einer Kombination hieraus implementiert sein. Die Prozeduren sind als Satz von Blöcken gezeigt, die Vorgänge spezifizieren, die von einer oder mehreren Vorrichtungen durchgeführt werden, und sind nicht zwangsweise auf die gezeigten Reihenfolgen zum Durchführen der Vorgänge durch die jeweiligen Blöcke beschränkt. Bei wenigstens einigen Implementierungen können die Prozeduren von einer geeignet konfigurierten Vorrichtung durchgeführt werden, so beispielsweise den exemplarischen Rechenvorrichtungen 102, 202 von 1 und 2, die sich eines PB&L-Simulationsmoduls 110 bedienen.
  • 6 zeigt eine exemplarische Prozedur 600, bei der eine Wechselwirkung eines virtuellen Malpinsels, einer virtuellen Farbe und einer virtuellen Leinwand für einen Bereich der Leinwand simuliert wird. Empfangen wird eine Eingabe zum Durchführen eines oder mehrerer Pinselstriche mit einem virtuellen Malpinsel auf einer virtuellen Leinwand (Block 602). Ein Anwender kann beispielsweise eine Eingabe über eine Malanwendung zum Ausführen von Pinselstrichen mit dem virtuellen Malpinsel 304 auf der virtuellen Leinwand 302 durchführen. Die Eingabe kann mittels Ziehen einer Maus oder mittels Gedrückthalten einer oder mehrerer Tasten der Maus, mittels Wischen eines Fingers über einen berührungsempfindlichen Bildschirm, mittels Wischen eines Stiftes über einen Bildschirm und dergleichen mehr durchgeführt werden. Es sollte einsichtig sein, dass eine Vielzahl von verschiedenen Arten von Anwendereingaben zum Ausführen von Pinselstrichen mit dem virtuellen Malpinsel 304 auf der virtuellen Leinwand 302 empfangen werden kann. In Verbindung mit den virtuellen Pinselstrichen kann die virtuelle Farbe 306 auf die Leinwand aufgebracht werden.
  • Für virtuelle Farbe auf der virtuellen Leinwand werden wirklichkeitsnahe Eigenschaften innerhalb eines Bereiches der virtuellen Leinwand, der um die virtuelle Farbe herum befindlich ist, simuliert (Block 604). Außerhalb des Bereiches werden die wirklichkeitsnahen Maleigenschaften jedoch nicht für die virtuelle Farbe simuliert. Das PB&L-Simulationsmodul 110 simuliert beispielsweise wirklichkeitsnahe Maleigenschaften (beispielsweise Fließen, Sickern und dergleichen mehr) für die virtuelle Farbe 306, die innerhalb des Bereiches 308 befindlich ist. Das PB&L-Simulationsmodul 110 simuliert jedoch nicht die wirklichkeitsnahen Maleigenschaften für die virtuelle Farbe 306, die außerhalb des Bereiches 308 befindlich ist. Der Bereich, für den die wirklichkeitsnahen Maleigenschaften simuliert werden, entspricht einem Abschnitt der virtuellen Leinwand 302 in der Nähe des virtuellen Malpinsels 304. Bewegt sich der virtuelle Malpinsel 304 entsprechend der gerade empfangenen Pinselstriche über die Leinwand, so folgt der Bereich, für den die wirklichkeitsnahen Eigenschaften simuliert werden, dem virtuellen Malpinsel 304. Wie in 3 gezeigt ist, kann der Bereich 308 dem virtuellen Malpinsel 304 nach oben und rechts folgen, wenn eine Eingabe zum Ausführen von Pinselstrichen nach oben und rechts, wie durch den Pfeil 310 angedeutet ist, empfangen wird. Der Bereich kann dem virtuellen Malpinsel 304 auf ähnliche Weise folgen, wenn eine Eingabe zum Ausführen von Strichen in anderen Richtungen empfangen wird.
  • Es können auch zusätzliche Pinselstriche empfangen werden. Im Ergebnis wird der Bereich, innerhalb dessen die wirklichkeitsnahen Eigenschaften simuliert werden, aktualisiert (Block 606). Der aktualisierte Bereich beinhaltet Abschnitte eines vorher simulierten Bereiches sowie Abschnitte der virtuellen Leinwand außerhalb des vorher aktualisierten Bereiches. Wird eine Eingabe zum Ausführen von Pinselstrichen beispielsweise in der durch den Pfeil 310 angegebenen Richtung empfangen, so aktualisiert das PB&L-Simulationsmodul 110 den Bereich, für den die wirklichkeitsnahen Maleigenschaften simuliert werden, um dem virtuellen Malpinsel 304 zu folgen. Zu einem ersten Zeitpunkt kann der Bereich 308 dem aktuell simulierten Bereich entsprechen.
  • Zu einem zweiten Zeitpunkt nach dem ersten Zeitpunkt (beispielsweise wenn eine Anzeige der Simulation zum nächsten Mal aktualisiert wird) kann der Bereich 308 jedoch einem vorher simulierten Bereich entsprechen. Zu dem zweiten Zeitpunkt simuliert das PB&L-Simulationsmodul 110 daher die wirklichkeitsnahen Eigenschaften für einen Bereich, der oberhalb und rechts von dem Bereich 308 ist. Der Bereich, für den das PB&L-Simulationsmodul 110 die wirklichkeitsnahen Maleigenschaften simuliert, kann Abschnitte der virtuellen Leinwand beinhalten, die nicht in dem vorher simulierten Bereich befindlich sind, so beispielsweise den Bereich 308 des gerade beschriebenen Beispiels. Gleichwohl können Abschnitte des Bereiches 308 weiterhin innerhalb des Bereiches, in dem die wirklichkeitsnahen Maleigenschaften simuliert werden, befindlich sein. Wenn daher der Bereich 308 dem vorher simulierten Bereich entspricht, kann das PB&L-Simulationsmodul 110 die wirklichkeitsnahen Maleigenschaften für einen aktualisierten Bereich simulieren, der einige Abschnitte des Bereiches 308 sowie einige Abschnitte der virtuellen Leinwand 302 außerhalb des Bereiches 308 simuliert.
  • Die Simulation der wirklichkeitsnahen Eigenschaften wird an Abschnitten des vorher simulierten Bereiches beendet, die nicht in dem aktualisierten Bereich beinhaltet sind (Block 608). Ebenfalls bei dem Beispiel, bei dem der Bereich 308 dem vorher simulierten Bereich entspricht, kann das PB&L-Simulationsmodul 110 die Simulation derjenigen Abschnitte des Bereiches 308, die nicht in dem aktualisierten Bereich beinhaltet sind, beenden. Der aktualisierte Bereich beinhaltet gegebenenfalls beispielsweise nicht die unteren linken Abschnitte des Bereiches 308, wenn eine Eingabe zum Ausführen von Pinselstrichen in der durch den Pfeil 310 angegebenen Richtung empfangen wird. Infolgedessen kann das PB&L-Simulationsmodul 110 die Simulation der wirklichkeitsnahen Maleigenschaften für die virtuelle Farbe 306, die in dem unteren linken Abschnitt des Bereiches 308 befindlich ist, bei Aktualisieren des Bereiches beenden.
  • 7 zeigt eine exemplarische Prozedur 700, bei der Vorgänge, die im Zusammenhang mit der Malpinsel- und Flüssigkeitssimulation durchgeführt werden, zwischen einer ersten und einer zweiten Verarbeitungseinheit aufgeteilt sind. Als Teil der Simulation einer Wechselwirkung von virtueller Farbe mit einem virtuellen Malpinsel und einer virtuellen Leinwand werden Borsten des virtuellen Malpinsels unter Verwendung einer ersten Verarbeitungseinheit simuliert (Block 702). Im Zusammenhang mit dem Simulieren der Borsten des virtuellen Malpinsels wird eine Borstendichtekarte berechnet. Das PB&L-Simulationsmodul 110 setzt beispielsweise die erste Verarbeitungseinheit 402 ein, die der CPU 204 entsprechen kann, um die Borstensimulation 406 durchzuführen. Die CPU 204 kann die Borstensimulation 406 als Teil der Simulation einer Wechselwirkung zwischen der virtuellen Farbe 306 mit dem virtuellen Malpinsel 304 und der virtuellen Leinwand 302 durchführen. Sobald die Borsten simuliert sind, kann die CPU 204 eine Borstendichtekarte berechnen, die den Malpinselborstendaten 208 entspricht.
  • Die Borstendichtekarte wird an die zweite Verarbeitungseinheit übermittelt (Block 704). Das PB&L-Simulationsmodul 110 bewirkt beispielsweise, dass die Borstendichtekarte, die an der CPU 204 berechnet wird, für die zweite Verarbeitungseinheit 404, die der GPU 206 entsprechen kann, kopiert wird. Unter Verwendung der zweiten Verarbeitungseinheit wird die Borstendichtekarte geglättet (Block 706). Die GPU 206 kann beispielsweise einen Gauß'schen Filter für die Borstendichtekarte einsetzen. Die geglättete Borstendichtekarte, die von der GPU 206 berechnet wird, kann sodann zum Verrühren der Farbe und für die Inter-Borsten-Kollision verwendet werden.
  • Die zweite Verarbeitungseinheit wird zum Simulieren von wirklichkeitsnahen Maleigenschaften der virtuellen Farbe verwendet (Block 708). In Verbindung mit der Simulation der wirklichkeitsnahen Maleigenschaften wird eine Fluidoberflächenkarte berechnet. Das PB&L-Simulationsmodul 110 setzt beispielsweise die GPU 206 zum Durchführen der Aufgabe der Fluidoberfläche 414 und der Aufgabe der Fluidgeschwindigkeit 416 für die virtuelle Farbe 306 innerhalb des Bereiches 308 ein. In Verbindung mit diesen Aufgaben kann die GPU 206 eine Fluidoberflächenkarte und eine Fluidgeschwindigkeitsinformation berechnen.
  • Die Fluidoberflächenkarte wird an die erste Verarbeitungseinheit übermittelt (Block 710). Das PB&L-Simulationsmodul 110 bewirkt beispielsweise, dass die Fluidoberflächenkarte und die Fluidgeschwindigkeitsinformation einem Downsampling unterzogen und für die CPU 204 kopiert werden. An der CPU 204 kann die Fluidoberflächenkarte als Grenze zum Simulieren der Borsten des virtuellen Malpinsels 304 beispielsweise als Teil der Borstensimulation 406 verwendet werden. Die Fluidgeschwindigkeitsinformation kann bei der Borstensimulation 406 an der CPU 204 verwendet werden, um eine Zugkraft auf die Borsten des virtuellen Malpinsels 304 auszuüben.
  • Die Vorgänge entsprechend den Blöcken 702 bis 710 können während der Simulation einer Wechselwirkung zwischen der virtuellen Farbe 306, dem virtuellen Malpinsel 304 und der virtuellen Leinwand 302 wiederholt werden. Es sollte einsichtig sein, dass in dem Ausmaß, in dem mehrere verschiedene Verarbeitungseinheiten verwendet werden, die Vorgänge entsprechend diesen Blöcken parallel ausgeführt werden können. Die Borsten des virtuellen Malpinsels können zur gleichen Zeit, zu der eine Fluidoberflächenkarte berechnet wird, simuliert werden.
  • Nach erfolgter Beschreibung von exemplarischen Prozeduren entsprechend einer oder mehreren Implementierungen werden nunmehr ein exemplarisches System und eine exemplarische Vorrichtung betrachtet, die zum Implementieren der verschiedenen hier beschriebenen Techniken verwendet werden können.
  • Exemplarisches System und exemplarische Vorrichtung
  • 8 zeigt allgemein bei 800 ein exemplarisches System, das eine exemplarische Rechenvorrichtung 802 beinhaltet, die ein oder mehrere Rechensysteme und/oder Vorrichtungen, die die verschiedenen hier beschriebenen Techniken implementieren können, darstellt. Dies ist durch die Einbeziehung des PB&L-Simulationsmoduls 110 dargestellt, das gemäß vorstehender Beschreibung arbeitet. Die Rechenvorrichtung 802 kann beispielsweise ein Server eines Service-Providers, eine Vorrichtung in Zusammenarbeit mit einem Client (beispielsweise einer Clientvorrichtung), ein chipinternes System und/oder eine beliebige andere geeignete Rechenvorrichtung oder ein solches Rechensystem sein.
  • Die exemplarische Rechenvorrichtung 802 beinhaltet ein Verarbeitungssystem 804, ein oder mehrere computerlesbare Medien 806 sowie eine oder mehrere I/O-Schnittstellen 808, die kommunikativ miteinander gekoppelt sind. Obwohl dies nicht dargestellt ist, kann die Rechenvorrichtung 802 des Weiteren einen Systembus oder andere Daten sowie ein Befehlsübertragungssystem beinhalten, das die verschiedenen Komponenten miteinander koppelt. Ein Systembus kann eine oder mehrere aus einer Kombination von verschiedenen Busstrukturen beinhalten, so beispielsweise einen Speicherbus oder eine Speichersteuerung bzw. Regelung, einen Peripheriebus, einen universellen seriellen Bus und/oder einen Prozessor oder einen lokalen Bus, der eine Vielzahl von Busarchitekturen verwendet. Eine Vielzahl von weiteren Beispielen ist ebenfalls mit einbezogen, so beispielsweise Steuer- bzw. Regel- und Datenleitungen.
  • Das Verarbeitungssystem 804 bietet eine Funktionalität zum Durchführen einer oder mehrerer Vorgänge unter Verwendung von Hardware. Entsprechend ist das Verarbeitungssystem 804 derart dargestellt, dass es Hardwareelemente 810 beinhaltet, die als Prozessoren, funktionelle Blöcke und dergleichen konfiguriert sein können. Dies kann eine Implementierung in Hardware als anwendungsspezifische integrierte Schaltung oder als eine andere logische Schaltung mit Ausbildung unter Verwendung eines oder mehrerer Halbleiter beinhalten. Die Hardwareelemente 810 sind nicht auf die Materialien, aus denen sie gebildet sind, oder auf die Verarbeitungsmechanismen, die darin zur Anwendung kommen, beschränkt. So können Prozessoren beispielsweise aus einem Halbleiter oder Halbleitern und/oder Transistoren (beispielsweise elektronische integrierte Schaltungen (ICs)) zusammengesetzt sein. In diesem Zusammenhang können die prozessorausführbaren Anweisungen elektronisch ausführbare Anweisungen sein.
  • Die computerlesbaren Speichermedien 806 sind derart dargestellt, dass sie einen Speicher 812 beinhalten. Der Speicher 812 stellt eine Speicherkapazität im Zusammenhang mit einer oder mehreren computerlesbaren Medien bereit. Die Speicherkomponente 812 kann flüchtige Medien (so beispielsweise einen Speicher mit wahlfreiem Zugriff (RAM)) und/oder nichtflüchtige Medien (so beispielsweise einen Nur-Lese-Speicher (ROM), einen Flash-Speicher, optische Platten, magnetische Platten und dergleichen mehr) beinhalten. Die Speicherkomponente 812 kann feste Medien (beispielsweise RAM, ROM, ein Festplattenlaufwerk und dergleichen mehr) wie auch entfernbare Medien (beispielsweise ein Flash-Speicher, eine entfernbare Festplatte, eine optische Platte und dergleichen mehr) beinhalten. Die computerlesbaren Medien 806 können auf eine Vielzahl von anderen Arten, die nachstehend noch beschrieben werden, konfiguriert sein.
  • Eine Eingabe-/Ausgabeschnittstelle oder Eingabe-/Ausgabeschnittstellen 808 bieten eine Funktionalität zum Ermöglichen dessen, dass ein Anwender Befehle und Information in die Rechenvorrichtung 802 eingibt, und ermöglichen zudem, dass Information dem Anwender und/oder anderen Komponenten oder Vorrichtungen unter Verwendung von verschiedenen Eingabe-/Ausgabevorrichtungen vorgelegt wird. Beispiele für Eingabevorrichtungen beinhalten eine Tastatur, eine Cursorsteuer- bzw. Regelvorrichtung (beispielsweise eine Maus), ein Mikrofon, einen Scanner, eine Berührungsfunktionalität (beispielsweise kapazitive oder andere Sensoren, die zum Erfassen einer physischen Berührung konfiguriert sind), eine Kamera (die sichtbare oder unsichtbare Wellenlängen, so beispielsweise Infrarotfrequenzen, einsetzen kann, um eine Bewegung als Gesten bzw. Gebärden, die keine Berührung implizieren, zu erkennen), und dergleichen mehr. Beispiele für Ausgabevorrichtungen beinhalten eine Anzeigevorrichtung (beispielsweise einen Monitor oder Projektor), Lautsprecher, einen Drucker, eine Netzwerkkarte, eine taktil reaktive Vorrichtung und dergleichen mehr. Die Rechenvorrichtung 802 kann daher auf eine Vielzahl von Weisen, die nachstehend noch beschrieben werden, konfiguriert sein, um eine Anwenderinteraktion zu unterstützen.
  • Es sind hier verschiedene Techniken im allgemeinen Kontext von Software, Hardwareelementen oder Programmmodulen beschrieben worden. Im Allgemeinen beinhalten derartige Module Routinen, Programme, Objekte, Elemente, Komponenten, Datenstrukturen und dergleichen mehr, die bestimmte Aufgaben durchführen oder verschiedene abstrakte Datentypen implementieren. Die Begriffe „Modul”, „Funktionalität” und „Komponente” bezeichnen im vorliegenden Zusammenhang allgemein Software, Firmware, Hardware oder eine Kombination hieraus. Die Merkmale der hier beschriebenen Techniken sind plattformunabhängig, was bedeutet, dass die Techniken auf einer Vielzahl von herkömmlichen Rechenplattformen mit einer Vielzahl von Prozessoren implementiert sein können.
  • Eine Implementierung der beschriebenen Module und Techniken kann auf irgendeiner Art von computerlesbaren Medien gespeichert oder über ein solches übertragen werden. Die computerlesbaren Medien können eine Vielzahl von Medien beinhalten, auf die von der Rechenvorrichtung 802 zugegriffen werden kann. Beispielhalber und nicht im Sinne einer Beschränkung können die computerlesbaren Medien „computerlesbare Speichermedien” und „computerlesbare Signalmedien” beinhalten.
  • „Computerlesbare Speichermedien” bezeichnen Medien und/oder Vorrichtungen, die ein fortwährendes und/oder nichtvorübergehendes Speichern von Information ermöglichen, im Gegensatz zu einer bloßen Signalübertragung, Trägerwellen oder Signalen als solche. Damit beinhalten computerlesbare Speichermedien nicht Signale als solche oder Signalträgermedien. Die computerlesbaren Speichermedien beinhalten Hardware, so beispielsweise flüchtige und nichtflüchtige, entfernbare und nichtentfernbare Medien, und/oder Speichervorrichtungen, die in einem Verfahren oder einer Technologie mit Eignung zum Speichern von Information implementiert sind, so beispielsweise computerlesbare Anweisungen, Datenstrukturen, Programmmodule, logische Elemente/Schaltungen oder andere Daten. Beispiele für computerlesbare Speichermedien können unter anderem RAM, ROM, EEPROM, Flash-Speicher oder eine andere Speichertechnologie, CD-ROM, DVD oder einen anderen optischen Speicher, Festplatten, magnetische Kassetten, Magnetbänder, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen, oder eine andere Speichervorrichtung, physische Medien oder ein Herstellungserzeugnis mit Eignung zum Speichern der gewünschten Information und mit Zugänglichkeit durch einen Computer beinhalten.
  • „Computerlesbare Signalmedien” bezeichnen ein Signalträgermedium, das zum Übertragen von Anweisungen an die Hardware der Rechenvorrichtung 802 beispielsweise über ein Netzwerk konfiguriert ist. Signalmedien können typischerweise computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten in einem modulierten Datensignal, so beispielsweise Trägerwellen, Datensignale oder einem anderen Transportmechanismus, verkörpern. Signalmedien beinhalten zudem beliebige Informationsverteilungsmedien. Der Begriff „moduliertes Datensignal” bezeichnet ein Signal, das eine oder mehrere Eigenschaften aufweist, die auf eine Weise eingestellt oder geändert sind, dass Information in dem Signal codiert ist. Beispielhalber und nicht im Sinne einer Beschränkung beinhalten Kommunikationsmedien drahtgebundene Medien, so beispielsweise ein drahtgebundenes Netzwerk oder eine direkte drahtgebundene Verbindung, sowie drahtlose Medien, so beispielsweise akustische, funkbasierte, infrarotbasierte und andere drahtlose Medien.
  • Wie vorstehend beschrieben worden ist, sind Hardwareelemente 810 und computerlesbare Medien 806 Beispiele für Module, eine programmierbare Vorrichtungslogik und/oder eine feste Vorrichtungslogik mit Implementierung in Hardwareform, die bei verschiedenen Implementierungen zum Implementieren wenigstens einiger Aspekte der hier beschriebenen Techniken, so beispielsweise zum Durchführen einer oder mehrerer Anweisungen, eingesetzt werden können. Die Hardware kann Komponenten einer integrierten Schaltung oder eines chipinternen Systems, eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA), eine komplexe programmierbare logische Vorrichtung (CPLD) und andere Implementierungen in Silizium oder anderer Hardware beinhalten. In diesem Zusammenhang kann Hardware als Verarbeitungsvorrichtung wirken, die Programmaufgaben durchführt, die durch Anweisungen und/oder eine Logik definiert sind, die durch Hardware verkörpert ist, wie auch Hardware, die zum Speichern von Anweisungen zur Ausführung verwendet wird, so beispielsweise die vorbeschriebenen computerlesbare Speichermedien.
  • Kombinationen des Vorbeschriebenen können ebenfalls zum Implementieren von verschiedenen der hier beschriebenen Techniken eingesetzt werden. Entsprechend können Software, Hardware oder ausführbare Module als eine oder mehrere Anweisungen und/oder eine Logik mit Verkörperung in irgendeiner Form von computerlesbaren Medien und/oder durch ein oder mehrere Hardwareelemente 810 implementiert sein. Die Rechenvorrichtung 802 kann zum Implementieren von verschiedenen Anweisungen und/oder Funktionen entsprechend der Software- und/oder Hardwaremodule konfiguriert sein. Entsprechend kann eine Implementierung eines Moduls, das durch die Rechenvorrichtung 802 als Software implementiert ist, wenigstens teilweise durch Hardware bewerkstelligt werden, beispielsweise unter Verwendung von computerlesbaren Speichermedien und/oder Hardwareelementen 810 des Verarbeitungssystems 804. Die Anweisungen und/oder Funktionen können von einem oder mehreren Herstellungsobjekten ausführbar/betreibbar sein (beispielsweise eine oder mehrere Rechenvorrichtungen 802 und/oder Verarbeitungssysteme 804), um Techniken, Module und Beispiele aus vorliegender Beschreibung zu implementieren.
  • Die hier beschriebenen Techniken können durch verschiedene Konfigurationen der Rechenvorrichtung 802 unterstützt werden und sind nicht auf die spezifischen Beispiele der hier beschriebenen Techniken beschränkt. Diese Funktionalität kann ebenfalls gänzlich oder in Teilen unter Verwendung eines verteilten Systems implementiert sein, so beispielsweise über eine „Cloud” 814 über eine Plattform 816, was nachstehend noch beschrieben wird.
  • Die Cloud 814 beinhaltet und/oder stellt eine Plattform 816 für Ressourcen 818 dar. Die Plattform 816 abstrahiert eine darunter liegende Funktionalität von Hardware- (beispielsweise Server-) und Softwareressourcen der Cloud 814. Die Ressourcen 818 können Anwendungen und/oder Daten beinhalten, die verwendet werden können, während die Computerverarbeitung auf Servern durchgeführt wird, die von der Rechenvorrichtung 802 entfernt sind. Die Ressourcen 818 können zudem Dienste beinhalten, die über das Internet und/oder ein teilnehmergebundenes Netzwerk, so beispielsweise ein zellbasiertes oder ein Wi-Fi-Netzwerk, bereitgestellt werden.
  • Die Plattform 816 kann Ressourcen und Funktionen zum Verbinden der Rechenvorrichtung 802 mit anderen Rechenvorrichtungen abstrahieren. Die Plattform 816 kann zudem dem abstrakten Skalieren von Ressourcen zum Bereitstellen eines entsprechenden Niveaus der Skalierung je nach vorhandenem Bedarf für die Ressourcen 818, die über die Plattform 816 implementiert sind, dienen. Entsprechend kann in einer wechselseitig verbundenen Vorrichtungsimplementierung eine Implementierung der hier beschriebenen Funktionalität auch über das System 800 verteilt sein. So kann die Funktionalität beispielsweise teilweise auf der Rechenvorrichtung 802 wie auch über die Plattform 816, die die Funktionalität der Cloud 814 abstrahiert, implementiert sein.
  • Schlussbemerkung
  • Obwohl die Erfindung in einer Sprache beschrieben worden ist, die für strukturelle Merkmale und/oder methodologische Vorgänge spezifisch ist, sollte einsichtig sein, dass die in den beigefügten Ansprüchen definierte Erfindung nicht zwangsweise auf die beschriebenen spezifischen Merkmale oder Vorgänge beschränkt ist. Die spezifischen Merkmale oder Vorgänge sind vielmehr als exemplarische Formen der Implementierung der beanspruchten Erfindung offenbart.

Claims (20)

  1. Durch eine Rechenvorrichtung implementiertes Verfahren zum Simulieren von wirklichkeitsnahen Maleigenschaften in einer virtuellen Malumgebung, wobei das Verfahren umfasst: Empfangen einer Eingabe zum Beschreiben eines oder mehrerer Pinselstriche eines virtuellen Malpinsels (304) auf einer virtuellen Leinwand (302); und für virtuelle Farbe (306) auf der virtuellen Leinwand (302) erfolgendes Simulieren einer oder mehrerer der wirklichkeitsnahen Maleigenschaften innerhalb eines Bereiches (308) der virtuellen Leinwand (302) im Zusammenhang mit dem virtuellen Malpinsel (304), wobei die eine oder die mehreren wirklichkeitsnahen Maleigenschaften nicht für die virtuelle Farbe (306) außerhalb des Bereiches simuliert werden und die eine oder die mehreren wirklichkeitsnahen Maleigenschaften teilweise auf Grundlage einer Wechselwirkung des virtuellen Malpinsels (304) mit der virtuellen Farbe (306) entsprechend dem einen oder den mehreren Pinselstrichen simuliert werden.
  2. Verfahren nach Anspruch 1, wobei der Bereich (308) im Zusammenhang mit der einen oder den mehreren wirklichkeitsnahen Maleigenschaften auf Grundlage einer Bahnkurve des virtuellen Malpinsels (304) simuliert wird.
  3. Verfahren nach Anspruch 1 oder 2, des Weiteren umfassend: Aktualisieren des Bereiches (308) der virtuellen Leinwand (302) im Zusammenhang mit der einen oder den mehreren wirklichkeitsnahen Maleigenschaften welche Simuliert werden, wobei der aktualisierte Bereich wenigstens einen Abschnitt eines vorher simulierten Bereiches der virtuellen Leinwand (302) und einen Abschnitt der virtuellen Leinwand außerhalb des vorher simulierten Bereiches beinhaltet; und Beenden der Simulation der einen oder der mehreren wirklichkeitsnahen Maleigenschaften für die virtuelle Farbe (306) an Abschnitten des vorher simulierten Bereiches, die nicht in dem aktualisierten Bereich beinhaltet sind.
  4. Verfahren nach Anspruch 3, des Weiteren umfassend ein Bestimmen des aktualisierten Bereiches entsprechend einem oder mehreren zusätzlichen Pinselstrichen.
  5. Verfahren nach Anspruch 3 oder 4, wobei das Beenden der Simulation der einen oder der mehreren wirklichkeitsnahen Maleigenschaften ein Beenden der Simulation von Fluideigenschaften der virtuellen Farbe impliziert, beinhaltend: Fließen der virtuellen Farbe auf der virtuellen bzw. auf die virtuelle Leinwand; und Sickern der virtuellen Farbe in die virtuelle Leinwand.
  6. Verfahren nach einem der Ansprüche 1 bis 5, des Weiteren umfassend: Anzeigen eines Abschnittes der virtuellen Leinwand (302), der den Bereich (308) beinhaltet, innerhalb dessen die eine oder die mehreren wirklichkeitsnahen Maleigenschaften simuliert werden; und Anzeigen des virtuellen Malpinsels (304) innerhalb des Bereiches und mit Versatz von einem Zentrum des Bereiches, wobei der Versatz teilweise auf einer Richtung des einen oder der mehreren Pinselstriche beruht.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei die eine oder die mehreren wirklichkeitsnahen Maleigenschaften, die simuliert werden, ein Aussehen der virtuellen Farbe (306) beinhalten.
  8. Verfahren nach einem der Ansprüche 1 bis 7, wobei die eine oder die mehreren wirklichkeitsnahen Maleigenschaften, die simuliert werden, ein Fließen der virtuellen Farbe (306) zwischen der virtuellen Leinwand (302) und dem virtuellen Malpinsel (304) beinhalten.
  9. Verfahren nach einem der Ansprüche 1 bis 8, wobei das Simulieren ein Berechnen einer Fluidoberflächenkarte und von Information zum Angeben einer Fluidgeschwindigkeit für die virtuelle Farbe (306) beinhaltet, wobei die Fluidoberflächenkarte und die Information zum Angeben der Fluidgeschwindigkeit zum Simulieren von Borsten des virtuellen Malpinsels (304) verwendbar sind.
  10. Verfahren nach einem der Ansprüche 1 bis 9, wobei ein Ausmaß an optischem Detail, mit dem die simulierten wirklichkeitsnahen Maleigenschaften angezeigt werden, abnimmt, wenn ein Abstand von dem virtuellen Malpinsel (304) zunimmt.
  11. Durch eine Rechenvorrichtung implementiertes Verfahren zum Simulieren von wirklichkeitsnahen Maleigenschaften in einer virtuellen Malumgebung, wobei das Verfahren umfasst: Simulieren von Borsten des virtuellen Malpinsels (304) unter Verwendung einer ersten Verarbeitungseinheit als Teil einer Simulation, die eine Wechselwirkung von virtueller Farbe (306) mit einer virtuellen Leinwand (302) und einem virtuellen Malpinsel (304) simuliert; und Simulieren einer oder mehrerer wirklichkeitsnaher Maleigenschaften der virtuellen Farbe (306) unter Verwendung einer zweiten Verarbeitungseinheit, die von der ersten Verarbeitungseinheit getrennt ist.
  12. Verfahren nach Anspruch 11, wobei das Simulieren der Borsten des virtuellen Malpinsels (304) ein Berechnen einer Borstendichtekarte beinhaltet, die eine Borstenverteilung innerhalb eines Volumens darstellt, das den Borsten des virtuellen Malpinsels (304) entspricht.
  13. Verfahren nach Anspruch 11 oder 12, wobei die Borsten des virtuellen Malpinsels (304) entsprechend Masse-Feder-Simulationstechniken simuliert werden.
  14. Verfahren nach einem der Ansprüche 11 bis 13, wobei das Simulieren der einen oder der mehreren wirklichkeitsnahen Maleigenschaften ein Berechnen einer Fluidoberflächenkarte beinhaltet, die eine Maltopographie der auf der virtuellen Leinwand (302) aufgebrachten virtuellen Farbe (306) darstellt.
  15. Verfahren nach einem der Ansprüche 11 bis 14, des Weiteren umfassend: Übertragen einer Borstendichtekarte an die zweite Verarbeitungseinheit, wobei die Borstendichtekarte unter Verwendung der ersten Verarbeitungseinheit berechnet worden ist; Glätten der Borstendichtekarte unter Verwendung der zweiten Verarbeitungseinheit, wobei die geglättete Borstendichtekarte von der zweiten Verarbeitungseinheit zum Simulieren der einen oder der mehreren wirklichkeitsnahen Maleigenschaften der virtuellen Farbe (306) verwendet wird; und Übertragen einer Fluidoberflächenkarte an die erste Verarbeitungseinheit, wobei die Fluidoberflächenkarte von der zweiten Verarbeitungseinheit berechnet worden ist und von der ersten Verarbeitungseinheit zum Simulieren der Borsten des virtuellen Malpinsels (304) verwendet wird.
  16. System, umfassend: ein Verarbeitungssystem, das wenigstens eine erste und zweite Verarbeitungseinheit (204, 206) beinhaltet; und einen Speicher konfiguriert um Anweisungen vorzuhalten, die von dem Verarbeitungssystem zum Simulieren einer Wechselwirkung von virtueller Farbe (306) mit einem virtuellen Malpinsel (304) auf einer virtuellen Leinwand (302) ausführbar sind, indem Vorgänge durchgeführt werden, die umfassen: Verwenden der ersten Verarbeitungseinheit zum Simulieren von Borsten des virtuellen Malpinsels (304), wobei die Simulation der Borsten eine Berechnung einer volumetrischen Darstellung der Borsten beinhaltet; und Verwenden der zweiten Verarbeitungseinheit zum Simulieren einer oder mehrerer wirklichkeitsnaher Maleigenschaften der virtuellen Farbe (306), wobei die Simulation der einen oder mehreren wirklichkeitsnahen Maleigenschaften eine Berechnung einer Topographie der virtuellen Farbe (306) teilweise auf Grundlage der volumetrischen Darstellung der Borsten impliziert.
  17. System nach Anspruch 16, wobei die erste Verarbeitungseinheit eine zentrale Verarbeitungseinheit (CPU) ist; und/oder wobei die zweite Verarbeitungseinheit eine Grafikverarbeitungseinheit (GPU) ist.
  18. System nach Anspruch 16 oder 17, wobei die eine oder die mehreren wirklichkeitsnahen Maleigenschaften für die virtuelle Farbe (306) innerhalb eines Bereiches (308) der virtuellen Leinwand (302) um den virtuellen Malpinsel (304) herum und nicht für die virtuelle Farbe (306) außerhalb des Bereiches (308) simuliert werden.
  19. System nach einem der Ansprüche 16 bis 18, wobei die Vorgänge des Weiteren ein Verwenden der zweiten Verarbeitungseinheit zum Rendern eines Volumens der virtuellen Farbe (306) unter Verwendung der Topografie der virtuellen Farbe (306) umfassen.
  20. Computerprogrammerzeugnis mit Anweisungen, die bei Ausführung durch eine Rechenvorrichtung oder ein System veranlassen, dass die Rechenvorrichtung oder das System das Verfahren nach einem der Ansprüche 1 bis 15 ausführt.
DE102015009222.7A 2014-11-25 2015-07-16 Malpinsel- und Flüssigkeitssimulation Pending DE102015009222A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/553,894 2014-11-25
US14/553,894 US9600907B2 (en) 2014-11-25 2014-11-25 Paintbrush and liquid simulation

Publications (1)

Publication Number Publication Date
DE102015009222A1 true DE102015009222A1 (de) 2016-05-25

Family

ID=54062887

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015009222.7A Pending DE102015009222A1 (de) 2014-11-25 2015-07-16 Malpinsel- und Flüssigkeitssimulation

Country Status (4)

Country Link
US (2) US9600907B2 (de)
CN (1) CN105631916B (de)
DE (1) DE102015009222A1 (de)
GB (1) GB2532830A (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9600907B2 (en) 2014-11-25 2017-03-21 Adobe Systems Incorporated Paintbrush and liquid simulation
US20170236318A1 (en) * 2016-02-15 2017-08-17 Microsoft Technology Licensing, Llc Animated Digital Ink
US10424086B2 (en) * 2017-11-16 2019-09-24 Adobe Inc. Oil painting stroke simulation using neural network
US10832412B2 (en) * 2018-06-13 2020-11-10 Adobe Inc. Interactive region coloring
US10964100B2 (en) 2018-09-10 2021-03-30 Adobe Inc. Data-driven modeling of advanced paint appearance
US11315315B2 (en) * 2019-08-23 2022-04-26 Adobe Inc. Modifying three-dimensional representations using digital brush tools
CN114115528B (zh) * 2021-11-02 2024-01-19 深圳市雷鸟网络传媒有限公司 虚拟对象控制方法、装置、计算机设备和存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5239292A (en) * 1988-10-04 1993-08-24 Crosfield Electronics Ltd. Computer graphics system electronically simulating painting on canvas
US6348924B1 (en) * 1999-03-10 2002-02-19 Silicon Graphics, Inc. Method and apparatus for interactively painting volumetric particle flow paths and controlling a flow of the flow paths
US7973789B2 (en) * 2005-06-03 2011-07-05 Pixar Dynamic model generation methods and apparatus
CN100338612C (zh) * 2005-07-08 2007-09-19 天津大学 基于毛笔和宣纸的水墨传输模型与仿真算法
CN100520692C (zh) * 2007-01-17 2009-07-29 北京书生国际信息技术有限公司 一种实现笔锋效果的手写输入方法
US8749494B1 (en) * 2008-06-24 2014-06-10 Sprint Communications Company L.P. Touch screen offset pointer
US8229211B2 (en) * 2008-07-29 2012-07-24 Apple Inc. Differential image enhancement
US8296668B1 (en) * 2008-08-15 2012-10-23 Adobe Systems Incorporated Paper texture for watercolor painting effects in a graphics editing program
US8335675B1 (en) * 2009-02-27 2012-12-18 Adobe Systems Incorporated Realistic real-time simulation of natural media paints
US9030464B2 (en) * 2010-04-08 2015-05-12 Microsoft Technology Licensing, Llc Simulating painting
US8605095B2 (en) * 2010-04-12 2013-12-10 Adobe Systems Incorporated Generating vector output from a physical simulation of a bristle brush
US8749572B2 (en) * 2010-05-28 2014-06-10 Adobe Systems Incorporated System and method for simulation of brush-based painting in a color space that includes a fill channel
US8379047B1 (en) 2010-05-28 2013-02-19 Adobe Systems Incorporated System and method for creating stroke-level effects in bristle brush simulations using per-bristle opacity
US8917282B2 (en) * 2011-03-23 2014-12-23 Adobe Systems Incorporated Separating water from pigment in procedural painting algorithms
CN102509357B (zh) * 2011-09-28 2014-04-23 中国科学院自动化研究所 基于笔触的铅笔素描模拟和绘制系统
US8854342B2 (en) * 2012-03-02 2014-10-07 Adobe Systems Incorporated Systems and methods for particle-based digital airbrushing
US8896579B2 (en) * 2012-03-02 2014-11-25 Adobe Systems Incorporated Methods and apparatus for deformation of virtual brush marks via texture projection
US10217253B2 (en) 2012-09-14 2019-02-26 Adobe Inc. Methods and apparatus for simulation of a stateful brush tip in a natural media drawing and/or painting simulation
US20140132619A1 (en) * 2012-11-14 2014-05-15 Microsoft Corporation Simulating Interaction of Different Media
US9235924B2 (en) * 2013-12-17 2016-01-12 Microsoft Technology Licensing, Llc Cubify brush operation for virtual worlds
CN103870650B (zh) * 2014-03-24 2017-02-15 浙江纺织服装职业技术学院 一种计算机辅助绘制纹织图案燥笔泥地的方法
US9600907B2 (en) 2014-11-25 2017-03-21 Adobe Systems Incorporated Paintbrush and liquid simulation

Also Published As

Publication number Publication date
CN105631916B (zh) 2020-12-04
GB201513419D0 (en) 2015-09-16
US9600907B2 (en) 2017-03-21
GB2532830A (en) 2016-06-01
CN105631916A (zh) 2016-06-01
US20170186191A1 (en) 2017-06-29
US10489937B2 (en) 2019-11-26
US20160148395A1 (en) 2016-05-26

Similar Documents

Publication Publication Date Title
DE102015009222A1 (de) Malpinsel- und Flüssigkeitssimulation
DE112019005750T5 (de) Erlernen des Erzeugens synthetischer Datensätze zum Trainieren neuronalerNetze
DE112019004076T5 (de) Dezentralisiertes verteiltes deep learning
US8335675B1 (en) Realistic real-time simulation of natural media paints
DE102017010210A1 (de) Bild-Matting mittels tiefem Lernen
DE112007001789B4 (de) Verfahren zum Bewerten eines Bildes im Hinblick auf eine dominante Linie
US20140289663A1 (en) Producing Artwork Based on an Imported Image
DE102014011900A1 (de) Fitten einer parametrischen Kurve unter Verwendung einer maximalen Krümmung
CN107978020A (zh) 三维模型操纵和渲染
DE102016014188A1 (de) Erzeugung eines 3-D-Modells aus 2-D-Bildern
DE102017011422A1 (de) Strichvorgangvorhersage für einen dreidimensionalen digitalen Inhalt
AU2018226403B2 (en) Brush stroke generation with deep neural networks
DE102011016319A1 (de) Verfahren und System zum Simulieren einer dreidimensionalen Bedienschnittstelle
DE112020006449T5 (de) Verteilen von arbeitslasten bei berechnungen auf der grundlage einer berechneten berechnungsschwerkraft innerhalb unterschiedlicher datenverarbeitungsparadigmen
DE102020112066B4 (de) Betriebsmetrik für gemeinsam genutzte ressourcen
DE102017003918A1 (de) Bildaufbereitung von digitalen Bildern auf einem Substrat
DE102023104579A1 (de) Beschneiden zur effizienten dreidimensionalen Digitalwiedergabe
DE102016015136A1 (de) Interaktion mit digitalem 3D-Inhalt und Steuerung bzw. Regelung hiervon
DE112022002137T5 (de) Hybrides differenzierbares Rendering für Lichttransportsimulationssysteme und -Anwendungen
DE102017007714A1 (de) Verbessertes Bemalen von Objekten durch die Verwendung von Perspektiven oder Transfers in einer digitalen Medienumgebung
EP3561701A1 (de) Verfahren und vorrichtung zum bestimmen einer körperlichen form, verfahren zur herstellung einer berechnungseinrichtung, berechnungseinrichtung und verwendung der berechnungseinrichtung
Xie et al. Web-based SBLR method of multimedia tools for computer-aided drawing
DE102022132137A1 (de) Generieren einer reaktivvideoleinwand
DE102019008227A1 (de) Dynamische Stempeltextur für einen digitalen Pinsel
Huang et al. Synthesis of oil-style paintings

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: ADOBE INC., SAN JOSE, US

Free format text: FORMER OWNER: ADOBE SYSTEMS INCORPORATED, SAN JOSE, CALIF., US

R082 Change of representative

Representative=s name: MUELLER-BORE & PARTNER PATENTANWAELTE PARTG MB, DE

R016 Response to examination communication