DE102017007967A1 - Verarbeiten und rendern eines dreidimensionalen Modells - Google Patents

Verarbeiten und rendern eines dreidimensionalen Modells Download PDF

Info

Publication number
DE102017007967A1
DE102017007967A1 DE102017007967.6A DE102017007967A DE102017007967A1 DE 102017007967 A1 DE102017007967 A1 DE 102017007967A1 DE 102017007967 A DE102017007967 A DE 102017007967A DE 102017007967 A1 DE102017007967 A1 DE 102017007967A1
Authority
DE
Germany
Prior art keywords
model
volume
based representation
representation
user
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
DE102017007967.6A
Other languages
English (en)
Inventor
Sebastian Marketsmueller
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 DE102017007967A1 publication Critical patent/DE102017007967A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

Landscapes

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

Abstract

Hier sind Systeme und Verfahren zum Bearbeiten eines dreidimensionalen (3D) Modells mittels einer volumenbasierten Darstellung des 3D-Modells offenbart. Ein beispielhaftes Verfahren bestimmt eine erste netzbasierte Darstellung des 3D-Modells auf der Basis einer ersten volumenbasierten Darstellung des 3D-Modells. Eine erste Ansicht der ersten netzbasierten Darstellung des 3D-Modells wird zur Anzeige auf der Nutzerschnittstelle bereitgestellt. Wenn eine Bearbeitung für das 3D-Modell auf der Nutzerschnittstelle empfangen wird, wird die erste volumenbasierte Darstellung auf der Basis der Bearbeitung modifiziert, so dass eine zweite volumenbasierte Darstellung des 3D-Modells erzeugt wird. Das Modifizieren der ersten volumenbasierten Darstellung umfasst das Modifizieren der Volumendichte des 3D-Modells. Dann wird eine zweite netzbasierte Darstellung des 3D-Modells auf der Basis der zweiten volumenbasierten Darstellung bestimmt und eine zweite Ansicht der zweiten netzbasierten Darstellung des 3D-Modells wird zur Anzeige auf der Nutzerschnittstelle bereitgestellt.

Description

  • Technisches Gebiet
  • Diese Offenbarung betrifft allgemein computerimplementierte Verfahren und Systeme und betrifft insbesondere die Verbesserung einer Bildverarbeitung und eines Bildrenderns von dreidimensionalen Darstellungen von Gegenständen und das Bereitstellen eines Systems und eines Verfahrens zum Ermöglichen der Verwendung von Werkzeugen des zweidimensionalen Typs bei der Verarbeitung von dreidimensionalen Darstellungen von Gegenständen.
  • Hintergrund
  • Bestehende Computersysteme, die zum Erzeugen und Bearbeiten von dreidimensionalen Darstellungen von Gegenständen verwendet werden, weisen eine steile Lernkurve auf. Die Verwendung dieser Systeme erfordert Techniken und Fähigkeiten, die Gestalter von zweidimensionalen Bildern typischerweise nicht haben. Beispiele für bestehende dreidimensionale Bearbeitungs- und Modelliersoftware umfassen 3D Studio® und Maya® von Autodesk® und ZBrush® von Pixologic®. Die steile Lernkurve dieser Systeme wird zumindest teilweise durch die Art und Weise, in der dreidimensionale Formen dargestellt werden, und die Nutzerinteraktionen, die zum Bearbeiten dieser Darstellungen erforderlich sind, verursacht. Beispielsweise werden dreidimensionale Oberflächen häufig als ein „Netz“ von geometrischen Formen oder Vielecken dargestellt. In vielen Fällen umfassen diese Netze eine Mehrzahl von Dreiecken, die eine Bearbeitungseinrichtung („Editor“) mit Werkzeugen verarbeitet, die für die Merkmale eines Dreiecks, wie z.B. Eckpunkte, Kanten, Flächen und dergleichen, spezifisch sind. In Fällen, bei denen eine Oberfläche durch viele kleine Dreiecke dargestellt ist, erfordern diese Bearbeitungswerkzeuge eine genaue Verarbeitung, die bei berührungsbasierten Tablets, Erfahrungen von virtueller Realität oder anderen Systemen, bei denen die erforderliche Genauigkeit nicht zur Verfügung steht, gegebenenfalls nicht erreicht werden kann.
  • Es sind auch verschiedene zweidimensionale Bearbeitungssysteme verfügbar. Ein Beispiel für ein solches System ist Photoshop® von Adobe Systems, Inc., San Jose, Kalifornien. Zweidimensionale Bildbearbeitungssysteme umfassen typischerweise viele leicht verständliche zweidimensionale Bearbeitungswerkzeuge, einschließlich, jedoch nicht beschränkt auf, zweidimensionale Pinsel, Filter und Ebenen („Layers“). Die zweidimensionalen Bearbeitungswerkzeuge funktionieren nicht bei dreidimensionalen Netzdarstellungen und waren folglich in Systemen, die zur Erzeugung und Bearbeitung von dreidimensionalen Darstellungen von Gegenständen verwendet werden, nicht verfügbar.
  • Zusammenfassung
  • Hier sind Systeme und Verfahren zum Bearbeiten eines dreidimensionalen (3D) Modells offenbart. Ein beispielhaftes Verfahren umfasst das Bereitstellen, Erhalten und/oder Speichern einer ersten volumenbasierten Darstellung des 3D-Modells, wobei die erste volumenbasierte Darstellung Volumendichten des 3D-Modells an mehreren Stellen in einem 3D-Arbeitsraum identifiziert. In einem Beispiel umfasst die erste volumenbasierte Darstellung eine Gruppe von gestapelten zweidimensionalen (2D) Kreuzabschnitten des 3D-Modells in Intervallen und diese sind durch eine Anzahl von Bildpixeln dargestellt. Das Verfahren umfasst ferner das Bestimmen einer ersten netzbasierten Darstellung des 3D-Modells auf der Basis der ersten volumenbasierten Darstellung und das Darstellen des 3D-Modells zum Anzeigen auf der Nutzerschnittstelle. Die Nutzerschnittstelle kann höchstwertige Graphikbearbeitungsmonitore sowie solche mit einer geringeren Auflösung umfassen, einschließlich berührungsbasierte Schnittstellen und Umgebungen einer virtuellen Realität. Das Verfahren umfasst ferner das Empfangen einer Bearbeitung für das 3D-Modell, das auf der Nutzerschnittstelle angezeigt wird.
  • Sobald die Bearbeitung empfangen worden ist, modifiziert das Verfahren die erste volumenbasierte Darstellung auf der Basis der Bearbeitung zum Erzeugen einer zweiten volumenbasierten Darstellung des 3D-Modells, wobei das Modifizieren der ersten volumenbasierten Darstellung das Modifizieren der Volumendichte des 3D-Modells umfasst. Das Verfahren umfasst ferner das Bestimmen einer zweiten netzbasierten Darstellung des 3D-Modells auf der Basis der zweiten volumenbasierten Darstellung und das Bereitstellen einer zweiten Ansicht der zweiten netzbasierten Darstellung des 3D-Modells zum Anzeigen auf der Nutzerschnittstelle.
  • Diese veranschaulichenden Merkmale sind nicht zum Beschränken oder Festlegen der Offenbarung angegeben, sondern zum Bereitstellen von Beispielen, um bei deren Verständnis zu unterstützen. Zusätzliche Ausführungsformen werden in der detaillierten Beschreibung diskutiert und eine weitere Beschreibung ist dort angegeben.
  • Figurenliste
  • Diese und andere Merkmale, Ausführungsformen und Vorteile der vorliegenden Offenbarung sind besser verständlich, wenn die folgende detaillierte Beschreibung unter Bezugnahme auf die beigefügten Zeichnungen gelesen wird.
    • 1 ist ein Diagramm einer Umgebung, in der eine oder mehrere Technik(en) der Erfindung durchgeführt werden kann oder können.
    • 2 zeigt ein schematisches System und Verfahren zum Bearbeiten eines 3D-Modells.
    • 3 zeigt einen Beispielwerkzeugsatz zum Bearbeiten eines 3D-Modells.
    • 4 ist ein Flussdiagramm, das ein beispielhaftes Verfahren zum Bearbeiten eines 3D-Modells zeigt.
    • 5 zeigt einen Teil eines Beispielablaufs einer Bearbeitung eines 3D-Modells.
    • 6 zeigt einen weiteren Teil des Beispielablaufs einer Bearbeitung eines 3D-Modells von 5.
    • 7 zeigt einen weiteren Teil des Beispielablaufs einer Bearbeitung eines 3D-Modells von 5.
    • 8 zeigt einen Teil eines Beispielablaufs einer Bearbeitung eines 3D-Modells.
    • 9 zeigt einen weiteren Teil des Beispielablaufs einer Bearbeitung eines 3D-Modells von 8.
    • 10 ist ein Blockdiagramm, das ein Beispiel für eine Hardwareimplementierung zeigt.
  • Detaillierte Beschreibung
  • Wie es vorstehend beschrieben ist, erfordern bestehende Verfahren und Systeme zum Bearbeiten eines 3D-Modells, dass Nutzer mit spezifischen, häufig neuen und nicht-intuitiven Bearbeitungswerkzeugen umgehen können. Herkömmliche 3D-Softwarepakete bearbeiten eine Oberflächendatenstruktur oder ein Oberflächendatennetz (entweder Dreiecke oder Unterteilungsoberflächen) direkt. Dies erfordert viel Erfahrung und eine hohe Genauigkeit und Erfahrung, was ein großes Hindernis für einen Einstieg von neuen 3D-Nutzern erzeugt. Ferner steht in manchen Umgebungen, wie z.B. Tabletcomputern auf Berührungsbasis oder bei Erfahrungen mit virtueller Realität, eine Präzisionsbearbeitung nicht leicht zur Verfügung.
  • Diese Offenbarung beschreibt Techniken, die ein 3D-Modell elektronisch erzeugen und bearbeiten. Die Techniken umfassen das Beibehalten von zwei Darstellungen eines 3D-Arbeitsraums, der das 3D-Modell enthält, nämlich einer volumenbasierten Darstellung und einer netzbasierten Darstellung, wie es nachstehend vollständiger diskutiert wird. Durch Darstellen des 3D-Modells in zwei verschiedenen Weisen als volumenbasierte Darstellung und netzbasierte Darstellung werden verschiedene Vorteile erreicht. Die netzbasierte Darstellung steht zum Rendern und Anzeigen der 3D-Modellgrenzen auf der Nutzerschnittstelle zur Verfügung. Die netzbasierte Darstellung kann auch zu einer netzbasierten computerunterstützten Gestaltung (CAD) und anderen Render/Bearbeitungsanwendungen exportiert und/oder gedruckt werden. Die volumenbasierte Darstellung steht für die Unterstützung von vertrauteren Erzeugungs- und Bearbeitungstechniken zur Verfügung. Folglich kann die Nutzerschnittstelle die netzbasierte Darstellung zum Anzeigen des 3D-Modells auf einer Bearbeitungsleinwand, mit welcher der Nutzer interagieren kann, nutzen. Darüber hinaus kann der Nutzer gewünschte Bearbeitungen mit raumbasierten Werkzeugen angeben, die Änderungen spezifizieren, die den allgemeinen 3D-Koordinatenraum nutzen. Anders als bei bisherigen Systemen müssen Nutzerbearbeitungen nicht spezifischen Netzeckpunkten entsprechen, die in der netzbasierten Darstellung eines 3D-Modells bearbeitet werden müssen. Beispielsweise kann der Nutzer einfach ein Pinsel-„Mal“-Werkzeug in einem gewünschten Bereich verwenden, und zwar ungeachtet der genauen Positionen von Netzeckpunkten, um Bearbeitungen in diesem Bereich vorzunehmen. Mit anderen Worten, das Beibehalten sowohl einer Netzdarstellung als auch einer volumetrischen Darstellung ermöglicht eine intuitivere Weise des Bearbeitens eines 3D-Modells durch Verwenden von bestehenden 2D-Werkzeugen, mit denen Nutzer bereits vertraut sind, wie z.B. dadurch, dass einem Nutzer die Verwendung eines vertrauten 2D-Pinselwerkzeugs ermöglicht wird, das zum Bearbeiten der volumetrischen Darstellung angepasst ist. Dieser Typ von raumbasierter Bearbeitung ist möglich, da die Bearbeitungen durch anfängliches Verändern der volumenbasierten Darstellung implementiert werden und dann diese veränderte volumenbasierte Darstellung zum Verändern der netzbasierten Darstellung verwendet wird. Als spezifisches Beispiel wird dann, wenn der Nutzer einen Malvorgang durchführt, um die Seite eines Gegenstands zu ergänzen, die ursprüngliche volumenbasierte Gestaltung verändert, so dass in diesem Bereich ein Volumen hinzugefügt wird, was zu einer veränderten volumenbasierten Darstellung führt. Dann wird die ursprüngliche netzbasierte Darstellung zu einer veränderten netzbasierten Darstellung einer Oberfläche des Gegenstands auf der Basis dieses ergänzten Volumens überarbeitet. Der Nutzer kann somit Techniken verwenden, die bezüglich des Konzepts von zweidimensionalen Bearbeitungssystemen, wie z.B. der Photoshop®-Software von Adobe, bekannt sind. Beispiele für solche Techniken umfassen, sind jedoch nicht beschränkt auf, Techniken, die Werkzeuge wie z.B. ein Bearbeiten mit einem Pinsel, Filtern und Ebenen nutzen, jedoch in einem 3D-Kontext. Ferner ermöglicht die Verwendung einer volumenbasierten Darstellung ein weniger genaues Bearbeiten, was für Berührungsschnittstellen oder Schnittstellen für eine virtuelle Realität erwünscht ist.
  • Die volumenbasierte Darstellung eines 3D-Modells kann in einer Dichtevolumendatenstruktur implementiert werden. In einer Ausführungsform ist die Dichtevolumendatenstruktur ein Stapel von Grauskalabildern oder -querschnitten durch den 3D-Arbeitsraum. Jedes Element in den Grauskalenquerschnitten stellt einen Dichtewert dar. Andere beispielhafte Volumendatenstrukturen sind in einer Verbundform („tiled“ Form) oder als „Sparse Octree“-Datenstruktur implementiert. Während des Bearbeitens zeichnet, filtert oder mischt das System betroffene Elemente in dem Stapel von Grauskalaquerschnitten auf der Basis der durch den Nutzer durchgeführten Bearbeitung. Beispielsweise wenn der Nutzer in einem neuen Bereich zeichnet, fügt das System Elementen in dem Stapel von Grauskalaquerschnitten, die dem Bereich in dem 3D-Arbeitsraum entsprechen, eine Volumendichte hinzu.
  • Die Volumendaten werden in ein Netz umgewandelt, um das Rendern auf der Benutzerschnittstelle und einen Export zu ermöglichen. Die Umwandlung kann mittels eines Algorithmus erreicht werden, der aus den volumenbasierten Daten eine geometrische Oberfläche erzeugt. Ein bekanntes Beispiel für einen solchen Algorithmus ist als der „Marching Cubes“-Algorithmus bekannt. In einer Ausführungsform wendet das System den Algorithmus rekursiv auf den gesamten 3D-Arbeitsraum an. Dies ermöglicht es dem System, die zwei Darstellungen des 3D-Arbeitsraums, Volumen und Netz, gleichzeitig oder nahezu gleichzeitig beizubehalten. Dies wiederum ermöglicht es dem Nutzer, die gegenwärtige netzbasierte Darstellung des 3D-Modells auf der Anzeige zu sehen und weitere gewünschte Bearbeitungen auf der Anzeige anzugeben, während das System die gewünschten Bearbeitungen auf die volumenbasierte Darstellung des 3D-Modells in Echtzeit oder nahezu in Echtzeit anwendet, soweit es die verwendeten Rechen- und Graphikgeschwindigkeiten zulassen.
  • In einer weiteren Ausführungsform wendet das System den Algorithmus nur auf den bearbeiteten Bereich an, während der Nutzer Bearbeitungen ausführt. In dieser Ausführungsform werden nur Bereiche der volumenbasierten Darstellung, die veränderte Dichtewerte aufweisen, durch den Algorithmus verarbeitet, um z.B. Dreiecke in dem Netz innerhalb eines Bereichs zu lokalisieren, diese zu entfernen und dann neue bearbeitete Dreiecke anzuhängen, was dazu führt, dass die veränderte netzbasierte Darstellung dem Nutzer angezeigt wird.
  • Wie hier verwendet, bezieht sich der Ausdruck „Rechenvorrichtung“ auf jedwede elektronische Komponente, Maschine, jedwedes elektronische Gerät oder System, die oder das zur Ausführung von Operationen angewiesen werden kann. Rechenvorrichtungen umfassen typischerweise, jedoch nicht notwendigerweise, einen Prozessor, der kommunikativ mit einem Speicher gekoppelt ist und der einen computerausführbaren Programmcode und/oder Zugangsinformationen ausführt, die in einem Speicher oder einer anderen Speichereinrichtung gespeichert sind. Beispiele für Rechenvorrichtungen umfassen, sind jedoch nicht beschränkt auf, Desktopcomputer, Laptopcomputer, Servercomputer, Tablets, Telefone, Mobiltelefone, Fernsehgeräte, tragbare Datenassistenten (PDA), e-Lesegeräte, tragbare Spieleinheiten, Smartuhren, usw.
  • Wie hier verwendet bezieht sich der Ausdruck „dreidimensionales Modell“ oder „3D-Modell“ auf eine elektronische Darstellung eines zu bearbeitenden Gegenstands.
  • Wie hier verwendet bezieht sich der Ausdruck „3D-Arbeitsraum“ auf einen dreidimensionalen Bereich, in dem ein 3D-Modell abgebildet und bearbeitet wird.
  • Wie hier verwendet bezieht sich der Ausdruck „Volumendichtewerte“ auf Werte in einer Darstellung eines 3D-Modells, welche die Dichte des Modells an bestimmten Stellen innerhalb eines 3D-Arbeitsraums identifizieren. Diese Volumendichtewerte werden zur Bestimmung eines Netzes verwendet, das eine Oberfläche des 3D-Modells darstellt, wobei z.B. die Oberfläche alle Dichtewerte oberhalb eines vorgegebenen, nutzerspezifizierten Schwellenwerts umgibt.
  • Wie hier verwendet bezieht sich der Ausdruck „volumenbasierte Darstellung“ auf einen Weg zur Darstellung eines dreidimensionalen Modells. Eine Reihe von Volumendichten oder -werten des 3D-Modells werden an mehreren Stellen in einem 3D-Arbeitsraum aufgenommen. In einem Beispiel umfasst eine volumenbasierte Repräsentation eine Gruppe von gestapelten zweidimensionalen (2D) Querschnitten des 3D-Arbeitsraums in Intervallen. Stellen, bei denen der Querschnitt das 3D-Modell schneidet, sind als ein Wert darstellt, und Stellen außerhalb des 3D-Modells sind als ein weiterer Wert dargestellt.
  • Wie hier verwendet bezieht sich der Ausdruck „netzbasierte Darstellung“ auf eine Darstellung eines dreidimensionalen Modells, die eine Oberfläche nutzt, die durch Kombinieren von planaren Vielecken gebildet wird. Die Oberfläche eines 3D-Modells kann durch eine netzbasierte Darstellung dargestellt werden, die eine Mehrzahl von Vielecken umfasst, die unter Bildung einer Oberfläche des 3D-Modells miteinander verbunden sind. In einem Beispiel stellt eine netzbasierte Darstellung eine Oberfläche mit einer Mehrzahl von verbundenen Dreiecken dar.
  • Wie hier verwendet bezieht sich der Ausdruck „bearbeiten“ auf das Erzeugen oder Verändern eines 3D-Modells.
  • Wie hier verwendet bezieht sich der Ausdruck „berührungsbasierte Schnittstelle“ auf eine Nutzerschnittstellenanzeige, die eine Interaktion durch einen Finger oder Stift des Nutzers auf der Anzeige erfassen kann.
  • Wie hier verwendet bezieht sich der Ausdruck „Pinsel“ oder „Bearbeiten mit einem Pinsel“ auf ein Verfahren des Anwendens einer Bearbeitung auf einzelne Abschnitte des 3D-Arbeitsraums unter Verwendung z.B. eines Werkzeugs oder Zeigegeräts. Als ein spezifisches Beispiel führt ein Pinsel Änderungen in einer räumlichen Domäne an einer Stelle oder entlang eines Wegs unter der Kontrolle eines Nutzers aus. Der Pinsel umfasst Eigenschaften wie z.B. Form, Größe und Effekte, einschließlich das Hinzufügen oder Entfernen von einem 3D-Modell.
  • Wie hier verwendet beziehen sich die Ausdrücke „Filter“ oder „Filtern“ auf ein Verfahren des Anwendens einer Bearbeitung, die auf einen Bereich des 3D-Arbeitsraums angewandt wird. Der Bereich kann den gesamten 3D-Arbeitsraum oder einen Bereich innerhalb desselben umfassen, wie z.B. einen durch einen Nutzer ausgewählten Bereich. Als spezifisches Beispiel verändert eine Umwandlung wie z.B. eine Faltung oder eine Unschärfe Dichtewerte in der Signaldomäne innerhalb des Bereichs, der in dem 3D-Arbeitsraum identifiziert worden ist.
  • Wie hier verwendet bezieht sich der Ausdruck „Auswahlmaske“ eines 3D-Modells auf einen Nutzer, der (einen) auszuwählenden Bereich oder Bereiche des 3D-Arbeitsraums angibt, während die Bereiche außerhalb der Auswahl maskiert oder ausgeschlossen sind.
  • Wie hier verwendet beziehen sich die Ausdrücke „Klon“ oder „Klonieren“ auf eine Bearbeitung, die einen Teil eines Gegenstands auf einen anderen Teil desselben Gegenstands oder einen 3D-Arbeitsraum auf einen anderen 3D-Arbeitsraum kopiert. Das Klonwerkzeug ist zum Kopieren von Gegenständen oder Bedecken eines Defekts in einem Teil eines Gegenstands nützlich. Das Werkzeug wirkt auf einen eingestellten Entnahmepunkt an der Quellenstelle ein. Abhängig von den Werkzeugoptionen, einschließlich der Pinselspitzengröße und -form, reproduziert das Werkzeug den Entnahmepunkt an der neuen Stelle.
  • Wie hier verwendet bezieht sich der Ausdruck „Unschärfe“ oder „unscharf machen“ auf eine Bearbeitung, die ein Detail von dem 3D-Modell in einem Bereich entfernt, der den Gegenstand effektiv unscharf macht. Als ein spezifisches Beispiel wirkt ein Gauss-Filter auf einen Bereich, der durch die Pinselspitze identifiziert worden ist, oder den Bereich, der für das Filtern identifiziert worden ist, ein.
  • Wie hier verwendet bezieht sich der Ausdruck „Rauschfilter“ auf eine Bearbeitung, die Dichtewerte einheitlich oder statistisch in einem Bereich hinzufügt, um einem 3D-Modell eine Textur zu verleihen. Alternativ bezieht sich der Ausdruck auf einen Filter, der Dichtewerte entfernt, um die Textur zu vermindern oder einen Bereich eines 3D-Modells zu glätten.
  • Wie hier verwendet bezieht sich der Ausdruck „Verwischung“ oder „verwischen“ auf eine Bearbeitung, die das Ziehen eines Fingers durch eine nasse Farbe oder nassen Ton simuliert. Der Verwischungseffekt wirkt auf die Umgebung, wo das Ziehen beginnt, und drückt sie in der Richtung, in der das Werkzeug bewegt wird, auf der Basis von Werkzeugoptionen, wie z.B. Größe, Form und Mischen.
  • Wie hier verwendet bezieht sich der Ausdruck „pixeln“ auf eine Bearbeitung, die benachbarte Pixelwerte kombiniert oder einen Durchschnitt davon bildet, so dass Verzerrungen in dem 3D-Modell gebildet werden.
  • Beispielhafte Rechenumgebung
  • 1 ist ein Diagramm einer Umgebung 100, in der eine oder mehrere Ausführungsform(en) der vorliegenden Offenbarung durchgeführt werden kann oder können. Die Umgebung 100 umfasst eine oder mehrere Nutzervorrichtung(en), wie z.B. eine Nutzervorrichtung 102A bis zu einer Nutzervorrichtung 102N. Jede der Nutzervorrichtungen ist über ein Netzwerk 106 mit einer kreativen Vorrichtung 108 verbunden. Die Nutzer der Nutzervorrichtungen nutzen verschiedene Produkte, Anwendungen oder Dienste, die durch die kreative Vorrichtung 108 mittels des Netzwerks 106 unterstützt werden. Die Nutzervorrichtungen entsprechen verschiedenen Nutzern. Beispiele für die Nutzer umfassen, sind jedoch nicht beschränkt auf, kreative Profis oder Hobbynutzer, die kreative Werkzeuge zum Erzeugen, Bearbeiten, Verfolgen oder Verwalten eines kreativen Inhalts nutzen, Endnutzer, Administratoren, Werbefachleute, Publizisten, Entwickler, Inhaltseigentümer, Inhaltsverwalter, Inhaltserzeuger, Inhaltsbetrachter, Inhaltskonsumenten, Designer, Bearbeiter, jedwede Kombination dieser Nutzer oder jedweden anderen Nutzer, der digitale Werkzeuge zum Erzeugen, Betrachten, Bearbeiten, Verfolgen oder Verwalten von digitalen Erfahrungen nutzt.
  • Ein digitales Werkzeug, wie es hier beschrieben ist, umfasst ein Werkzeug, das zur elektronischen Durchführung einer Funktion oder eines Arbeitsablaufs („Workflow“) verwendet wird. Beispiele für das digitale Werkzeug umfassen, sind jedoch nicht beschränkt auf, ein Inhaltserzeugungswerkzeug, ein Inhaltsbearbeitungswerkzeug, ein Inhaltsveröffentlichungswerkzeug, ein Inhaltsverfolgungswerkzeug, ein Inhaltsverwaltungswerkzeug, ein Inhaltsdruckwerkzeug, ein Inhaltskonsumierungswerkzeug, jedwede Kombination dieser Werkzeuge oder jedwedes andere Werkzeug, das zum Erzeugen, Bearbeiten, Verwalten, Erzeugen, Verfolgen, Konsumieren oder Durchführen von jedweder anderen Funktion oder jedweden anderen Arbeitsablaufs, die oder der mit dem Inhalt zusammenhängt, verwendet werden kann. Digitale Werkzeuge umfassen die kreative Vorrichtung 108. Ein digitales Werkzeug kann es einem Nutzer ermöglichen, ein 3D-Modell zu rendern, zu erzeugen, zu bearbeiten und/oder zu exportieren.
  • Eine digitale Erfahrung, wie sie hier beschrieben ist, umfasst eine Erfahrung, die durch eine elektronische Vorrichtung konsumiert werden kann. Beispiele für die digitale Erfahrung umfassen eine Inhaltserzeugung, eine Inhaltsbearbeitung, eine Inhaltsverfolgung, eine Inhaltsveröffentlichung, ein Inhaltsposten, ein Inhaltsdrucken, eine Inhaltsverwaltung, eine Inhaltsbetrachtung, eine Inhaltskonsumierung, jedwede Kombination dieser Erfahrungen oder jedweden anderen Arbeitsablauf oder jedwede andere Funktion, die in Bezug auf den Inhalt durchgeführt werden kann. Eine digitale Erfahrung kann ein Rendern, Erzeugen, Bearbeiten und/oder Exportieren eines 3D-Modells umfassen.
  • Ein Inhalt, wie er hier beschrieben ist, umfasst einen elektronischen Inhalt. Beispiele für den Inhalt umfassen, sind jedoch nicht beschränkt auf, ein Bild, ein Video, eine Website, eine Webpage, eine Nutzerschnittstelle, einen Menüpunkt, ein Werkzeugmenü, ein Magazin, eine Diashow, eine Animation, einen Post in sozialen Medien, einen Kommentar, einen Blog, einen Datenstrom („data feed“), Audiodaten, eine Werbung, eine Vektorgraphik, eine Bitmap, ein Dokument, jedwede Kombination von einem Inhalt oder mehreren Inhalten, oder jedweden anderen elektronischen Inhalt. Ein Inhalt kann Renderings eines 3D-Modells umfassen, das mit den hier offenbarten Techniken erzeugt und/oder bearbeitet worden ist.
  • Beispiele für die Nutzervorrichtungen 102A-N umfassen, sind jedoch nicht beschränkt auf, einen Personalcomputer (PC), einen Tabletcomputer, einen Desktopcomputer, eine virtuelle Realität (VR)-Konsole, eine Verarbeitungseinheit, jedwede Kombination dieser Vorrichtungen oder jedwede andere geeignete Vorrichtung mit einem oder mehreren Prozessor(en). Jede Nutzervorrichtung umfasst oder steht in Verbindung mit eine(r) Nutzerschnittstelle, wie z.B. einer Anzeige, die eine berührungsbasierte Schnittstelle oder Stiftschnittstelle umfassen kann. Jede Nutzervorrichtung umfasst mindestens eine Anwendung, die durch die kreative Vorrichtung 108 unterstützt wird.
  • Es sollte beachtet werden, dass die folgende Beschreibung nachstehend mittels der Nutzervorrichtung 102A als Beispiel erläutert wird und jedwede andere Nutzervorrichtung verwendet werden kann.
  • Beispiele für das Netzwerk 106 umfassen, sind jedoch nicht beschränkt auf, das Internet, ein lokales Netzwerk (LAN), ein drahtloses Netzwerk, ein drahtgebundenes Netzwerk, ein Weitverkehrsnetzwerk und dergleichen.
  • Die kreative Vorrichtung 108 umfasst ein oder mehrere Modul(e) („Engine(s)“) zum Bereitstellen von einer oder mehreren digitalen Erfahrungen für den Nutzer. Die kreative Vorrichtung 108 kann mit einem oder mehreren Server(n), einer oder mehreren Plattform(en) mit entsprechenden Anwendungsprogrammierschnittstellen, einer Cloudinfrastruktur und dergleichen implementiert werden. Darüber hinaus kann jedes Modul auch mit einem oder mehreren Server(n), einer oder mehreren Plattform(en) mit entsprechenden Anwendungsprogrammierschnittstellen, einer Cloudinfrastruktur und dergleichen implementiert werden. Die kreative Vorrichtung 108 umfasst auch eine Datenspeichereinheit 112. Die Datenspeichereinheit 112 kann als eine oder mehrere Datenbank(en) oder ein oder mehrere Datenserver implementiert werden. Die Datenspeichereinheit 112 umfasst Daten, die durch die Module („Engines“) der kreativen Vorrichtung 108 verwendet werden.
  • Ein Nutzer der Nutzervorrichtung 102A besucht eine Webseite oder eine Anwendungshandlung zum Erkunden von Anwendungen, die durch die kreative Vorrichtung 108 unterstützt werden. Die kreative Vorrichtung 108 stellt die Anwendungen als Software als Dienst (SaaS) oder als eigenständige Anwendung, die auf der Nutzervorrichtung 102A installiert werden kann, oder als eine Kombination bereit. Der Nutzer erzeugt dadurch einen Account mit der kreativen Vorrichtung 108, dass er Nutzerdetails bereitstellt, und auch dadurch, dass er Logindetails erzeugt. Alternativ kann die kreative Vorrichtung 108 automatisch Logindetails für den Nutzer als Reaktion auf den Empfang der Nutzerdetails erzeugen. In einigen Ausführungsformen wird der Nutzer auch aufgefordert, eine Anwendungsverwaltung zu installieren. Die Anwendungsverwaltung ermöglicht es einem Nutzer, eine Installation von verschiedenen Anwendungen zu verwalten, die durch die kreative Vorrichtung 108 unterstützt werden, und auch andere Funktionalitäten, wie z.B. Aktualisierungen bzw. Updates, einen Subskriptionsaccount und dergleichen, die mit den Anwendungen zusammenhängen, zu verwalten. Die Nutzerdetails werden durch ein Nutzerverwaltungsmodul 116 empfangen und als Nutzerdaten 118 in der Datenspeichereinheit 112 gespeichert. In einigen Ausführungsformen umfassen die Nutzerdaten 118 ferner Accountdaten 120, in denen die Nutzerdetails gespeichert sind.
  • Der Nutzer kann entweder einen Probeaccount wählen oder kann auf der Basis des Typs des Accounts oder der Subskription, die durch den Nutzer gewählt worden ist, eine Zahlung leisten. Alternativ kann die Zahlung auf dem Produkt oder der Anzahl der Produkte basieren, das oder durch die den Nutzer gewählt wird oder werden. Auf der Basis der Zahlungsdetails des Nutzers wird durch ein Berechtigungsmodul 124 ein Nutzerfunktionsprofil 122 erzeugt. Das Nutzerfunktionsprofil 122 wird in der Datenspeichereinheit 112 gespeichert und gibt die Berechtigung des Nutzers für verschiedene Produkte oder Dienste an. Das Nutzerfunktionsprofil 122 gibt auch den Typ des Nutzers an, d.h., kostenlos, Probe, Student, vergünstigt oder bezahlt.
  • Das Nutzerverwaltungsmodul 116 und das Berechtigungsmodul 124 können ein einzelnes Modul sein, das die Funktionen beider Module ausführt.
  • Der Nutzer installiert dann verschiedene Anwendungen, die durch die kreative Vorrichtung 108 unterstützt werden, mittels eines Anwendungsdownloadverwaltungsmoduls 126. Anwendungsinstallationsprogramme oder Anwendungsprogramme 128, die in der Datenspeichereinheit 112 vorliegen, werden durch das Anwendungsdownloadverwaltungsmodul 126 abgerufen und dem Nutzer direkt oder mittels der Anwendungsverwaltung zur Verfügung gestellt. In einer Ausführungsform werden alle Anwendungsprogramme 128 mittels einer Schnittstelle der Anwendungsverwaltung abgerufen und dem Nutzer zur Verfügung gestellt. In einer weiteren Ausführungsform werden Anwendungsprogramme 128, für die der Nutzer auf der Basis des Betriebsprofils passend ist, angezeigt. Der Nutzer wählt dann die Anwendungsprogramme 128 oder die Anwendungen, die der Nutzer herunterladen will. Beispielsweise kann der Nutzer ein Anwendungsprogramm zum Rendern und/oder Erzeugen von 3D-Modellen auswählen und herunterladen. Die Anwendungsprogramme 128 werden dann durch die Anwendungsverwaltung mittels des Anwendungsdownloadverwaltungsmoduls 126 auf die Nutzervorrichtung 102A heruntergeladen. Entsprechende Daten, die das Herunterladen betreffen, werden auch in dem Nutzerfunktionsprofil 122 aktualisiert. Ein Anwendungsprogramm 128 ist ein Beispiel für das digitale Werkzeug. Das Anwendungsdownloadverwaltungsmodul 126 verwaltet auch den Vorgang des Bereitstellens von Aktualisierungen für die Nutzervorrichtung 102A.
  • Nach dem Herunterladen, dem Installieren und dem Starten eines Anwendungsprogramms wird der Nutzer in einer Ausführungsform gebeten, die Logindetails bereitzustellen. Durch das Nutzerverwaltungsmodul 116 und das Berechtigungsmodul 124 wird erneut eine Prüfung durchgeführt, um sicherzustellen, dass der Nutzer zur Nutzung des Anwendungsprogramms berechtigt ist. In einer weiteren Ausführungsform wird ein direkter Zugang zu dem Anwendungsprogramm bereitgestellt, da der Nutzer bereits in die Anwendungsverwaltung eingeloggt ist.
  • Der Nutzer nutzt ein oder mehrere Anwendungsprogramm(e) 128 zum Erzeugen eines oder mehrerer Projekt(e) oder Inhalt(e) („Asset(s)“). Darüber hinaus steht dem Nutzer ein Arbeitsraum innerhalb jedes Anwendungsprogramms zur Verfügung. Der hier beschriebene Arbeitsraum umfasst eine Einstellung des Anwendungsprogramms, eine Einstellung von Werkzeugen oder eine Einstellung der Nutzerschnittstelle, die durch das Anwendungsprogramm bereitgestellt wird, und jedwede andere Einstellung oder Eigenschaften, die für das Anwendungsprogramm spezifisch ist oder sind. Jedem Nutzer steht ein Arbeitsraum zur Verfügung. Der Arbeitsraum, die Projekte oder die Inhalte werden dann als Anwendungsprogrammdaten 130 in der Datenspeichereinheit 112 durch ein Synchronisationsmodul 132 gespeichert. Die Anwendungsprogrammdaten 130 können für den Nutzer spezifisch sein oder mit anderen Nutzern auf der Basis einer Rechteverwaltung geteilt werden. Die Rechteverwaltung wird durch ein Rechteverwaltungsmodul 136 ausgeführt. Rechteverwaltungsregeln oder -kriterien sind als Rechteverwaltungsdaten 138 in der Datenspeichereinheit 112 gespeichert.
  • Die Anwendungsprogrammdaten 130 umfassen einen oder mehrere Inhalt(e) 140. Die Inhalte 140 können ein geteilter Inhalt sein, den der Nutzer mit anderen Nutzern teilen will oder den der Nutzer auf einem Marktplatz anbieten will. Die Inhalte 140 können auch zwischen mehreren Anwendungsprogrammen 128 geteilt werden. Jeder Inhalt umfasst Metadaten 142. Beispiele für die Metadaten 142 umfassen, sind jedoch nicht beschränkt auf, Farbe, Größe, Form, Koordinate, eine Kombination von jedweden davon und dergleichen. Darüber hinaus umfasst in einer Ausführungsform jeder Inhalt auch eine Datei. Beispiele für die Datei umfassen, sind jedoch nicht beschränkt auf, ein Bild 144, das ein dreidimensionales (3D) Modell umfassen kann. In einer anderen Ausführungsform umfasst ein Inhalt nur die Metadaten 142.
  • Die Anwendungsprogrammdaten 130 umfassen auch Projektdaten 154 und Arbeitsraumdaten 156. In einer Ausführungsform umfassen die Projektdaten 154 die Inhalte 140. In einer anderen Ausführungsform sind die Inhalte 140 eigenständige Inhalte. Entsprechend können die Arbeitsraumdaten 156 in einer Ausführungsform Teil der Projektdaten 154 sein, während sie in einer anderen Ausführungsform eigenständige Daten sein können.
  • Der Nutzer kann eine oder mehrere Nutzervorrichtung(en) haben. Die Anwendungsprogrammdaten 130 sind für den Nutzer von jedweder Vorrichtung zugänglich, d.h., einschließlich der Vorrichtung, die nicht zur Erzeugung der Inhalte 140 verwendet wird. Dies wird durch das Synchronisationsmodul 132 erreicht, das die Anwendungsprogrammdaten 130 in der Datenspeichereinheit 112 speichert und die Anwendungsprogrammdaten 130 für den Nutzer oder andere Nutzer mittels jedweder Vorrichtung zugänglich macht. Bevor die Anwendungsprogrammdaten 130 für den Nutzer von jedweder anderen Vorrichtung oder jedweden anderen Nutzer zugänglich gemacht werden, kann es erforderlich sein, dass der Nutzer oder der andere Nutzer Logindetails zur Authentifizierung bereitstellen muss, wenn er nicht bereits eingeloggt ist. Wenn andererseits der Nutzer oder der andere Nutzer eingeloggt ist, werden ein neu erzeugter Inhalt oder Aktualisierungen der Anwendungsprogrammdaten 130 in Echtzeit bereitgestellt. Das Rechteverwaltungsmodul 136 wird auch abgefragt, um zu bestimmen, ob der neu erzeugte Inhalt oder die Aktualisierungen für den anderen Nutzer bereitgestellt werden können oder nicht. Die Arbeitsraumdaten 156 ermöglichen es dem Synchronisationsmodul 132, dieselbe Arbeitsraumkonfiguration für den Nutzer auf jedweder anderen Vorrichtung oder für den anderen Nutzer auf der Basis der Rechteverwaltungsdaten 138 bereitzustellen.
  • In einigen Ausführungsformen wird die Nutzerinteraktion mit den Anwendungsprogrammen 128 auch durch ein Anwendungsanalysemodul 158 verfolgt und als Anwendungsanalysedaten 160 gespeichert. Die Anwendungsanalysedaten 160 umfassen z.B. die Nutzung eines Werkzeugs, die Nutzung eines Merkmals, die Nutzung eines Arbeitsablaufs, die Nutzung der Inhalte 140 und dergleichen. Die Anwendungsanalysedaten 160 können die Nutzungsdaten auf der Basis pro Nutzer umfassen und können auch die Nutzungsdaten auf der Basis pro Werkzeug oder pro Merkmal oder pro Arbeitsablauf oder auf jedweder anderen Basis umfassen. Das Anwendungsanalysemodul 158 bettet ein Codeteil in die Anwendungsprogramme 128 ein, das es einem Anwendungsprogramm ermöglicht, die Nutzungsdaten zu sammeln und sie zu dem Anwendungsanalysemodul 158 zu senden.
  • In einigen Ausführungsformen umfassen die Anwendungsanalysedaten 160 Daten, die den Status des Projekts des Nutzers umfassen. Beispielsweise wenn der Nutzer ein 3D-Modell in einer digitalen 3D-Modellbearbeitungsanwendung erstellt hat und zu dem Zeitpunkt, bei dem der Nutzer die Anwendung beendet hat, lediglich noch das Drucken des 3D-Modells erforderlich war, dann verfolgt das Anwendungsanalysemodul 158 den Zustand. Wenn der Nutzer als nächstes die 3D-Modellbearbeitungsanwendung auf einer anderen Vorrichtung öffnet, wird dem Nutzer der Zustand angezeigt und die Optionen werden für den Nutzer zum Drucken mittels der digitalen 3D-Modellbearbeitungsanwendung oder jedweder anderen Anwendung bereitgestellt. Darüber hinaus können, während das 3D-Modell erstellt wird, Empfehlungen auch durch das Synchronisationsmodul 132 gemacht werden, um einige von anderen Inhalten einzubeziehen, die durch den Nutzer gespeichert worden sind und für das 3D-Modell relevant sind. Solche Empfehlungen können unter Verwendung von einem oder mehreren Modul(en) erzeugt werden, wie es hier beschrieben ist.
  • Die kreative Vorrichtung 108 umfasst auch ein Gemeinschaftsmodul 164, das die Erzeugung von verschiedenen Gemeinschaften und eine Zusammenarbeit zwischen den Gemeinschaften ermöglicht. Eine Gemeinschaft, wie sie hier beschrieben ist, umfasst eine Gruppe von Nutzern, die mindestens ein gemeinsames Interesse teilen. Die Gemeinschaft kann geschlossen sein, d.h., auf eine Anzahl von Nutzern beschränkt sein, oder sie kann offen sein, d.h., jedermann kann teilnehmen. Die Gemeinschaft ermöglicht es den Nutzern, die Arbeit von jedem anderen zu teilen und die Arbeit von jedem anderen zu kommentieren oder dergleichen. Die Arbeit umfasst die Anwendungsprogrammdaten 140. Das Gemeinschaftsmodul 164 speichert jedwede Daten, die der Gemeinschaft entsprechen, wie z.B. die Arbeit, die mit der Gemeinschaft geteilt wird, und Kommentare oder dergleichen, die für die Arbeit als Gemeinschaftsdaten 166 empfangen werden. Die Gemeinschaftsdaten 166 umfassen auch Benachrichtigungsdaten und werden zum Benachrichtigen anderer Nutzer durch das Gemeinschaftsmodul in dem Fall jedweder Aktivität verwendet, die mit der Arbeit oder einer neuen Arbeit, die geteilt wird, zusammenhängt. Das Gemeinschaftsmodul 164 arbeitet im Zusammenhang mit dem Synchronisationsmodul 132 zur Bereitstellung von Arbeitsabläufen für eine Zusammenarbeit für den Nutzer. Beispielsweise kann der Nutzer ein 3D-Modell erzeugen und kann eine Expertenmeinung oder Expertenbearbeitung anfragen. Ein Expertennutzer kann dann entweder das Bild bearbeiten, wie es dem Nutzer gefällt, oder eine Expertenmeinung abgeben. Das Bearbeiten und Bereitstellen der Expertenmeinung durch den Experten wird durch das Gemeinschaftsmodul 164 und das Synchronisationsmodul 132 ermöglicht. Bei Arbeitsabläufen für eine Zusammenarbeit werden jedem einer Mehrzahl von Nutzern verschiedene Ziele, welche die Arbeit betreffen, zugeordnet.
  • Die kreative Vorrichtung 108 umfasst auch ein Marktplatzmodul 168 zum Bereitstellen eines Marktplatzes für einen oder mehrere Nutzer. Das Marktplatzmodul 168 ermöglicht es dem Nutzer, einen Inhalt zum Verkauf oder zur Verwendung anzubieten. Das Marktplatzmodul 168 hat Zugang zu den Inhalten 140, die der Nutzer auf dem Marktplatz anbieten will. Die kreative Vorrichtung 108 umfasst auch ein Suchmodul 170, das ein Suchen der Inhalte 140 in dem Marktplatz ermöglicht. Das Suchmodul 170 ist auch ein Teil eines Anwendungsprogramms oder mehrerer Anwendungsprogramme 128, so dass es dem Nutzer ermöglicht wird, eine Suche für die Inhalte 140 oder jedweden anderen Typ der Anwendungsprogrammdaten 130 durchzuführen. Das Suchmodul 170 kann eine Suche für einen Inhalt mittels der Metadaten 142 oder der Datei durchführen.
  • Es sollte beachtet werden, dass die Module und die Funktionsweise der Module hier als Beispiele beschrieben sind und die Module zum Durchführen von jedwedem Schritt bei der Bereitstellung einer digitalen Erfahrung für den Nutzer verwendet werden können.
  • Beispielhaftes System für eine dreidimensionale Bildverarbeitung
  • Die 2 zeigt einen Zyklus von Vorgängen, die durch ein beispielhaftes Anwendungsprogramm ausgeführt werden (z.B. Anwendungsprogramme 128, Anwendung 104A, usw.), das als System für eine dreidimensionale (3D)-Modellverarbeitung ausgebildet ist. Die beispielhaften Vorgänge synchronisieren zwei verschiedene Darstellungen eines 3D-Modells 213. Insbesondere synchronisieren die Vorgänge eine Volumendichtedatenstruktur 210, die das 3D-Modell 213 mit einer Netzdarstellung 213' des 3D-Modells 213 darstellen. Dies ermöglicht das Beibehalten der zwei verschiedenen Darstellungen des 3D-Modells 213 und deren Verwendung für mehrere und verschiedene Zwecke durch das Anwendungsprogramm. In einer Ausführungsform der Erfindung wird die Volumendichtedatenstruktur 210 des 3D-Modells 213 zum Implementieren von Erzeugungs- und Bearbeitungswerkzeugen in dem Anwendungsprogramm verwendet. Die Netzdarstellung 213' des 3D-Modells 213 wird zum Rendern und/oder Exportieren des 3D-Modells 213 verwendet. Dies erweitert die Typen der Bearbeitungen und der Bearbeitungswerkzeuge, die Nutzer zum Bearbeiten von 3D-Modellen verwenden können, über die herkömmlichen netzbasierten Bearbeitungsmerkmale hinaus, die durch herkömmliche, nur netzbasierte 3D-Bearbeitungsanwendungen bereitgestellt werden.
  • Im Allgemeinen stellt die Volumendichtedatenstruktur 210 die Dichte an verschiedenen Stellen in einem 3D-Arbeitsraum dar. In einem Beispiel beträgt die Dichte an einer bestimmten x, y, z-Stelle (x1, y1, z1) 9, an einer anderen bestimmten x, y, z-Stelle (x2, y1, z1) 11, die Dichte an einer anderen bestimmten x, y, z-Stelle (x3, y1, z1) beträgt 12, usw. Solche Dichtewerte für viele x, y, z-Stellen in dem 3D-Arbeitsraum 212 können durch eine Volumendichtedatenstruktur 210 dargestellt werden. Diese Volumendichtewerte stellen die Dichte des 3D-Modells an diesen x, y, z-Stellen dar.
  • Die Volumendichtestruktur 210 in dem Beispiel von 2 ist als Stapel von Grauskalabildern oder -querschnitten 211 gezeigt, die eine Reihe von Querschnittsdarstellungen eines dreidimensionalen Arbeitsraums 212 enthalten. In diesem Beispiel liegt ein unterschiedlicher Querschnitt für viele z-Werte in dem 3D-Arbeitsraum 212 vor. Jeder Querschnitt stellt folglich die Dichtewerte für jede x, y-Stelle auf dem Querschnitt dar. In dem vorstehenden Beispiel betragen in dem z1-Querschnitt die Dichtewerte bei (x1, y1) 9, bei (x2, y1) 11 und bei (x3, y1) 12. Die Dichtewerte in einem Querschnitt können graphisch als Grauskalabilder dargestellt werden, wobei höhere Dichtewerte mit relativ dunkleren Grauschattierungen angezeigt werden. Alternativ könnten die Dichtewerte in einem Querschnitt mittels Farben, Zahlen oder jedweder anderen geeigneten Darstellung angezeigt werden. Während Darstellungen der Volumendichtedatenstruktur 210 für eine Anzeige in einer Bearbeitungsschnittstelle bereitgestellt werden können, muss die Volumendichtedatenstruktur 210 nicht angezeigt werden. In Ausführungsformen der Erfindung wird die Volumendichtedatenstruktur 210 nur zum Anwenden von Nutzerbearbeitungen auf das 3D-Modell verwendet, ohne für den Nutzer angezeigt zu werden, wie es als nächstes erläutert wird.
  • Die Volumendichtedatenstruktur 210 wird durch das Anwendungsprogramm zum Implementieren von Bearbeitungen verwendet. Beispielsweise werden auf der Basis einer Nutzereingabe, die angibt, dass dem 3D-Modell in einem Bereich in dem 3D-Arbeitsraum 212 etwas hinzugefügt werden soll, die Dichtewerte in diesem Bereich erhöht. Beispielsweise kann ein Nutzer eine Eingabe mittels des Anwendungsprogramms hinzufügen, so dass ein Inhalt in einem Bereich um eine Stelle (x3, y3, z3) mit einem Radius von 10 Einheiten (z.B. Pixel/Querschnitte) hinzugefügt wird. Eine solche Eingabe kann mittels eines 3D-Malpinselwerkzeugs mit einer Kugelform bereitgestellt werden. In diesem Beispiel bestimmt das Anwendungsprogramm auf der Basis dieser Eingabe, jedweder Stelle in der Volumendichtedatenstruktur innerhalb von 10 Einheiten (z.B. Pixel) dieser Stelle eine Dichte hinzuzufügen. Die Dichtewerte können einheitlich erhöht werden, wie z.B. derart, dass alle Dichtewerte innerhalb des Radius um dasselbe Ausmaß erhöht werden. Alternativ können die Dichtewerte auf der Basis der Distanz entfernt von dieser Stelle erhöht werden. Beispielsweise können Dichtewerte von Stellen näher an der Stelle (x3, y3, z3) stärker erhöht werden als die Dichtewerte von Stellen, die relativ weiter von dieser Stelle entfernt sind. Dichtewerte außerhalb des Radius werden in diesem Beispiel nicht erhöht.
  • In dem Beispiel von 2, bei dem die Volumendichtedatenstruktur Querschnitte 211 umfasst, führen die beispielhaften radiusbasierten Bearbeitungsergebnisse zur Bearbeitung der Dichtewerte in kreisförmigen Bereichen in jedem der Querschnitte 211. Insbesondere werden die Dichtewerte in einem kreisförmigen Bereich um (x3, y3) in einem z3-Querschnitt erhöht, die Dichtewerte in geringfügig kleineren kreisförmigen Bereichen um (x3, y3) in jedem von einem z3 + 1- und einem z3 - 1-Querschnitt werden erhöht, usw. Auf diese Weise wird die sphärische Bearbeitung (d.h., die Bearbeitung, die Dichte in einer Kugel hinzufügt) durch Hinzufügen von Dichte in einem kreisförmigen Bereich in mehreren Querschnitten in einem Stapel von Querschnitten implementiert. Im Allgemeinen können Bearbeitungen 3D-Bereiche des Arbeitsraums bewirken und diese Bearbeitungen werden durch Bestimmen und Verändern der Volumendichtewerte an Stellen innerhalb dieser 3D-Bereiche implementiert.
  • Es sollte beachtet werden, dass die Abstände zwischen benachbarten Querschnitten der Querschnitte 211 mit dem Abstand zwischen benachbarten Pixeln in den Querschnitten identisch sein können, jedoch nicht müssen. Folglich kann die Anzahl von Querschnitten so ausgewählt werden, dass die Auflösung in der z-Richtung mit den Auflösungen in der x- und der y-Richtung identisch sind. Beispielsweise können, wenn jeder Querschnitt ein 1000 x 1000-Bild von Pixelwerten ist, die Dichten für verschiedene x,y-Stellen darstellen, 1000 verschiedene Querschnitte vorliegen, die verschiedene z-Ebenen in der z-Richtung darstellen. Auf diese Weise stellt die Ansammlung von Querschnitten 211 zusammen den 3D-Arbeitsraum 212 unter Verwendung von 1000 Querschnitten dar, die jeweils 1000 x 1000 Pixel aufweisen, die Dichtewerte darstellen. Dies stellt einen 3D-Arbeitsraum 212 mit den Abmessungen 1000 x 1000 x 1000 dar. Die Anzahl und der Aufbau der Querschnitte und der Pixel innerhalb jedes Querschnitts kann so ausgewählt werden, dass die Auflösung und/oder die Verarbeitungseffizienz ausgewogen sind. Beispielsweise kann die Anzahl der Querschnitte und/oder Bildpixel vermindert werden, um die Effizienz zu verbessern, oder erhöht werden, um die Auflösung zu verbessern.
  • Die 2 zeigt ein Triangulationsverfahren 214, um ein beispielhaftes Verfahren des Bestimmens einer Netzdarstellung 213' auf der Basis der Dichtevolumendatenstruktur 210, die das 3D-Modell 213 darstellt, zu veranschaulichen. Im Allgemeinen umfasst diese Umwandlung die Bestimmung einer Oberfläche um Dichtewerte, die oberhalb eines Schwellenwerts in der Dichtevolumendatenstruktur 210 liegen. Es soll beispielsweise das vorstehende Beispiel betrachtet werden, in dem die Dichte an einer ersten x, y, z-Stelle (x1, y1, z1) 9 ist, an einer zweiten x, y, z-Stelle (x2, y1, z1) 11 ist, und die Dichte an einer dritten x, y, z-Stelle (x3, y1, z1) 12 ist, usw. Wenn der Schwellenwert 10 ist, umfasst der Umwandlungsvorgang die Bestimmung einer Oberfläche um Stellen, die eine Dichte von 10 oder mehr aufweisen. In dem vorliegenden Beispiel würde die Oberfläche die zweite und die dritte Stelle umgeben, jedoch nicht die erste Stelle, und zwar auf der Basis ihrer jeweiligen Dichtewerte. In der 2 bestimmt diese Umwandlung die Oberfläche mittels eines Triangulationsverfahrens 214, das die Bestimmung einer Oberfläche umfasst, die unter Verwendung eines Netzes von miteinander verbundenen Dreiecken festgelegt ist. Die Bestimmung einer Oberfläche, welche Stellen in einer Dichtevolumendarstellung umgibt, die Dichtewerte oberhalb eines Schwellenwerts aufweisen, kann die Bestimmung von einer oder mehreren kontinuierlichen Funktionen umfassen, welche die Oberfläche festlegen. Verschiedene bekannte Algorithmen, wie z.B. „Marching Cubes“, duales Konturieren, Oberflächennetze und „Marching Tetrahedrons“, können auf der Basis von Volumendichteinformationen zur Bestimmung von Funktionen verwendet werden, die eine oder mehrere Oberfläche(n) darstellen. Beispielsweise erzeugt der „Marching Cubes“-Algorithmus eine Oberfläche durch Schneiden der Kanten eines Volumengitters mit einer Volumenkontur. Wenn die Oberfläche die Kante schneidet, erzeugt der Algorithmus einen Eckpunkt. Durch die Verwendung einer Tabelle mit verschiedenen Dreiecken abhängig von verschiedenen Mustern der Kantenschnittpunkte erzeugt der Algorithmus eine Oberfläche.
  • Die Netzdarstellung 213' des 3D-Modells kann zum Anzeigen eines Renderings verwendet werden. Die Netzdarstellung 213' des 3D-Modells 213 ist insbesondere zur Bereitstellung eines bearbeitbaren Renderings des 3D-Modells auf einer graphischen Nutzerschnittstelle (GUI) geeignet. Die Oberfläche des 3D-Modells wird auf einer solchen GUI angezeigt und der Nutzer kann die Oberfläche des 3D-Modells betrachten. Folglich ist der Nutzer wie bei herkömmlichen 3D-Modellbearbeitungssystemen dazu fähig, Renderings einer netzbasierten Darstellung des 3D-Modells 213 zu betrachten. Da jedoch das 3D-Modell 213 auch eine Dichtevolumendatenstruktur 210 aufweist, kann der Nutzer das Modell in einer Weise bearbeiten, die mit herkömmlichen 3D-Modellbearbeitungssystemen nicht möglich war. Insbesondere ist der Nutzer fähig, Bearbeitungen durchzuführen, welche die Volumendarstellung verändern, anstatt dass der Nutzer Bearbeitungen durch Interagieren mit Eckpunkten eines Renderings mit der Netzdarstellung durchführen muss.
  • Ein Nutzer (nicht gezeigt) verwendet eine Eingabevorrichtung, wie z.B. eine Maus, ein Trackpad, eine Tastatur, einen Berührungsbildschirm, usw., zum Steuern eines Bearbeitungswerkzeugs 216, wie z.B. eines Pinsels, eines Filters, eines Stifts, einer Ebene, usw., auf einer Anzeige, welche die Netzdarstellung 213' zeigt. Folglich ist, obwohl der Nutzer die Netzdarstellung 213' betrachtet, der Nutzer fähig, Bearbeitungen durchzuführen, die unter Verwendung der Volumendichtedatenstruktur 210 implementiert werden. Wenn der Nutzer das Bearbeitungswerkzeug 216 bedient, bestimmt die Anwendung Stellen innerhalb des 3D-Arbeitsraums 212, mit denen der Nutzer interagiert. Beispielsweise wenn der Nutzer das Bearbeitungswerkzeug 216, wie z.B. einen Malpinsel, auf der Nutzerschnittstelle in der Nähe einer Kante der Netzdarstellung 213' positioniert (jedoch nicht berührt), kann die Anwendung eine Stelle in dem 3D-Arbeitsraum 212 auf der Basis des Bearbeitungswerkzeugs 216 bestimmen. In einem Beispiel identifiziert die Anwendung zwei von Dimensionen der Stelle der Bearbeitung auf der Basis der Position des Bearbeitungswerkzeugs und bestimmt die dritte Dimension automatisch. In einer anderen Ausführungsform bewegt der Nutzer die Komponente in einer ersten Dimension (z.B. x) durch Bewegen eines Cursors nach links und nach rechts, einer zweite Dimension (z.B. y) durch Bewegen des Cursors nach oben und unten, und einer dritten Richtung (z.B. „y“ durch Drücken eines „v“ oder „h“ für „vorne“ und „hinten“). Die Größe des Cursors in dieser Ausführungsform kann erhöht und/oder vermindert werden, um die Tiefe des Cursors in der dritten Richtung graphisch anzugeben. Im Allgemeinen positioniert der Nutzer ein Bearbeitungswerkzeug 216 relativ zu der Netzdarstellung ‚213, die auf einer Bearbeitungsleinwand angezeigt wird, und legt Bearbeitungen für das Modell fest. Zusätzlich oder alternativ kann der Nutzer das Modell durch Festlegen von Filtern, Ebenen und Verwenden von anderen Merkmalen bearbeiten, die festlegen, wie ein Bereich des 3D-Arbeitsraums 212 verändert werden soll. Zusätzlich oder alternativ kann der Nutzer Bearbeitungen durchführen, welche die Netzdarstellung 213‘ direkt verändern, z.B. durch Ziehen von Eckpunkten der Netzdarstellung 213' zu einer neuen Stelle.
  • Auf der Basis des Empfangens einer Bearbeitung modifiziert die Anwendung die entsprechenden Stellen auf dem Stapel von Bildern 211 auf der Basis von festgelegten Eigenschaften des Werkzeugs 216, wie es weiter unten diskutiert wird. Die Netzdarstellung 213' wird angezeigt und der Nutzer führt Bearbeitungen relativ zu der Schnittstelle durch, welche die Netzdarstellung 213' anzeigt. Die Bearbeitungen werden interpretiert und zum Verändern der Dichtevolumendatenstruktur 210 verwendet. Darüber hinaus können die Bearbeitungen in der Dichtevolumendatenstruktur 210 implementiert werden. Das Triangulationsverfahren 214 modifiziert dann die Netzdarstellung 213' und die Nutzerschnittstelle, die in Echtzeit aktualisiert wird. Folglich wird, wenn ein Nutzer ein Malpinselwerkzeug zum Ausführen von Pinselstrichen verwendet, die dem 3D-Modell hinzugefügt werden, die Nutzerschnittstelle während des Pinselstrichs aktualisiert. Insbesondere kann der Nutzer sehen, wie sich das Netz auf der Basis des Inhalts verändert hat, der zu Beginn des Pinselstrichs hinzugefügt worden ist, wenn der Nutzer den Rest des Pinselstrichs vervollständigt. Im Allgemeinen wird das Triangulationsverfahren 214 von 2 während oder nach jeder Bearbeitung wiederholt und wandelt die modifizierte Volumendarstellung in eine modifizierte Netzdarstellung 213' um, die zum Aktualisieren der Nutzerschnittstelle verwendet wird.
  • Die 2 zeigt ferner ein Voxelisierungsverfahren 217 als ein Beispiel für ein Verfahren zum Umwandeln der Netzdarstellung 213' in die volumenbasierte Darstellung in der Dichtevolumendatenstruktur 210. Eine solche Umwandlung kann in einer ursprünglichen Stufe der Verwendung stattfinden, z.B. wenn ein Nutzer eine Netzdarstellung von einer anderen Anwendung importiert. Die Umwandlung der Netzdarstellung 213' in die Dichtevolumendatenstruktur 210 kann auch zum Synchronisieren von Veränderungen stattfinden, die direkt mit dem Netz ausgeführt werden, z.B. wenn ein Nutzer Eckpunkte einer Netzdarstellung 213' zu einer neuen Stelle zieht. Im Allgemeinen umfasst das Umwandeln von einer Netz- in eine Volumendarstellung das Bestimmen von Dichtewerten für verschiedene Stellen in dem 3D-Arbeitsraum 212 auf der Basis einer Oberfläche, die durch ein Netz festgelegt ist. In einem Beispiel umfasst dies das Zuordnen desselben vorgegebenen Dichtewerts für alle Stellen innerhalb des Oberflächenbereichs, der durch die Netzdarstellung 213' festgelegt ist. In einem weiteren Beispiel umfasst diese Umwandlung das Zuordnen von Dichtewerten auf der Basis von Abständen von dem Oberflächenbereich. Beispielsweise können Dichtewerte unmittelbar innerhalb der Oberfläche höher sein als Dichtewerte, die weiter innerhalb der Oberfläche liegen. Darüber hinaus können kleine Werte unterhalb eines Schwellenwerts (z.B. unter 10 in dem vorstehenden Beispiel) Stellen unmittelbar außerhalb (z.B. innerhalb von 5) Pixeln der Oberfläche zugeordnet werden. In einer Ausführungsform der Erfindung beginnen die Verfahren von 2 mit einer Netzdarstellung eines 3D-Modells und die Anwendung wandelt das 3D-Modell in eine volumenbasierte Darstellung um, die in einer Dichtevolumendatenstruktur 210 als Beginn des Verfahrens gespeichert ist.
  • Die 2 zeigt ein beispielhaftes Voxelisierungsverfahren 217 zum Umwandeln der Netzdarstellung 213' in eine Dichtevolumendatenstruktur 210. In diesem Beispiel führt das Voxelisierungsverfahren 217 das Umgekehrte des Triangulationsverfahrens 214 aus. Insbesondere wandelt das Voxelisierungsverfahren 217 die Dreiecke oder andere Vielecke der Netzdarstellung 213' in Dichtewerte in einem Gitter um, so dass die Dichtevolumendatenstruktur 210 gebildet wird. In einer Ausführungsform der Erfindung wird das Voxelisierungsverfahren 217 nur verwendet, wenn eine Netzdarstellung importiert wird. In einer anderen Ausführungsform der Erfindung wird das Voxelisierungsverfahren 217 zum Umwandeln von Veränderungen, die direkt mit der Netzdarstellung 213' durchgeführt worden sind, in die Dichtevolumendatenstruktur 210 auf der Basis eines Nutzers durchgeführt, der direkt Eckpunkte der Netzdarstellung 213' bewegt. Eine beispielhafte Technik zur Durchführung des Voxelisierungsverfahrens 217 umfasst das Berechnen einer bezeichneten Distanz zu der Netzdarstellung 213' für jeden Punkt (x,y,z). Die Technik teilt dann die bezeichnete Distanz in zwei Teile auf: eine unbezeichnete Distanz und die Bezeichnung. Die Bezeichnung wird auf der Basis dessen bestimmt, ob der Punkt (x,y,z) innerhalb oder außerhalb der Netzdarstellung 213' liegt. Die Distanz wird als das Minimum der Distanz (Punkt(x,y,z), Dreieck(i)) für alle Dreiecke i in dem Netz berechnet. Dann wird eine lineare Kartierung durchgeführt, um einen Dichtewert für jeden Punkt auf dem Gitter zu erhalten. Dies kann z.B. das Bestimmen der Dichte mittels der Gleichung: Dichte (bezeichnete Distanz) = max(min(bezeichnete Distanz*a+b,1),0)) umfassen, wobei ein Fixieren („clamping“) zwischen der bezeichneten Distanz und der Dichte stattfindet. In diesem Beispiel bezieht sich „a“ auf den Maßstab und „b“ auf die Netzversetzung. Eine Ausführungsform der Erfindung stellt vorgegebene Werte für den Maßstab (z.B. 0,5) und die Netzversetzung (z.B. 0,5) bereit. In einer alternativen Ausführungsform der Erfindung werden diese Werte auf der Basis einer Nutzereingabe eingestellt, um es einem Nutzer zu ermöglichen, das Voxelisierungsverfahren 217 und/oder das Triangulationsverfahren 214 zu steuern.
  • In bestimmten Ausführungsformen der Erfindung werden das Voxelisierungsverfahren 217 und/oder das Triangulationsverfahren 214 von 2 selektiv nur mit den bearbeiteten Bereichen des 3D-Modells 213 durchgeführt. In einem Beispiel wird dann, wenn eine Bearbeitung durchgeführt wird, ein Bereich des 3D-Arbeitsraums 212 bestimmt, der von der Bearbeitung betroffen ist. Veränderungen der Dichtevolumendatenstruktur 213' werden dann auf diesen Bereich beschränkt. Dann wird das Triangulationsverfahren zum Ändern nur der Netzdarstellung ‚213 für die beschränkten Änderungen durchgeführt, die mit der Volumendatenstruktur 213‘ vorgenommen worden sind. Beispielsweise kann dies die Bestimmung einer Oberfläche, welche die Volumendichten innerhalb des beschränkten Bereichs umgibt, und dann Ersetzen der Abschnitte der Netzdarstellung 213' in diesem Bereich durch die neu bestimmten Netzabschnitte umfassen. In dieser Ausführungsform der Erfindung sind die Synchronisationsvorgänge vereinfacht, so dass die Geschwindigkeit und die Effizienz der Erfindung verbessert werden. In periodischen Intervallen, z.B. einmal pro Minute, einmal alle 5 Minuten, usw., kann eine vollständige Synchronisation durchgeführt werden, um Inkonsistenzen zu korrigieren.
  • Die 3 zeigt einen beispielhaften Bearbeitungswerkzeugsatz 310, aus dem der Nutzer auswählen kann. Zum Bearbeiten des 3D-Modells 213 auf verschiedenartige Weise werden verschiedene Werkzeuge ausgewählt. Beispielsweise werden Pinselwerkzeuge 311 zum Anwenden verschiedener Bearbeitungen, wie es nachstehend weiter diskutiert wird, auf bestimmte Abschnitte des 3D-Modells unter Verwendung einer Zeigevorrichtung oder einer berührungsbasierten Schnittstelle verwendet.
  • Filterwerkzeuge 313 werden zum Anwenden einer Bearbeitung auf einen Bereich eines 3D-Arbeitsraums zum Bearbeiten des 3D-Modells verwendet. Der Bereich des 3D-Arbeitsraums kann durch einen Nutzer ausgewählt werden, der den Bereich oder die Bereiche, der oder die bearbeitet werden soll(en), auswählt. Die Auswahlvorgänge eines solchen Bereichs oder solcher Bereiche kann manuell, z.B. durch Zeichnen einer Grenze um die gewünschte Auswahl, oder mit Systemunterstützung, z.B. durch Auswählen von Bereichen mit gemeinsamen Eigenschaften, wie z.B. Farbe, durchgeführt werden. Die ausgewählten Bereiche des 3D-Modells können eine aufgebrachte Auswahlmaske aufweisen, die Bereiche außerhalb der Auswahl ausschließt. Die ausgewählten Bereiche können in einem neuen 3D-Arbeitsraum mit lediglich dem ausgewählten maskierten Abschnitt als 3D-Modell in dem neuen Arbeitsraum gespeichert werden.
  • Die Ebenenbildung 315 umfasst das Festlegen von zusätzlichen 3D-Arbeitsräumen für zusätzliche 3D-Modelle. Die Mehrzahl von 3D-Arbeitsräumen kann dann unabhängig bearbeitet werden oder zu einem neuen 3D-Modell miteinander vereinigt werden, wie z.B. mathematisch, oder in sonstiger Weise kombiniert werden. Als spezifisches Beispiel soll ein Nutzer in Betracht gezogen werden, der ein 3D-Modell, das einen Pfirsich zeigt, aus dem ein Teil abgebissen ist, und ein weiteres 3D-Modell festlegt, das den Kern oder Samen zeigt. Sobald jedes Modell vollständig ist, kann der Nutzer die getrennten 3D-Arbeitsräume so miteinander kombinieren, dass eine Darstellung eines Pfirsichs mit einem abgebissenen Teil, so dass ein Teil des Kerns sichtbar ist, angezeigt wird. Als ein weiteres Beispiel kann der Nutzer die Kernebene von der Pfirsichebene „subtrahieren“ und einen Querschnitt der Kombination bilden, so dass eine Darstellung eines Pfirsichs angezeigt wird, die eine Kerntextur im Fruchtfleisch zeigt. Als ein weiteres Beispiel kann der Nutzer nur einen 3D-Arbeitsraum auf einmal zur Anzeige und Bearbeitung auswählen, oder der Nutzer kann zwei oder mehr 3D-Arbeitsräume zur Anzeige und Bearbeitung auswählen.
  • Ungeachtet des Verfahrens des Auswählens von Bereichen zur Bearbeitung, d.h., entweder einer Pinselbearbeitung, einem Filtern oder einer Ebenenbildung, oder jedweder anderen Bearbeitungstechnik, bietet das System dem Nutzer eine Auswahl von verschiedenen leicht verständlichen Bearbeitungswerkzeugen. Beispielsweise kann der Nutzer ein Pinselwerkzeug zum Zeichnen, Malen, Verschmieren, Unscharfmachen oder Klonieren eines Bereichs des 3D-Modells 213 verwenden. Im Gebrauch wendet das System ein Auswahlwerkzeug an einer ausgewählten Stelle, die durch den Nutzer auf der Anzeige angegeben wird, zum Bearbeiten von Volumendichten von spezifischen Elementen in der volumenbasierten Darstellung entsprechend der ausgewählten Stelle an. Das ausgewählte Werkzeug kann eine vom Nutzer auswählbare 3D-Volumenform- und -größe einer Anwendung umfassen, wie z.B. einen Malpinsel, der ein kugelförmiges Anwendungsvolumen mit einem ausgewählten Radius festlegt. Als ein weiteres Beispiel kann der Nutzer einen Bereich auswählen und auf das 3D-Modell 213 einen Filter, wie z.B. Unscharfmachen, Hinzufügen eines Rauschens, Schärfermachen oder Pixeln, anwenden. Im Gebrauch identifiziert das System einen Bereich, wie z.B. einen von einem Nutzer ausgewählten Abschnitt der Oberfläche des 3D-Modells, das auf der Anzeige gezeigt ist, und wendet einen Filter, wie z.B. ein Gauss-Unscharfmachen, auf die Volumendichtewerte von Elementen innerhalb der volumenbasierten Darstellung an einem Bereich an, der den vom Nutzer ausgewählten Abschnitt des 3D-Modells zeigt, das auf der Anzeige gezeigt ist.
  • Ausführungsformen der Erfindung stellen Techniken, Systeme und computerlesbare Medien mit gespeicherten Anweisungen bereit, die das Bearbeiten und Rendern eines 3D-Modells ermöglichen. Die Funktionen, die in diese Ausführungsformen der Erfindung einbezogen sind, umfassen im Allgemeinen die Darstellung des 3D-Modells unter Verwendung sowohl einer volumenbasierten Darstellung als auch einer netzbasierten Darstellung, was Ansichten des 3D-Modells zum Anzeigen auf einer Nutzerschnittstelle auf der Basis der netzbasierten Darstellung und zum Bearbeiten des 3D-Modells auf der Basis von Bearbeitungen, die auf der Nutzerschnittstelle empfangen worden sind, durch Modifizieren der volumenbasierten Darstellung des 3D-Modells bereitstellt. Diese Funktionen werden im Allgemeinen auf einer oder mehreren Rechenvorrichtung(en) durch Durchführen von einem Vorgang oder mehreren Vorgängen unter Verwendung von einem oder mehreren Prozessor(en) zur Ausführung von Algorithmen von einer oder mehrerer Operation(en), die in gespeicherten Anweisungen festgelegt sind, implementiert. Die Operationen von verschiedenen beispielhaften Algorithmen, die zur Durchführung dieser Funktionen eingesetzt werden, sind in den FIGUREN und in dieser Beschreibung dargestellt.
  • Die Funktion des Darstellens des 3D-Modells unter Verwendung sowohl einer volumenbasierten Darstellung als auch einer netzbasierten Darstellung kann mit einer oder mehreren Rechenvorrichtung(en) durchgeführt werden, die verschiedene Algorithmen durch Ausführen von gespeicherten Anweisungen implementiert bzw. implementieren. Die Algorithmen können jedwede der hier beispielhaft offenbarten Techniken sowie Modifizierungen der hier offenbarten Techniken umfassen, so dass bestimmte Umstände einer Implementierung berücksichtigt werden. Die Funktion kann durch Ausführen eines Vorgangs oder mehrerer Vorgänge gemäß dieser Algorithmen durchgeführt werden. Ein beispielhafter Algorithmus zur Darstellung des 3D-Modells unter Verwendung sowohl einer volumenbasierten Darstellung als auch einer netzbasierten Darstellung umfasst das Synchronisieren der verschiedenen Darstellungen miteinander mit einer Triangulation, einer Voxelisierung und/oder einer anderen Umwandlungstechnik. Ein weiterer beispielhafter Algorithmus umfasst das Implementieren aller Veränderungen (z.B. Nutzerbearbeitungen) in den volumenbasierten Darstellungen und das Aktualisieren der Netzdarstellung auf der Basis dieser Veränderungen. Ein weiterer beispielhafter Algorithmus umfasst das Empfangen eines 3D-Modells von einem externen System und dann das Bestimmen der volumenbasierten Darstellung und der netzbasierten Darstellung von dem empfangenen 3D-Modell. Dies kann zuerst das Umwandeln des 3D-Modells in die volumenbasierte Darstellung und dann das Umwandeln der volumenbasierten Darstellung in die netzbasierte Darstellung umfassen. Alternativ kann es zuerst das Umwandeln des 3D-Modells in die netzbasierte Darstellung und dann das Umwandeln der netzbasierten Darstellung in die volumenbasierte Darstellung umfassen. Alternativ kann es das separate Umwandeln des empfangenen 3D-Modells in jede der netzbasierten und der volumenbasierten Darstellung umfassen. Demgemäß können 3D-Modelle, die nicht-netzbasierte und nicht-volumenbasierte Darstellungen nutzen, mit den hier offenbarten Techniken empfangen und bearbeitet werden.
  • Die Funktion des Bereitstellens einer Ansicht des 3D-Modells zum Anzeigen auf einer Nutzerschnittstelle auf der Basis der netzbasierten Darstellung kann mit einer oder mehreren Rechenvorrichtung(en) ausgeführt werden, die verschiedene Algorithmen durch Ausführen von gespeicherten Anweisungen implementiert bzw. implementieren. Die Algorithmen können jedwede der hier offenbarten Techniken sowie Modifizierungen der hier beispielhaft offenbarten Techniken umfassen, um bestimmte Umstände einer Implementierung zu berücksichtigen. Die Funktion kann durch Ausführen eines Vorgangs oder mehrerer Vorgänge gemäß dieser Algorithmen ausgeführt werden. Ein beispielhafter Algorithmus zur Bereitstellung einer Ansicht des 3D-Modells zur Anzeige auf einer Nutzerschnittstelle auf der Basis der netzbasierten Darstellung umfasst das Empfangen der netzbasierten Darstellung, das Bestimmen einer Betrachtungsrichtung relativ zu dem 3D-Modell, das Bestimmen eines Abschnitts der netzbasierten Darstellung zum Anzeigen auf der Basis der Betrachtungsrichtung relativ zu dem 3D-Modell, das Bestimmen von Koordinatenstellen in einem 3D-Raum mittels x, y, z-Koordinaten für Eckpunkte, Oberflächen oder andere Eigenschaften des Abschnitts der netzbasierten Darstellung, und das Anzeigen eines Renderings solcher Eigenschaften. Ein weiterer beispielhafter Algorithmus kann das Erzeugen eines 2D-Renderings des 3D-Modells bei einer gegebenen Betrachtungsrichtung umfassen. Ein weiterer beispielhafter Algorithmus umfasst das Bereitstellen einer 3D-Bearbeitungsschnittstelle, die dem Nutzer die Steuerung einer „Kamera“- oder „Betrachter“-Position relativ zu dem 3D-Modell ermöglicht, um die Betrachtungsrichtung zu steuern. In diesem Beispiel hängt die Ansicht des 3D-Modells, die angezeigt wird, von der Nutzer-spezifizierten Kamera/Betrachter-Position relativ zu dem 3D-Modell ab. Ein weiterer beispielhafter Algorithmus umfasst das Empfangen der netzbasierten Darstellung des 3D-Modells und das Erzeugen einer virtuelle Realität-Schnittstelle, welche die netzbasierte Darstellung in einem 3D-Raum unter Verwendung von x, y, z-Koordinaten für Eckpunkte, Oberflächen oder andere Eigenschaften der netzbasierten Darstellung anordnet. Ein weiterer beispielhafter Algorithmus umfasst die Bestimmung einer Veränderung einer bestehenden Ansicht auf der Basis einer Veränderung der netzbasierten Darstellung. Beispielsweise kann dies das Bestimmen eines Abschnitts der netzbasierten Darstellung, der sich verändert hat, das Bestimmen einer Bearbeitung eines Abschnitt einer angezeigten Ansicht auf der Basis der Veränderung und das Verändern des Abschnitts der Ansicht auf der Basis des Abschnitts der netzbasierten Darstellung, der sich verändert hat, umfassen.
  • Die Funktion des Bearbeitens des 3D-Modells durch Modifizieren der volumenbasierten Darstellung auf der Basis einer Bearbeitung, die von einem Nutzer empfangen worden ist, der mit der Nutzerschnittstelle interagiert, kann mit einer oder mehreren Rechenvorrichtung(en) ausgeführt werden, die verschiedene Algorithmen durch Ausführen von gespeicherten Anweisungen implementiert oder implementieren. Die Algorithmen können jedwede der hier offenbarten Techniken sowie Modifizierungen der hier offenbarten Techniken umfassen, um bestimmte Umstände einer Implementierung zu berücksichtigen. Die Funktion kann durch Ausführen eines Vorgangs oder mehrerer Vorgänge gemäß dieser Algorithmen ausgeführt werden. Ein beispielhafter Algorithmus zum Bearbeiten des 3D-Modells durch Modifizieren der volumenbasierten Darstellung auf der Basis einer Bearbeitung, die von einem Nutzer empfangen wird, der mit der Nutzerschnittstelle interagiert, umfasst das Bestimmen von einer oder mehreren Stelle(n) innerhalb eines 3D-Arbeitsraums, die der Bearbeitung entspricht oder entsprechen, und das Modifizieren der Volumendichtewerte der einen oder der mehreren Stelle(n) auf der Basis der Bearbeitung.
  • Ein weiterer beispielhafter Algorithmus zum Bearbeiten des 3D-Modells durch Modifizieren der volumenbasierten Darstellung umfasst das Identifizieren eines Satzes von Stellen in einem 3D-Arbeitsraum auf der Basis einer Position der Bearbeitung relativ zu der Ansicht des 3D-Modells, das auf der Nutzerschnittstelle angezeigt wird, das Bestimmen eines Typs der Bearbeitung und das Bestimmen einer modifizierten volumenbasierten Darstellung durch Erhöhen oder Vermindern der Volumendichtewerte des zweiten Satzes von Stellen auf der Basis des Typs der Bearbeitung.
  • Ein weiterer beispielhafter Algorithmus zum Bearbeiten des 3D-Modells durch Modifizieren der volumenbasierten Darstellung umfasst das Empfangen einer ersten Eingabe, die eine Stelle auf der Nutzerschnittstelle identifiziert, das Empfangen einer zweiten Eingabe, die einen Filter identifiziert, der auf das 3D-Modell angewandt werden soll, und das Modifizieren der volumenbasierten Darstellung durch Anwenden des Filters auf Volumendichtewerte auf der Basis der Stelle. Ein weiterer beispielhafter Algorithmus umfasst das Empfangen einer Eingabe zum Hinzufügen einer Ebene zu dem 3D-Modell, das Erzeugen einer neuen Ebene zur Darstellung der Dichtewerte in einem neuen 3D-Arbeitsraum und das Hinzufügen der neuen Ebene zu dem Satz von Ebenen. Die Dichtewerte von den Ebenen des Satzes von Ebenen können zur Darstellung des 3D-Modells kombiniert werden.
  • Ein weiterer beispielhafter Algorithmus zum Bearbeiten des 3D-Modells durch Modifizieren der volumenbasierten Darstellung umfasst das Empfangen einer Eingabe zum Bearbeiten des 3D-Modells auf der Basis einer Position eines Pinsels auf der Nutzerschnittstelle, das Identifizieren einer Stelle in einem 3D-Arbeitsraum, die der Position des Pinsels entspricht, und das Modifizieren der Volumendichtewerte an der Stelle. Der Algorithmus kann zusätzlich das Erfassen eines Drucks, der durch eine Eingabevorrichtung an der Position ausgeübt wird und das Modifizieren der Dichtewerte auf der Basis des Drucks umfassen.
  • Ein weiterer beispielhafter Algorithmus zum Bearbeiten des 3D-Modells durch Modifizieren der volumenbasierten Darstellung umfasst das Empfangen einer Eingabe zum Bearbeiten des 3D-Modells auf der Basis eines Strichs eines Pinsels über mehrere Positionen auf der Nutzerschnittstelle, das Identifizieren von Stellen in einem 3D-Arbeitsraum, die den Positionen des Pinsels während des Strichs entsprechen, und das Modifizieren der Volumendichte an den Stellen.
  • Die 4 ist ein Flussdiagramm, das ein beispielhaftes computerimplementiertes Verfahren 400 zum Erzeugen oder Bearbeiten eines dreidimensionalen Modells zeigt. Das beispielhafte Verfahren 400 wird durch einen oder mehrere Prozessor(en) von einer oder mehreren Rechenvorrichtung(en) ausgeführt, wie z.B. den Rechenvorrichtungen der 1 oder 10. Das Verfahren 400 kann durch einen Prozessor implementiert werden, der Anweisungen ausführt, die in einem nicht-flüchtigen computerlesbaren Medium gespeichert sind.
  • Das Verfahren 400 umfasst das Darstellen einer ersten Darstellung eines 3D-Modells als volumenbasierte Darstellung, wie es im Block 411 gezeigt ist. Wie hier verwendet nimmt die Beschreibung z.B. auf eine „erste“ und eine „zweite“ Darstellung Bezug, um den 3D-Arbeitsraum vor einer Bearbeitung bzw. nach einer Bearbeitung zu diskutieren. Es sollte beachtet werden, dass eine große Zahl von Iterationen stattfinden wird und dass die Nomenklatur nur spezifische Fälle und Zustände vor und nach spezifischen, jedoch gegebenenfalls sich fortsetzenden, Bearbeitungen darstellen soll. Die erste volumenbasierte Darstellung identifiziert Volumendichten des 3D-Modells an mehreren Stellen in einem 3D-Arbeitsraum. In einem Beispiel ist die erste volumenbasierte Darstellung eines 3D-Modells als Stapel von Querschnitten durch den 3D-Arbeitsraum angeordnet. Jeder Punkt innerhalb jedes Querschnitts stellt einen Dichtewert des 3D-Modells an diesem Punkt dar. Wie es hier diskutiert wird, werden diese Dichtewerte zum Bestimmen einer Oberfläche des 3D-Modells verwendet, z.B. wenn die Oberfläche alle Dichtewerte oberhalb eines vorgegebenen oder durch den Nutzer festgelegten Schwellenwerts umgibt.
  • Das Verfahren 400 umfasst ferner das Bestimmen einer ersten netzbasierten Darstellung des 3D-Modells auf der Basis der ersten volumenbasierten Darstellung, wie es im Block 412 gezeigt ist. Die netzbasierte Darstellung des 3D-Modells kann durch einen Algorithmus bestimmt werden, der mit der ersten volumenbasierten Darstellung ausgeführt wird. Ausführungsformen der Erfindung, einschließlich, jedoch nicht beschränkt auf, das Verfahren 400, können einen solchen Algorithmus nutzen, der als „Marching Cubes“ bekannt ist und der Dichtewerte zum Identifizieren von Oberflächen des 3D-Modells und zum Erzeugen von geometrischen Formen verwendet, welche die Oberfläche abbilden. Das Verfahren identifiziert ein Netz, das einen Satz von Stellen innerhalb des 3D-Arbeitsraums umgibt, die Volumendichtewerte oberhalb oder unterhalb eines Schwellenwerts aufweisen, wobei davon ausgegangen wird, dass die Schwellenwertgrenzfläche die Oberfläche des 3D-Modells identifiziert. Beispielsweise können Werte oberhalb des Schwellenwerts so identifiziert werden, dass sie in das 3D-Modell einbezogen sind, und Werte unterhalb können so identifiziert werden, dass sie aus dem 3D-Modell ausgeschlossen sind. Das Verfahren 400 kann den Algorithmus auf den gesamten volumenbasierten 3D-Arbeitsraum anwenden oder die Anwendung des Algorithmus auf einen bekannten bearbeiteten Bereich des volumenbasierten 3D-Modells begrenzen, um die Effizienz und die Rendergeschwindigkeit zu verbessern.
  • Das Verfahren 400 umfasst ferner das Bereitstellen einer ersten Ansicht der ersten netzbasierten Darstellung des 3D-Modells zum Anzeigen z.B. auf einer Nutzerschnittstelle, wie es im Block 413 dargestellt ist. In Ausführungsformen empfangen das System und das Verfahren entsprechende Anweisungen von einem Nutzer, die ein Zoom; „Pan“ links, rechts oder aus; Drehen um eine Achse, Variieren der Transparenz und dergleichen umfassen können.
  • Das Verfahren 400 umfasst ferner das Empfangen einer Bearbeitung für das 3D-Modell, wie es im Block 414 gezeigt ist. Beispielsweise kann ein Nutzer computerimplementierte Bearbeitungswerkzeuge zum Interagieren mit der angezeigten 3D-Darstellung nutzen und gewünschte Bearbeitungen anzeigen, die durch das Verfahren empfangen werden. Typischerweise wird die Bearbeitung eine Eingabe, die eine Stelle identifiziert, und Werkzeugdaten umfassen, die auf das 3D-Modell angewandt werden sollen. Als spezifisches Beispiel kann ein Nutzer einen Pinsel, der als Zeichenwerkzeug mit einer ausgewählten Spitzenform und -größe konfiguriert ist, innerhalb des 3D-Arbeitsraums anordnen. Der Nutzer kann das Werkzeug in einer Richtung bewegen oder „ziehen“, welche die gewünschte Bearbeitung angibt, wobei es sich in diesem Beispiel um das Hinzufügen oder Erzeugen eines 3D-Modells an der Stelle und an Stellen entlang der Richtung der Werkzeugbewegung handelt.
  • Als weiteres Beispiel kann ein Nutzer ein gewünschtes Werkzeug, wie z.B. „Malen“ oder „Löschen“, auswählen und gewünschte Bearbeitungsstellen auf einer berührungsbasierten Nutzerschnittstelle mit einem Finger, mehreren Fingern, einem Stift oder dergleichen angeben. In Fällen, bei denen Bearbeitungen auf einer berührungsbasierten Nutzerschnittstelle empfangen werden, kann das Verfahren ferner eine Angabe des Drucks empfangen, der auf die Schnittstelle ausgeübt wird und den 3D-Bereich des Anwendens der Bearbeitung für Fälle eines erhöhten Drucks vergrößern, und den 3D-Bereich des Anwendens der Bearbeitung für Fälle eines verminderten Drucks vermindern.
  • Zusätzlich wird, da die empfangene Bearbeitung nicht auf spezifische Eckpunkte in der netzbasierten Darstellung angewandt wird, die Bearbeitung selbst dann implementiert, wenn die Bearbeitungsstelle auf der Nutzerschnittstelle nicht genau einem Oberflächenmerkmal der netzbasierten Darstellung des 3D-Modells entspricht.
  • Das Empfangen der Bearbeitung für das 3D-Modell umfasst auch das Empfangen von Daten bezüglich spezifischer gewünschter Bearbeitungswerkzeuge. Beispielsweise kann die Bearbeitung Daten, die eine Stelle identifizieren, und Werkzeugdaten umfassen, die auf das 3D-Modell angewandt werden sollen. Ein Nutzer kann Bereiche auswählen, auf die ein Filter, eine Auswahlmaske oder eine separate 3D-Ebene zum Bearbeiten angewandt werden sollen. In dem Fall eines Pinselwerkzeugs kann die Bearbeitung die Form und den 3D-Radius, auf welche die Bearbeitung angewandt werden soll, umfassen.
  • Das Verfahren 400 umfasst ferner das Modifizieren der ersten Darstellung auf der Basis der Bearbeitung zum Erzeugen einer zweiten volumenbasierten Darstellung des 3D-Modells, wie es im Block 415 gezeigt ist. Das Modifizieren der ersten volumenbasierten Darstellung umfasst das Modifizieren der Volumendichten, die das 3D-Modell darstellen. Beispielsweise wenn der Nutzer das Zeichenwerkzeug in dem 3D-Arbeitsraum zieht, der auf der Nutzerschnittstelle darstellt ist, modifiziert das Verfahren den separaten, volumenbasierten 3D-Arbeitsraum, so dass die Volumendichten an der Stelle und entlang der Richtung der Werkzeugbewegung in diesen 2D-Querschnitten erhöht wird, wodurch dem 3D-Modell etwas hinzugefügt wird oder dieses erzeugt wird. Mit anderen Worten, auf der Basis der Werkzeugeigenschaften und der Stelle auf der Nutzerschnittstelle wird die Volumendichte an entsprechenden Stellen in der volumenbasierten Darstellung des 3D-Arbeitsraums erhöht.
  • Das Verfahren 400 wiederholt dann rekursiv die Schritte, bis die Bearbeitung abgeschlossen ist.
  • Die 5, 6 und 7 sind Bildschirmphotos, welche die Verwendung einer Ausführungsform eines Systems und eines Verfahrens zum Bearbeiten eines dreidimensionalen 3D-Modells 501 zeigen. Die Figuren zeigen eine Nutzerschnittstelle 500, die ein 3D-Modell 501 anzeigt. Ein Nutzer wählt einen Bearbeitungsmodus, hier z.B. einen Zeichenpinsel, der durch ein Zeigemerkmal 502 angegeben ist. Unter Bezugnahme auf die 5 ordnet der Nutzer das Zeigemerkmal 502 an einer gewünschten Stelle an und beginnt mit der Bearbeitung, hier einem Zeichnen, durch Bewegen des Zeigemerkmals 502 nach oben und rechts relativ zu der Nutzerschnittstelle 500. Während der Nutzer das Zeigemerkmal 502 relativ zu dem 3D-Modell 501 innerhalb des 3D-Arbeitsraums bewegt, verfolgt das System die Stelle und wendet die Bearbeitungen auf die Volumendichten an entsprechenden Stellen innerhalb der volumenbasierten Darstellung an, und zwar anstatt eines direkten Interagierens mit der Oberfläche des Netzes. Das bearbeitete 3D-Modell 501' ist in der 6 gezeigt und das Zeigemerkmal 502 bewegt sich nun weiter in einer Schleife nach unten und links relativ zu der Nutzerschnittstelle 500, wenn das System rekursiv die Stelle in der netzbasierten Darstellung des 3D-Arbeitsraums verfolgt und die Bearbeitungen in der volumenbasierten Darstellung des 3D-Arbeitsraums anwendet. Das anschließend bearbeitete Modell 501" ist in der 7 dargestellt. Die Bildschirmphotos wurden so ausgewählt, dass sie eine Ausführungsform der Offenbarung zeigen.
  • Wenn sich das Zeigemerkmal 502 über die Nutzerschnittstelle bewegt, werden Dichtewerte von betroffenen Stellen in den 2D-Querschnitten bearbeitet, welche die volumenbasierte Darstellung umfassen. Die neu bearbeitete volumenbasierte Darstellung wird dann zum Erzeugen einer neu bearbeiteten Netzdarstellung zum Anzeigen des 3D-Modells in Echtzeit oder nahezu in Echtzeit auf der Nutzerschnittstelle verwendet. Selbstverständlich können andere Werkzeuge für andere Merkmale verwendet werden, einschließlich, jedoch nicht beschränkt auf, „Löschen“, „Schaben“ und „Verzerren“ eines Bereichs des Modells, der durch das Zeigemerkmal angegeben ist.
  • Die 8 und 9 zeigen den Zustand vor und nach Bildschirmphotos einer Ausführungsform eines Systems und eines Verfahrens zum Bearbeiten eines dreidimensionalen 3D-Modells 801. Unter Bezugnahme auf die 8 wählt ein Nutzer ein Werkzeug und einen Bearbeitungsmodus aus, wie z.B. einen Löschpinsel, der auf einer berührungsbasierten Schnittstelle implementiert ist, obwohl stattdessen eine VR-Schnittstelle verwendet werden könnte. Der Nutzer übt einen Druck auf die Schnittstelle an einer gewünschten Stelle aus und beginnt mit der Bearbeitung. In diesem Beispiel löscht der Nutzer durch Bewegen eines Fingers oder eines Stifts über den Körperbereich, der entfernt werden soll, wobei ein erhöhter Druck den bearbeiteten Bereich innerhalb des Volumens erweitert und ein verminderter Druck den bearbeiteten Bereich innerhalb des Volumens vermindert. Entsprechend werden, wenn der Nutzer eine Bewegung über die Nutzerschnittstelle ausführt, Bearbeitungen der Dichtewerte der betroffenen Stellen in den 2D-Querschnitten durchgeführt, welche die volumenbasierte Darstellung umfassen. Die neu bearbeitete volumenbasierte Darstellung wird dann zum Erzeugen einer neu bearbeiteten netzbasierten Darstellung zum Anzeigen des 3D-Modells in Echtzeit oder nahezu Echtzeit auf der Nutzerschnittstelle 800 verwendet. Zusätzlich kann das System aus Gründen der Zweckmäßigkeit dem Nutzer ermöglichen, das 3D-Modell während einer Bearbeitung entlang jedweder Achse selektiv zu drehen. Das bearbeitete 3D-Modell 801' ist in der 9 gezeigt.
  • Jedwedes geeignete Rechensystem oder jedwede geeignete Gruppe von Rechensystemen kann zum Implementieren der hier offenbarten Techniken und Verfahren verwendet werden. Beispielsweise ist die 10 ein Blockdiagramm, das eine beispielhafte Implementierung solcher Komponenten zeigt. Eine Rechenvorrichtung 1010 kann einen Prozessor 1011 umfassen, der kommunikativ mit einem Speicher 1012 gekoppelt ist und der einen computerausführbaren Programmcode ausführt und/oder einen Zugang zu Informationen schafft, die in dem Speicher 1012 gespeichert sind. Der Prozessor 1011 kann einen Mikroprozessor, eine anwendungsspezifische integrierte Schaltung („ASIC“), eine Zustandsmaschine oder eine andere Verarbeitungsvorrichtung umfassen. Der Prozessor 1011 kann eine Verarbeitungsvorrichtung oder mehr als eine Verarbeitungsvorrichtung umfassen. Ein solcher Prozessor kann ein computerlesbares Medium umfassen oder damit in Verbindung stehen, einschließlich, jedoch nicht beschränkt auf, den Speicher 1012, der Anweisungen speichert, die, wenn sie durch den Prozessor 1011 ausgeführt werden, bewirken, dass der Prozessor die hier beschriebenen Vorgänge ausführt.
  • Der Speicher 1012 kann jedwedes geeignete nicht-flüchtige computerlesbare Medium umfassen. Das computerlesbare Medium kann jedwede elektronische, optische, magnetische oder andere Speichervorrichtung umfassen, die für einen Prozessor computerlesbare Anweisungen oder einen anderen Programmcode bereitstellen kann. Nicht-beschränkende Beispiele für ein computerlesbares Medium umfassen eine Magnetscheibe, einen Speicherchip, einen ROM, einen RAM, eine ASIC, einen konfigurierten Prozessor, einen optischen Speicher, ein Magnetband oder einen anderen Magnetspeicher oder jedwedes andere Medium, von dem ein Computerprozessor Anweisungen lesen kann. Die Anweisungen können prozessorspezifische Anweisungen umfassen, die durch einen Compiler und/oder einen Interpreter aus einem Code erzeugt werden, der in jedweder geeigneten Computerprogrammiersprache geschrieben ist, einschließlich z.B. C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript und ActionScript.
  • Die Rechenvorrichtung 1010 führt einen Programmcode aus, der den Prozessor 1011 so konfiguriert, dass er eine oder mehrere der vorstehend beschriebenen Operationen ausführt. Insbesondere und ohne Beschränkung kann der Programmcode einen Code zum Konfigurieren des Prozessors als Netzmodul 1013, ein Voxelisierungsmodul 1014 und ein Bearbeitungsmodul 1015 umfassen. Der Programmcode kann in dem Speicher 1012 oder jedwedem computerlesbaren Medium vorliegen und kann durch den Prozessor 1011 oder jedweden anderen geeigneten Prozessor ausgeführt werden. In einigen Ausführungsformen können Module in dem Speicher 1012 vorliegen. In zusätzlichen oder alternativen Ausführungsformen kann ein Modul oder können mehrere Module in einem Speicher vorliegen, der mittels eines Datennetzwerks zugänglich ist, wie z.B. einem Speicher, der für einen Clouddienst zugänglich ist.
  • Die Rechenvorrichtung 1010 kann auch eine Anzahl von externen oder internen Vorrichtungen, wie z.B. Eingabe- oder Ausgabevorrichtungen, umfassen. Beispielsweise ist die Rechenvorrichtung mit einer Eingabe/Ausgabe („I/O“)-Schnittstelle 1016 gezeigt, die eine Eingabe von Eingabevorrichtungen empfangen kann oder eine Ausgabe zu Ausgabevorrichtungen ausgeben kann. Die I/O-Schnittstelle 1016 kann jedwede Vorrichtung oder Gruppe von Vorrichtungen umfassen, die zum Erstellen einer drahtgebundenen oder drahtlosen Datenverbindung mit einem oder mehreren Datennetzwerk(en) geeignet ist. Nicht-beschränkende Beispiele für die Schnittstelle 1016 umfassen einen Ethernet-Netzwerkadapter, ein Modem und/oder dergleichen. Die Rechenvorrichtung 1010 kann Nachrichten als elektronische oder optische Signale mittels der Schnittstelle 1016 übertragen. Ein Bus 1017 kann auch einbezogen werden, um eine oder mehrere Komponente(n) der Rechenvorrichtung 1010 kommunikativ zu koppeln.
  • In einer Ausführungsform speichert der Prozessor 1011 eine volumenbasierte Darstellung eines 3D-Modells in einer 3D-Volumendatenstruktur 1018. Das Netzmodul 1013 bestimmt dann eine netzbasierte Darstellung des 3D-Modells, die in der 3D-Netzdatenstruktur 1019 gespeichert wird. Der Prozessor 1011 stellt die netzbasierte Darstellung durch die I/O-Schnittstelle 1016 zum Anzeigen auf einer Nutzerschnittstelle (nicht gezeigt) für eine Anzeige (nicht gezeigt) bereit. Ein Nutzer interagiert mit Bearbeitungswerkzeugen und dem angezeigten 3D-Modell und der Prozessor implementiert die Bearbeitungen der 3D-Volumendarstellung, die in der Datenstruktur 1018 gespeichert ist. Der Prozessor 1011 bewirkt, dass das Netzmodul 1013 eine neue netzbasierte Darstellung des 3D-Modells, welche die Bearbeitungen umfasst, bestimmt, die durch die I/O-Schnittstelle 1016 für die Anzeige (nicht gezeigt) bereitgestellt wird.
  • Hier sind zahlreiche spezifische Details angegeben, um ein gründliches Verständnis des beanspruchten Gegenstands zu ermöglichen. Dem Fachmann ist jedoch klar, dass der beanspruchte Gegenstand ohne diese spezifischen Details durchgeführt werden kann. In anderen Fällen wurden Verfahren, Vorrichtungen oder Systeme, die dem Fachmann bekannt sind, nicht im Detail beschrieben, so dass der beanspruchte Gegenstand nicht unklar wird.
  • Falls spezifisch nichts anderes angegeben ist, sollte beachtet werden, dass sich in dieser Beschreibung Diskussionen, bei denen Begriffe wie z.B. „Verarbeiten“, „Berechnen“, „Bestimmen“ und „Identifizieren“ oder dergleichen verwendet werden, auf Aktionen oder Vorgänge einer Rechenvorrichtung beziehen, wie z.B. einen oder mehrere Computer oder eine ähnliche elektronische Rechenvorrichtung oder -vorrichtungen, die Daten, die als physikalische elektronische oder magnetische Quantitäten innerhalb von Speichern, Registern oder anderen Informationsspeichervorrichtungen, -übertragungsvorrichtungen oder -anzeigevorrichtungen der Rechenplattform vorliegen, verarbeiten oder umwandeln.
  • Das System oder die Systeme, das oder die hier diskutiert wird oder werden, ist oder sind nicht auf irgendeine spezielle Hardwarearchitektur oder-konfiguration beschränkt. Eine Rechenvorrichtung kann jedwede geeignete Anordnung von Komponenten umfassen, die ein Ergebnis bereitstellt, das auf eine oder mehrere Eingabe(n) konditioniert ist. Geeignete Rechenvorrichtungen umfassen Mehrzweck-Computersysteme auf Mikroprozessorbasis, die einen Zugang zu einer gespeicherten Software haben, die das Rechensystem von einer Allzweck-Rechenvorrichtung zu einer spezialisierten Rechenvorrichtung konfiguriert, die eine oder mehrere Ausführungsform(en) des vorliegenden Gegenstands implementiert. Jedwedes geeignete Programmieren, Skripting oder ein anderer Typ von Sprache oder Kombinationen von Sprachen können zum Implementieren der hier enthaltenen Lehren in Software verwendet werden, die bei der Programmierung oder Konfiguration einer Rechenvorrichtung verwendet wird.
  • Ausführungsformen der hier offenbarten Verfahren können beim Betrieb solcher Rechenvorrichtungen ausgeführt werden. Die Reihenfolge der Blöcke, die in den vorstehend genannten Beispielen dargestellt sind, können variiert werden - beispielsweise können Blöcke umgeordnet, kombiniert und/oder in Teilblöcke aufgeteilt werden. Bestimmte Blöcke oder Prozesse können parallel ausgeführt werden.
  • Die Verwendung von „angepasst zum“ oder „konfiguriert zum“ ist hier als offene und einschließliche Sprache aufzufassen, die keine Vorrichtungen ausschließt, die zum Ausführen von zusätzlichen Aufgaben oder Schritten angepasst oder konfiguriert sind. Zusätzlich ist die Verwendung von „basierend auf” dahingehend als offen und einschließlich aufzufassen, dass ein Verfahren, ein Schritt, eine Berechnung oder eine andere Aktion „basierend auf” einer oder mehreren angegebenen Bedingung(en) oder einem oder mehreren angegebenen Wert(en) in der Praxis auf zusätzlichen Bedingungen oder Werten zusätzliche zu den angegebenen Bedingungen oder Werten basieren kann. Überschriften, Listen und eine Nummerierung, die hier angegeben sind, dienen lediglich einer einfacheren Erläuterung und sind nicht beschränkend aufzufassen.
  • Während der vorliegende Gegenstand unter Bezugnahme auf spezifische Ausführungsformen davon detailliert beschrieben worden ist, ist es klar, dass ein Fachmann, wenn er ein Verständnis des Vorstehenden erlangt hat, für solche Ausführungsformen einfach Veränderungen, Variationen und Äquivalente erzeugen kann. Demgemäß sollte beachtet werden, dass die vorliegende Offenbarung als Beispiel dargestellt wurde und nicht beschränkend aufzufassen ist, und keinerlei Einbeziehen solcher Modifizierungen, Variationen und/oder Hinzufügungen des vorliegenden Gegenstands, wie sie für den Fachmann leicht ersichtlich sind, ausschließt.

Claims (20)

  1. Verfahren zum Bearbeiten eines dreidimensionalen (3D) Modells, das durch eine Rechenvorrichtung ausgeführt wird, wobei das Verfahren umfasst: Darstellen des 3D-Modells mittels einer ersten volumenbasierten Darstellung; Bestimmen einer ersten netzbasierten Darstellung des 3D-Modells aus der volumenbasierten Darstellung; Bereitstellen einer ersten Ansicht der ersten netzbasierten Darstellung des 3D-Modells zum Anzeigen auf einer Nutzerschnittstelle; Empfangen einer Bearbeitung für das 3D-Modell aus einer Nutzerinteraktion mit der Nutzerschnittstelle; Modifizieren der ersten volumenbasierten Darstellung auf der Basis der Bearbeitung zum Erzeugen einer zweiten volumenbasierten Darstellung des 3D-Modells; Bestimmen einer zweiten netzbasierten Darstellung des 3D-Modells auf der Basis der zweiten volumenbasierten Darstellung; und Bereitstellen einer zweiten Ansicht der zweiten netzbasierten Darstellung des 3D-Modells zum Anzeigen auf der Nutzerschnittstelle.
  2. Verfahren nach Anspruch 1, bei dem die Darstellung des 3D-Modells mittels der ersten volumenbasierten Darstellung das Darstellen des 3D-Modells mittels Volumendichtewerten von Stellen innerhalb eines 3D-Arbeitsraums umfasst, wobei das 3D-Modell durch einen Satz der Stellen mit Volumendichtewerten oberhalb eines Schwellenwerts dargestellt wird.
  3. Verfahren nach Anspruch 2, bei dem das Modifizieren der ersten volumenbasierten Darstellung das Modifizieren der Volumendichtewerte von Stellen innerhalb des 3D-Arbeitsraums auf der Basis der Bearbeitung umfasst.
  4. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Darstellen des 3D-Modells mittels der ersten netzbasierten Darstellung das Darstellen einer Oberfläche des 3D-Modells mittels einer Mehrzahl von verbundenen Vieleckoberflächen umfasst.
  5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Darstellen des 3D-Modells mittels der ersten netzbasierten Darstellung das Identifizieren eines Netzes umfasst, das den Satz von Stellen innerhalb des 3D-Arbeitsraums mit Volumendichtewerten oberhalb des Schwellenwerts in der ersten volumenbasierten Darstellung umgibt.
  6. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Modifizieren der ersten volumenbasierten Darstellung umfasst: Identifizieren eines Satzes von Stellen in einem 3D-Arbeitsraum auf der Basis einer Position der Bearbeitung relativ zu der Ansicht des 3D-Modells, das auf der Nutzerschnittstelle angezeigt wird; Bestimmen eines Typs der Bearbeitung; und Bestimmen der zweiten volumenbasierten Darstellung durch Erhöhen oder Vermindern von Volumendichtewerten des zweiten Satzes von Stellen in der ersten volumenbasierten Darstellung auf der Basis des Typs der Bearbeitung.
  7. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Bestimmen der zweiten netzbasierten Darstellung das Bestimmen der zweiten netzbasierten Darstellung auf der Basis der zweiten volumenbasierten Darstellung mittels eines Triangulationsverfahrens umfasst.
  8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Schritt zum Bearbeiten des 3D-Modells das Modifizieren einer Mehrzahl von parallelen, planaren Querschnitten eines 3D-Arbeitsraums umfasst, wobei die Querschnitte 2-dimensionale (2D) Grauskaladarstellungen von Volumendichtewerten des 3D-Modells umfassen.
  9. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Empfangen der Bearbeitung für das 3D-Modell das Empfangen einer Eingabe umfasst, die eine Stelle auf der Nutzerschnittstelle identifiziert, die sich nicht auf einem Eckpunkt oder einer Oberfläche der ersten netzbasierten Darstellung des 3D-Modells befindet.
  10. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Empfangen der Bearbeitung für das 3D-Modell das Empfangen einer ersten Eingabe, die eine Stelle auf der Nutzerschnittstelle identifiziert, und das Empfangen einer zweiten Eingabe umfasst, die einen Filter identifiziert, der auf das 3D-Modell angewandt werden soll; und bei dem das Modifizieren der ersten volumenbasierten Darstellung das Modifizieren der ersten volumenbasierten Darstellung durch Anwenden des Filters auf Volumendichtewerte auf der Basis der Stelle umfasst.
  11. Verfahren nach Anspruch 10, bei dem das Empfangen der ersten Eingabe, welche die Stelle identifiziert, das Empfangen einer Auswahl einer Auswahlmaske umfasst, welche die Stelle identifiziert.
  12. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Empfangen der Eingabe für das 3D-Modell das Empfangen einer Eingabe zum Hinzufügen einer Ebene zu dem 3D-Modell umfasst, wobei die erste volumenbasierte Darstellung das 3D-Modell durch Festlegen von Dichtewerten für das 3D-Modell mittels eines Satzes von einer oder mehreren Ebene(n) darstellt, wobei jede der einen oder der mehreren Ebene(n) separat Dichtewerte für Stellen in einem separaten 3D-Arbeitsraum darstellt; und wobei das Modifizieren der ersten volumenbasierten Darstellung umfasst: Erzeugen einer neuen Ebene zum Darstellen von Dichtewerten in einem neuen 3D-Arbeitsraum; Hinzufügen der neuen Ebene zu dem Satz von Ebenen; und Kombinieren von Dichtewerten von Ebenen des Satzes von Ebenen zum Darstellen des 3D-Modells.
  13. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Empfangen der Eingabe für das 3D-Modell das Empfangen einer Eingabe zum Bearbeiten des 3D-Modells auf der Basis einer Position eines Pinsels auf der Nutzerschnittstelle umfasst; und wobei das Modifizieren der ersten volumenbasierten Darstellung umfasst: Identifizieren einer Stelle in einem 3D-Arbeitsraum, die der Position des Pinsels entspricht; Erfassen eines Drucks, der durch eine Eingabevorrichtung an der Position ausgeübt wird; und Modifizieren von Volumendichtewerten an der Stelle auf der Basis des erfassten Drucks.
  14. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Empfangen der Eingabe für das 3D-Modell das Empfangen einer Eingabe zum Bearbeiten des 3D-Modells auf der Basis eines Pinselstrichs durch eine Mehrzahl von Positionen auf der Nutzerschnittstelle umfasst; und wobei das Modifizieren der ersten volumenbasierten Darstellung umfasst: Identifizieren von Stellen in einem 3D-Arbeitsraum, die den Positionen des Pinsels während des Strichs entsprechen; Modifizieren von Volumendichtewerten an den Stellen.
  15. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Empfangen der Bearbeitung für das 3D-Modell das Empfangen der Bearbeitung von einer berührungsbasierten Schnittstelle oder mittels einer virtuelle Realität (VR)-Schnittstelle umfasst.
  16. Computerbasiertes System zum Bearbeiten eines dreidimensionalen (3D) Modells, wobei das System umfasst: eine Einrichtung zum Darstellen des 3D-Modells mittels einer volumenbasierten Darstellung; eine Einrichtung zum Darstellen des 3D-Modells mittels einer netzbasierten Darstellung; eine Einrichtung zum Bereitstellen einer Ansicht des 3D-Modells zum Anzeigen auf einer Nutzerschnittstelle auf der Basis der netzbasierten Darstellung; und eine Einrichtung zum Bearbeiten des 3D-Modells durch Modifizieren der volumenbasierten Darstellung auf der Basis einer Bearbeitung, die von einem Nutzer empfangen worden ist, der mit der Nutzerschnittstelle interagiert.
  17. Computerbasiertes System nach Anspruch 16, bei dem die Einrichtung zum Bearbeiten des 3D-Modells eine Einrichtung zum Erhöhen oder Vermindern der Volumendichtewerte eines Satzes von Stellen in der volumenbasierten Darstellung umfasst.
  18. Nicht-flüchtiges computerlesbares Medium, das Anweisungen umfasst, die bewirken, dass eine Rechenvorrichtung Operationen durchführt, die umfassen: Darstellen eines 3D-Modells mittels einer volumenbasierten Darstellung und einer netzbasierten Darstellung; Anzeigen des 3D-Modells auf einer Nutzerschnittstelle auf der Basis der netzbasierten Darstellung; und Bearbeiten des 3D-Modells auf der Basis von Bearbeitungen, die von einem Nutzer empfangen worden sind, der mit der Nutzerschnittstelle interagiert, durch Modifizieren der volumenbasierten Darstellung des 3D-Modells.
  19. Nicht-flüchtiges computerlesbares Medium nach Anspruch 18, bei dem die Darstellung des 3D-Modells mittels der volumenbasierten Darstellung und der netzbasierten Darstellung das Bestimmen der netzbasierten Darstellung durch Identifizieren eines Netzes umfasst, das Stellen innerhalb des 3D-Arbeitsraums mit Volumendichtewerten oberhalb eines Schwellenwerts in der volumenbasierten Darstellung umgibt.
  20. Nicht-flüchtiges computerlesbares Medium nach Anspruch 18 oder 19, bei dem das Bearbeiten des 3D-Modells umfasst: Identifizieren eines Satzes von Stellen in einem 3D-Arbeitsraum auf der Basis einer Position der Bearbeitung relativ zu der Ansicht des 3D-Modells, das auf der Nutzerschnittstelle angezeigt wird; Bestimmen eines Typs der Bearbeitung; Bestimmen einer modifizierten volumenbasierten Darstellung durch Erhöhen oder Vermindern von Volumendichtewerten des zweiten Satzes von Stellen auf der Basis des Typs der Bearbeitung; und Bestimmen einer modifizierten netzbasierten Darstellung auf der Basis der modifizierten volumenbasierten Darstellung.
DE102017007967.6A 2016-10-25 2017-08-23 Verarbeiten und rendern eines dreidimensionalen Modells Pending DE102017007967A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/334,223 2016-10-25
US15/334,223 US20180114368A1 (en) 2016-10-25 2016-10-25 Three-dimensional model manipulation and rendering

Publications (1)

Publication Number Publication Date
DE102017007967A1 true DE102017007967A1 (de) 2018-04-26

Family

ID=60037320

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017007967.6A Pending DE102017007967A1 (de) 2016-10-25 2017-08-23 Verarbeiten und rendern eines dreidimensionalen Modells

Country Status (5)

Country Link
US (1) US20180114368A1 (de)
CN (1) CN107978020A (de)
AU (1) AU2017213540B2 (de)
DE (1) DE102017007967A1 (de)
GB (1) GB2555698B (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10338811B2 (en) * 2015-08-06 2019-07-02 Atomic Shapes Oy User interface for three-dimensional modelling
US10977858B2 (en) 2017-03-30 2021-04-13 Magic Leap, Inc. Centralized rendering
CA3058421A1 (en) * 2017-03-30 2018-10-04 Magic Leap, Inc. Centralized rendering
JP6969157B2 (ja) * 2017-05-24 2021-11-24 富士フイルムビジネスイノベーション株式会社 三次元形状データの編集装置、及び三次元形状データの編集プログラム
US10838400B2 (en) * 2018-06-20 2020-11-17 Autodesk, Inc. Toolpath generation by demonstration for computer aided manufacturing
US11049289B2 (en) * 2019-01-10 2021-06-29 General Electric Company Systems and methods to semi-automatically segment a 3D medical image using a real-time edge-aware brush
CN110378063B (zh) * 2019-07-26 2023-07-14 腾讯科技(深圳)有限公司 基于智慧建筑空间的设备部署方法、装置、以及电子设备
US11315315B2 (en) * 2019-08-23 2022-04-26 Adobe Inc. Modifying three-dimensional representations using digital brush tools
US11373370B1 (en) * 2019-10-15 2022-06-28 Bentley Systems, Incorporated Techniques for utilizing an artificial intelligence-generated tin in generation of a final 3D design model
KR20230135069A (ko) * 2020-12-18 2023-09-22 스트롱 포스 브이씨엔 포트폴리오 2019, 엘엘씨 밸류 체인 네트워크를 위한 로봇 플릿 관리 및 적층제조
CN114022601A (zh) * 2021-11-04 2022-02-08 北京字节跳动网络技术有限公司 一种体积元素渲染方法、装置及设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6552722B1 (en) * 1998-07-17 2003-04-22 Sensable Technologies, Inc. Systems and methods for sculpting virtual objects in a haptic virtual reality environment
US6958752B2 (en) * 2001-01-08 2005-10-25 Sensable Technologies, Inc. Systems and methods for three-dimensional modeling
US7098912B1 (en) * 2002-06-24 2006-08-29 Sandia Corporation Method of modifying a volume mesh using sheet insertion
US20080218512A1 (en) * 2007-02-20 2008-09-11 Ofer Alon System and method for interactive masking and modifying of 3d objects
US20100013833A1 (en) * 2008-04-14 2010-01-21 Mallikarjuna Gandikota System and method for modifying features in a solid model
US8345044B2 (en) * 2009-06-17 2013-01-01 Disney Enterprises, Inc. Indirect binding with segmented thin layers to provide shape-preserving deformations in computer animation
US8731876B2 (en) * 2009-08-21 2014-05-20 Adobe Systems Incorporated Creating editable feature curves for a multi-dimensional model
US10008036B2 (en) * 2012-12-10 2018-06-26 Ansys, Inc. System and method for generating a mesh
US9589344B2 (en) * 2012-12-28 2017-03-07 Hitachi, Ltd. Volume data analysis system and method therefor
US9619913B2 (en) * 2013-06-03 2017-04-11 Microsoft Technology Licensing, Llc. Animation editing
KR101829334B1 (ko) * 2016-05-31 2018-02-19 주식회사 코어라인소프트 3차원 볼륨 상에서 3차원 메쉬 편집이 가능한 사용자 인터페이스를 제공하는 의료 영상을 디스플레이하는 시스템 및 방법
US10957117B2 (en) * 2018-10-15 2021-03-23 Adobe Inc. Intuitive editing of three-dimensional models

Also Published As

Publication number Publication date
CN107978020A (zh) 2018-05-01
AU2017213540A1 (en) 2018-05-10
GB201713601D0 (en) 2017-10-11
GB2555698A (en) 2018-05-09
AU2017213540B2 (en) 2022-01-27
GB2555698B (en) 2019-06-19
US20180114368A1 (en) 2018-04-26

Similar Documents

Publication Publication Date Title
DE102017007967A1 (de) Verarbeiten und rendern eines dreidimensionalen Modells
DE112012001984B4 (de) Integrieren von Video-Metadaten in 3D-Modelle
DE69817168T2 (de) Interaktive zeitspannenanzeige
DE60008397T2 (de) Benutzer emulation für datenaustausch beim rechnergestützten entwurf
DE60026197T2 (de) Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung
DE60019516T2 (de) Programmierbarer Aufbau zur Visualisierung von Abtastdaten und geometrischen Daten
DE102019008168A1 (de) Dynamisches Schätzen von Beleuchtungsparametern für Positionen innerhalb realitätserweiterter Szenen unter Nutzung eines neuronalen Netzwerkes
DE102018007941A1 (de) Generieren eines Dreiecksnetzes für ein Bild, das durch Kurven dargestellt wird
DE69924699T2 (de) Verfahren zur Schaffung von als Oberflächenelemente dargestellten grafischen Objekten
DE102009007334A1 (de) Front-End für universelles Rendering Framework
DE102017011422A1 (de) Strichvorgangvorhersage für einen dreidimensionalen digitalen Inhalt
DE102018005610A1 (de) Diffusionsfärben unter Verwendung von gewichteten Farbpunkten
DE102018001136A1 (de) Interaktive Farbpalettenschnittstelle zum digitalen Malen
DE69924230T2 (de) Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten
DE102018007146A1 (de) Ölgemälde-Strichsimulation mittels eines neuronalen Netzwerks
EP2528042A1 (de) Verfahren und Vorrichtung zum Re-Meshing von 3D-Polygonmodellen
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
DE102022112888A1 (de) Benutzerschnittstellen und Verfahren zum Erzeugen eines neuen Artefakts auf der Grundlage vorhandener Artefakte
Alekseev et al. Simulation images of external objects in a virtual simulator for training human-machine systems operators
Wu et al. Brush stroke synthesis with a generative adversarial network driven by physically based simulation
DE102012215488A1 (de) Adaptive Anwenderschnittstelle für ein kreatives Multimedia-Gestaltungssystem
DE19581872B4 (de) Dreidimensionales Graphikaufbereitungssystem
GB2540791A (en) Apparatus, methods, computer programs and non-transitory computer-readable storage media for generating a three-dimensional model of an object
DE102019005635A1 (de) Intuitives Bearbeiten dreidimensionaler Modelle
DE102021122663A1 (de) Auf künstlicher Intelligenz beruhende Techniken zur Gestaltungserzeugung in virtuellen Umgebungen

Legal Events

Date Code Title Description
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

R012 Request for examination validly filed