-
Hintergrund
-
Dreidimensionale Modelle oder Darstellungen werden oftmals in Form von Polygonnetzen (hier auch als dreidimensionale Netze bezeichnet) generiert. Ein Polygonnetz beinhaltet allgemein Vertices, die Punkte im dreidimensionalen Raum darstellen, sowie Polygone, die die Form eines Objektes in drei Dimensionen definieren. Zur Bearbeitung von dreidimensionalen Modellen kann ein Nutzer Linien (wires) oder Kurven, die mit dem dreidimensionalen Modell verknüpft sind, manipulieren. Eine Linie oder Kurve kann ein Liniensegment, das mit dem dreidimensionalen Modell verknüpft ist, bezeichnen. Da dreidimensionale Modelle einer überaus großen Anzahl von Linien oder Kurven entsprechen können, ist das Bearbeiten der dreidimensionalen Modelle insbesondere bei komplizierten dreidimensionalen Modellen gegebenenfalls zeitaufwändig und mühsam.
-
Zusammenfassung
-
Ausführungsformen der vorliegenden Erfindung betreffen das Vereinfachen einer intuitiven und effizienten Bearbeitung von dreidimensionalen Modellen. Insbesondere kann ein Bearbeitungsanfasser (editing handle) bereitgestellt werden, der eine Manipulation eines Satzes von Linien oder Kurven ermöglicht. Auf diese Weise kann der Satz von Linien oder Kurven auf eine Weise, die durch die Manipulation des Bearbeitungsanfassers angegeben wird, bearbeitet werden. Durch Präsentieren eines einzigen Bearbeitungsanfassers, der mehreren in Beziehung stehenden Linien oder Kurven entspricht, ist die Nutzerschnittstelle zudem weniger überfüllt, was dem Nutzer eine intuitivere und wünschenswerte Erfahrung bietet. Da gegebenenfalls erwünscht ist, dass Bearbeitungen Auswirkungen auch auf andere Aspekte des dreidimensionalen Modells haben, bieten die hier beschriebenen Ausführungsformen ein Übertragen von Bearbeitungen auf andere Linien oder Kurven innerhalb eines Einflussbereiches. Auf diese Weise kann eine Bearbeitung auf andere Kurven innerhalb des dreidimensionalen Modells übertragen werden, ohne dass dieselben Bearbeitungen unbedingt auf das gesamte Modell angewendet werden müssten. Eine derartige Implementierung verringert im Allgemeinen die unerwünschten Auswirkungen einer globalen Bearbeitung.
-
Figurenliste
-
- 1 zeigt eine Szene, in der Objekte dargestellt sind.
- 2 zeigt Aspekte eines illustrativen Grafikverarbeitungssystems zum Implementieren einer Modellbearbeitungsengine entsprechend verschiedenen Ausführungsformen der vorliegenden Offenbarung.
- 3 zeigt ein dreidimensionales Objekt mit verschiedenen Kurven entsprechend verschiedenen Ausführungsformen der vorliegenden Offenbarung.
- 4 zeigt einen Satz von dreidimensionalen Objekten, der einen Bearbeitungsanfasser beinhaltet, entsprechend verschiedenen Ausführungsformen der vorliegenden Offenbarung.
- 5 zeigt ein weiteres dreidimensionales Objekt mit nichtverbundenen Komponenten entsprechend verschiedenen Ausführungsformen der vorliegenden Offenbarung.
- 6 zeigt einen ersten Prozessablauf, der die Bearbeitung eines dreidimensionalen Modells vereinfacht, entsprechend verschiedenen Ausführungsformen der vorliegenden Offenbarung.
- 7 zeigt einen zweiten Prozessablauf, der die Bearbeitung des dreidimensionalen Modells vereinfacht, entsprechend verschiedenen Ausführungsformen der vorliegenden Offenbarung.
- 8 ist ein Blockdiagramm einer exemplarischen Rechenvorrichtung, in der Ausführungsformen der vorliegenden Offenbarung eingesetzt werden können.
-
Detailbeschreibung
-
Dreidimensionale Modelle definieren allgemein ein Objekt in drei Dimensionen. In diesem Zusammenhang können Objekte durch dreidimensionale Modelle über eine mathematische Definition des Objektes in drei Dimensionen definiert werden. Oftmals werden dreidimensionale Modelle oder Darstellungen in Form von Polygonnetzen (hier auch als dreidimensionale Netze bezeichnet) generiert. Ein Polygonnetz beinhaltet allgemein Vertices, die Punkte im dreidimensionalen Raum darstellen, sowie Polygone, die die Form eines Objektes in drei Dimensionen definieren.
-
Oftmals möchte ein Nutzer ein Objekt, das mittels eines dreidimensionalen Modells wiedergegeben wird, modifizieren oder bearbeiten. Der Nutzer möchte beispielsweise ein dreidimensionales Objekt, das innerhalb einer virtuellen Szene präsentiert wird, gegebenenfalls drehen, verschieben und/oder skalieren. Rein beispielhalber und unter Verweis auf 1 möchte ein Nutzer gegebenenfalls verschiedene Objekte, die in einer Szene präsentiert werden, manipulieren. Bei einem Beispiel möchte der Nutzer gegebenenfalls die Höhe des Stuhles 102 innerhalb der Szene modifizieren, die Größe des Tisches 104 innerhalb der Szene ändern, die Form der Gläser 106 bis 112 manipulieren oder dergleichen mehr. Da dreidimensionale Modelle jedoch im Allgemeinen dichte Netze aus Vertices und Polygonen beinhalten, kann das Bearbeiten von dreidimensionalen Modellen ein Problem darstellen.
-
Bei einigen herkömmlichen Verfahren kann das dreidimensionalen Modell durch Bearbeiten von Linien oder Kurven manipuliert werden, die in Verknüpfung mit dem wiedergegebenen Objekt präsentiert werden. Da dreidimensionale Modelle eine überaus große Anzahl von Linien oder Kurven aufweisen, kann das Bearbeiten von dreidimensionalen Modellen und insbesondere von komplizierten dreidimensionalen Modellen überfordernd und mühsam sein. Insbesondere kann das zur Bearbeitung erfolgende Präparieren einer überaus großen Anzahl von Kurven einen Nutzer überfordern. Der Nutzer muss beispielsweise zahlreiche Kurven beurteilen und entscheiden, ob eine bestimmte Kurve / bestimmte Kurven manipuliert werden soll/sollen, was zu einer Trial-and-Error-Manipulation führen kann. Zusätzlich kann das einzelne Bearbeiten von Kurven ein arbeitsintensives Unterfangen sein.
-
Entsprechend betreffen die hier beschriebenen Ausführungsformen das intuitive und effiziente Bearbeiten von dreidimensionalen Modellen. Insbesondere kann ein Nutzer ein Merkmal (beispielsweise eine Kurve) eines wiedergegebenen Objektes intuitiv und effizient manipulieren, um eine Bearbeitung des entsprechenden dreidimensionalen Modells zu bewirken. Auf höherer Ebene wird ein Satz von Merkmalen (beispielsweise von Kurven) auf Grundlage einer Analyse von Merkmalen, so beispielsweise von Eigenschaften, Beziehungen und/oder Abständen, geclustert oder zusammengruppiert. Ein Bearbeitungsanfasser kann sodann in Verknüpfung mit dem Merkmalssatz generiert und angezeigt werden, sodass eine Manipulation / Manipulationen des Bearbeitungsanfassers zu ähnlichen Bearbeitungen, die auf jedes der Merkmale des Merkmalssatzes angewendet werden, führt/führen. Durch Präsentieren eines bestimmten Bearbeitungsanfassers für eine Gruppe von Merkmalen kann das Bearbeiten des wiedergegebenen Objektes oder des damit verknüpften dreidimensionalen Modells für einen Nutzer intuitiver sein. Anstatt dass beispielsweise jedes Merkmal einen entsprechenden Bearbeitungsanfasser aufweist, was die Anzeige überfüllt, können dem Nutzer weniger Bearbeitungsanfasser präsentiert werden, die er manipuliert.
-
Wie hier beschrieben wird, kann bei der Manipulation eines Bearbeitungsanfassers beispielsweise zum Bearbeiten eines Objektes mittels Durchführung einer Verschiebung, einer Drehung und/oder einer Skalierung eine passende Bearbeitung auf andere Merkmale übertragen werden, sodass das Objekt und das dreidimensionale Modell effizient bearbeitet werden können. Bei Ausführungsformen kann ein Einflussbereich derart bestimmt oder identifiziert werden, dass Bearbeitungen auf Merkmale innerhalb des Einflussbereiches angewendet oder übertragen werden. Die Nutzung eines Einflussbereiches zum Definieren einer Bearbeitungsübertragung kann ermöglichen, dass ein Teil der Merkmale, die mit dem dreidimensionalen Modell verknüpft sind, bearbeitet wird. Dies kann von Vorteil sein, da ein Nutzer gegebenenfalls die Modifikation lediglich eines Teiles der Merkmale und nicht des gesamten Satzes von Merkmalen, die mit dem dreidimensionalen Modell verknüpft sind, wünscht. Ein Einflussbereich kann auf eine Anzahl von Arten bestimmt werden. Ein Einflussbereich, in den hinein Bearbeitungen übertragen werden sollen, kann beispielsweise automatisch auf Grundlage von Eigenschaften, Beziehungen und/oder Abständen, die mit den Merkmalen verknüpft sind, bestimmt werden. Bei einem anderen Beispiel kann ein Einflussbereich über eine nutzerseitige Eingabe oder Auswahl bereitgestellt oder modifiziert werden.
-
2 zeigt eine exemplarische Konfiguration eines illustrativen Grafikverarbeitungssystems 210 zur Implementierung einer Modellbearbeitungsengine 212, die die Bearbeitung des dreidimensionalen Modells effizient und effektiv vereinfacht, entsprechend verschiedenen Ausführungsformen der vorliegenden Offenbarung. Wie in 2 gezeigt ist, kann ein Datenspeicher 214 für das Grafikverarbeitungssystem 210 zugänglich sein. Der Datenspeicher 214 kann Computeranweisungen (beispielsweise Softwareprogrammanweisungen, Routinen oder Dienste) und/oder Daten, die bei den hier beschriebenen Ausführungsformen genutzt werden, speichern. Bei einigen Implementierungen speichert der Datenspeicher 214 Information oder Daten, die vermittels der verschiedenen Komponenten der Modellbearbeitungsengine 212 empfangen werden, und stellt für die verschiedenen Komponenten nach Bedarf einen Zugang zu jener Information oder jenen Daten bereit. Obwohl eine einzige Komponente dargestellt ist, kann der Datenspeicher 214 auch als ein oder mehrere Datenspeicher verkörpert sein. Des Weiteren kann die Information in dem Datenspeicher 214 auf beliebige passende Weise über einen oder mehrere Datenspeicher (die extern gehostet sein können) zur Speicherung verteilt sein. Bei Ausführungsformen beinhalten die in dem Datenspeicher 214 gespeicherten Daten Merkmalsattribute (beispielsweise Eigenschaften, Beziehungen oder dergleichen), Nutzervorlieben oder dergleichen.
-
Das Grafikverarbeitungssystem 210 kann ein beliebiger Typ von Verarbeitungssystem sein, das von Anweisungen auf einer Rechenvorrichtung ausgeführt wird. Das Grafikverarbeitungssystem 210 kann auf einem beliebigen Typ von Rechenvorrichtung, so beispielsweise auf einer Nutzervorrichtung und/oder einem Server, betrieben werden. Ein Beispiel für eine Rechenvorrichtung mit derartigen Anweisungen ist in 8 dargestellt. Obwohl die Modellbearbeitungsengine 212 und die entsprechenden Komponenten hier allgemein derart beschrieben werden, dass sie auf einer Rechenvorrichtung arbeiten, können, wie einsichtig sein sollte, die Komponenten oder Funktionalitäten, die damit verknüpft sind, auch zwischen Vorrichtungen (beispielsweise beim Cloud Computing oder in einer verteilten Rechenumgebung) verteilt sein. Rein beispielhalber kann ein für markante Merkmale gedachter Identifizierer 220 über einen Server in Kommunikation mit einer Nutzervorrichtung, die das Grafikverarbeitungssystem 210 hostet, betrieben werden.
-
Wie dargestellt ist, beinhaltet das Grafikverarbeitungssystem 110 eine Modellbearbeitungsengine 212. Wie beschrieben ist, erleichtert die Modellbearbeitungsengine 212 ein intuitives, effizientes und effektives Bearbeiten eines dreidimensionalen Modells. Allgemein beinhaltet die Modellbearbeitungsengine 212 auf einer hohen Ebene einen Bearbeitungsanfasserverwalter 216 und einen Bearbeitungsverwalter 218. Der Bearbeitungsanfasserverwalter 216 verwaltet allgemein das Generieren und Bereitstellen von Bearbeitungsanfassern. Wie hier beschrieben wird, ermöglicht ein Bearbeitungsanfasser einem Nutzer das Bearbeiten eines Satzes von Merkmalen (Kurven), die mit einem dreidimensionalen Modell verknüpft sind. Entsprechend dem Detektieren einer Manipulation eines Bearbeitungsanfassers verwaltet der Bearbeitungsverwalter 218 passende Bearbeitungen entsprechend dem dreidimensionalen Modell.
-
Die Modellbearbeitungsengine 212 kann als Eingabe ein dreidimensionales Modell, das ein Objekt/Objekte definiert, erhalten. Bei einigen Ausführungsformen kann ein Objekt, das von einem dreidimensionalen Modell definiert wird, ein menschgemachtes Objekt darstellen, bei dem hervorstechende bzw. markante Merkmale (salient features) einfacher detektierbar sein können. Ein dreidimensionales Modell kann auf eine beliebige Anzahl von Arten erhalten werden. Bei einem Beispiel können beim Öffnen eines Bildes oder einer Szene, das/die ein oder mehrere dreidimensionale Modelle beinhaltet, diese dreidimensionalen Modelle für die Modellbearbeitungsengine 212 bereitgestellt werden. Bei einem weiteren Beispiel kann ein Nutzer ein Objekt in einem Bild oder einer Szene auswählen. Entsprechend der Nutzerauswahl kann das dreidimensionale Modell, das das Objekt darstellt, für die Modellbearbeitungsengine 212 bereitgestellt werden. Des Weiteren können dreidimensionale Modelle aus einer beliebigen Anzahl von Quellen erhalten werden. In einigen Fällen können die dreidimensionalen Modelle beispielsweise aus dem Datenspeicher 214, der für die Modellbearbeitungsengine 212 zugänglich ist, erhalten werden. In anderen Fällen können die dreidimensionalen Modelle von einem Server (beispielsweise über ein Netzwerk) kommuniziert werden.
-
Der Bearbeitungsanfasserverwalter 216 ist allgemein dafür konfiguriert, beim Erhalten eines dreidimensionalen Modells einen Satz von Bearbeitungsanfassern zu generieren und bereitzustellen. Ein Bearbeitungsanfasser bezeichnet einen Anfasser oder ein Werkzeug, der/das über eine grafische Nutzerschnittstelle präsentiert wird und einem Nutzer ermöglicht, ein Objekt oder einen Teil hiervon (beispielsweise einen Satz von Merkmalen) zu bearbeiten oder zu manipulieren. Durch Auswählen und Wegziehen (Dragging) eines Bearbeitungsanfassers, der entsprechend einem Merkmal (beispielsweise einer Kurve) eines dreidimensionalen Modells positioniert ist, kann ein Nutzer Manipulationen oder Bearbeitungen an einem dreidimensionalen Objekt initiieren.
-
Bei bestimmten Ausführungsformen kann der Bearbeitungsanfasserverwalter 216 einen für markante Merkmale gedachten Identifizierer 220, einen Merkmalsattributidentifizierer 222, einen Merkmalssatzgenerator 224 und einen Bearbeitungsanfasserbereitsteller 226 beinhalten. Wie einsichtig sein sollte, kann eine beliebige Anzahl von Komponenten benutzt werden, um die hier beschriebene Funktionalität umzusetzen, und die Ausführungsformen sollen nicht auf das hier Beschriebene beschränkt sein.
-
Der für hervorstechende bzw. markante Merkmale gedachte Identifizierer 220 ist allgemein dafür konfiguriert, markante Merkmale, die mit dem dreidimensionalen Modell verknüpft sind, zu identifizieren. Ein hervorstechendes bzw. markantes Merkmal (salient feature) bezeichnet allgemein ein wahrnehmbares oder hervortretendes Merkmal. Entsprechend hier beschriebenen Ausführungsformen identifiziert der für markante Merkmale gedachte Identifizierer 220 allgemein hervorstechende bzw. markante geometrische Merkmale. Ein Merkmal oder ein geometrisches Merkmal bezeichnet allgemein ein Merkmal, das mit der Geometrie eines dreidimensionalen Modells in Beziehung steht. Ein Merkmal kann beispielsweise eine Kurve, eine Linie oder ein Liniensegment, die einem dreidimensionalen Modell entsprechen, sein. In diesem Zusammenhang kann der für markante Merkmale gedachte Identifizierer 220 einen Satz von Kurven, die mit dem dreidimensionalen Modell verknüpft sind, identifizieren. Obwohl markante Merkmale hier allgemein als Kurven (Linien, Liniensegmente) beschrieben werden, sollte einsichtig sein, dass zusätzlich oder alternativ auch andere geometrische Merkmale identifiziert werden können.
-
Es können verschiedene Verfahren eingesetzt werden, um hervorstechende bzw. markante Merkmale, die mit dreidimensionalen Modellen verknüpft sind, zu identifizieren. Bei einem Beispiel können, wenn dreidimensionale Modelle oder Netze Dreiecke beinhalten, markante Merkmale durch Beurteilen von Winkeln identifiziert werden. Zu diesem Zweck können die markanten Merkmale auf Grundlage des Gradmaßes eines Winkels identifiziert werden. Man nehme beispielsweise an, dass ein Winkel eine Gradschwelle übersteigt, die ein spitzes Merkmal angibt. In einem solchen Fall können Kurven oder Kanten, die jenem Winkel entsprechen, als markante Merkmale identifiziert werden. Bei einem anderen Beispiel kann ein Algorithmus maschinellen Lernens auf das Detektieren von markanten Merkmalen trainiert und dann benutzt werden. Es kann eine beliebige Anzahl von Verfahren eingesetzt werden, und man ist nicht auf Umfang der Anführungsformen beschränkt.
-
Der Merkmalsattributidentifizierer 222 ist allgemein dafür konfiguriert, Merkmalsattribute, die mit den identifizierten markanten Merkmalen (beispielsweise Kurven) verknüpft sind, zu identifizieren. Auf diese Weise können Merkmalsattribute, deren Beibehaltung während der Bearbeitungen gewünscht ist, identifiziert werden. Ein Merkmalsattribut bezeichnet im Sinne des Vorliegenden allgemein ein Attribut oder einen Aspekt, das/der mit einem Merkmal oder einem Satz von Merkmalen eines dreidimensionalen Modells verknüpft ist. Ein Merkmalsattribut kann eine Eigenschaft, eine Beziehung und/oder eine Nachbarschaft (proximity) sein. Im Allgemeinen bezeichnet eine Eigenschaft einen beliebigen Typ von Eigenschaft, Kenngröße oder Aspekt eines Merkmals (beispielsweise einer bestimmten Kurve). Eine Eigenschaft kann eine Angabe der Linearität, der Zirkularität, der Planarität oder dergleichen beinhalten. Ein Beziehungsattribut bezeichnet eine Angabe einer Beziehung zwischen mehreren (zwei oder mehr) Merkmalen. Ein Beziehungsattribut kann beispielsweise Eigenschaften angeben, die von zwei oder mehr Merkmalen geteilt werden. Eine Beziehung kann eine Angabe einer Koplanarität, einer Parallelität, einer Symmetrie, einer Konzentrizität oder dergleichen beinhalten. Ein Nachbarschaftsattribut bezeichnet allgemein einen räumlichen Abstand zwischen Merkmalen. Die Nachbarschaft kann auf Vielzahl von Arten gemessen werden.
-
In diesem Zusammenhang kann der Merkmalsattributidentifizierer 222 die markanten Merkmale und damit verknüpfte Eigenschaften identifizieren. Auf ähnliche Weise kann der Merkmalsattributidentifizierer 222 die markanten Merkmale und Beziehungen und/oder Nachbarschaften zwischen diesen identifizieren. Rein beispielhalber werde unter Verweis auf 3 angenommen, dass Kurven 302, 304, 306 und 308 als markante Kurven, die einem dreidimensionalen Modell entsprechen, identifiziert werden. In diesem Fall kann der Merkmalsattributidentifizierer 222 identifizieren, dass die Kurven 302, 304, 306 und 308 jeweils konzentrisch und parallel zueinander sind.
-
Der Merkmalssatzgenerator 224 ist dafür konfiguriert, Sätze, Gruppen oder Cluster von in Beziehung stehenden Merkmalen zu generieren. In Beziehung stehende Merkmale bezeichnen allgemein Merkmale (beispielsweise Kurven) eines dreidimensionalen Modells, die auf irgendeine Weise zueinander in Beziehung stehen. Vorteilhafterweise ermöglicht das Clustern oder Gruppieren von in Beziehung stehenden Merkmalen, dass jeder Satz von in Beziehung stehenden Merkmalen einen entsprechenden Bearbeitungsanfasser aufweist, sodass der Satz von in Beziehung stehenden Merkmalen einheitlich bearbeitet werden kann. Das Präsentieren eines einzigen Bearbeitungsanfassers für einen Satz von in Beziehung stehenden Merkmalen verringert zudem die Menge der angezeigten Bearbeitungsanfasser und kann daher die Nutzerzufriedenheit verbessern.
-
Das Bestimmen von in Beziehung stehenden Merkmalen kann auf eine Vielzahl von Arten durchgeführt werden. Bei einer Implementierung können Merkmalsattribute, so beispielsweise Eigenschaften, Beziehungen und/oder Nachbarschaften, analysiert und zum Bestimmen von in Beziehung stehenden Merkmalen benutzt werden. Auf einer hohen Ebene können Merkmale mit ähnlichen Eigenschaften, mit zueinander bestehenden Beziehungen und/oder mit einer zueinander bestehenden Nachbarschaft identifiziert und zum Generieren eines Satzes von in Beziehung stehenden Merkmalen benutzt werden. Verschiedene Messungen, Schwellen oder dergleichen können benutzt werden, um einen Satz von in Beziehung stehenden Merkmalen zu definieren. Merkmale innerhalb eines Schwellenabstandes zueinander können beispielsweise als in Beziehung stehend betrachtet werden. Merkmalsattribute können zudem derart gewichtet werden, dass ein Attribut oder ein Typ von Attribut (beispielsweise eine Beziehung) höher als ein anderes Attribut oder ein anderer Typ von Attribut (beispielsweise eine Eigenschaft) beim Bestimmen des In-Beziehung-Stehens von Merkmalen gewichtet werden kann.
-
Zusätzlich oder alternativ können weitere geometrische Aspekte zum Bestimmen von in Beziehung stehenden Merkmalen eingesetzt werden. Bei einigen Implementierungen können beispielsweise geometrische Grundelemente zum Clustern oder Gruppieren von Merkmalen eingesetzt werden. Bei einigen Implementierungen können Grundelemente in Verknüpfung mit dem Objekt detektiert werden. Entsprechend einem detektierten Grundelement (beispielsweise dem Körper einer Flasche) können Merkmale, die mit einem bestimmten Grundelement verknüpft sind, zusammengruppiert oder als in Beziehung stehende Merkmale bezeichnet oder auf andere Weise für ein bestimmtes in Beziehung stehendes Merkmal benutzt werden.
-
In einigen Fällen können Merkmale in einer hierarchischen Struktur in Beziehung stehen. Ein Elternknoten einer Hierarchie kann beispielsweise jedes markante Merkmal des dreidimensionalen Modells darstellen, während ein Kinderknoten verschiedene Kombinationen von Merkmalen beinhalten kann. Auf diese Weise kann der letzte Kindsknoten der hierarchischen Pfade ein bestimmtes Merkmal darstellen. Wie hier beschrieben wird, ermöglicht das In-Beziehung-Setzen von Merkmalen in einer hierarchischen Struktur einem Nutzer, verschiedene Ebenen von in Beziehung stehenden Merkmalen auszuwählen. Als solches kann ein Nutzer eine Auswahl von in Beziehung stehenden Merkmalen, die in einem Merkmalssatz enthalten sind, verfeinern. Für den Fall, dass beispielsweise eine höchste Ebene, die jedes markante Merkmal beinhaltet, ausgewählt wird, kann ein einziger Bearbeitungsanfasser zur Bearbeitung der Merkmale präsentiert werden. Für den Fall, dass eine mittlere Ebene, die mehrere Teilsätze von in Beziehung stehenden Merkmalen beinhaltet, ausgewählt wird, kann ein Bearbeitungsanfasser, der jedem Teilsatz von in Beziehung stehenden Merkmalen entspricht, präsentiert werden. Für den Fall, dass eine untere Ebene ausgewählt wird, kann ein Bearbeitungsanfasser für jedes Merkmal präsentiert werden.
-
Der Bearbeitungsanfasserbereitsteller 226 ist allgemein dafür konfiguriert, einen Satz von Bearbeitungsanfassern bereitzustellen, der das Bearbeiten des dreidimensionalen Modells oder eines Teiles hiervon (beispielsweise eines Merkmalssatzes, der eine Gruppe von in Beziehung stehenden Kurven beinhaltet) ermöglicht. In diesem Zusammenhang kann ein Bearbeitungsanfasser generiert und für einen oder mehrere Sätze von in Beziehung stehenden Merkmalen bereitgestellt werden. Vorteilhafterweise ermöglicht das Bereitstellen eines Bearbeitungsanfassers für einen Satz von in Beziehung stehenden Merkmalen, dass bei der Manipulation eines einzigen Bearbeitungsanfassers mehrere Merkmale manipuliert oder bearbeitet werden. Das Bereitstellen eines Bearbeitungsanfassers, der mehrere Merkmale darstellt, verringert zudem allgemein das Ausmaß des optischen Durcheinanders, das auf einem Anzeigeschirm präsentiert wird.
-
In einigen Fällen kann ein Teil der Sätze von in Beziehung stehenden Merkmalen ausgewählt oder identifiziert werden, um Bearbeitungsanfasser bereitzustellen. Das Auswählen eines Teiles von Merkmalssätzen zum Präsentieren von Bearbeitungsanfassern verringert die Anzahl von Bearbeitungsanfassern, die zur Anzeige vorgesehen sind, und kann zudem das optische Durcheinander am Anzeigebildschirm verringern und die Nutzererfahrung verbessern. Auf diese Weise ist weniger wahrscheinlich, dass ein Nutzer durch die Präsenz einer überaus großen Anzahl von Bearbeitungsanfassern überfordert wird. Rein beispielhalber werde angenommen, dass zehn verschiedene Merkmalssätze generiert werden. Anstatt dass jeder der zehn verschiedenen Merkmalssätze und/oder damit verknüpfte Bearbeitungsanfasser präsentiert werden, kann ein Teil (beispielsweise drei) der Merkmalssätze zur Präsentation ausgewählt werden.
-
Sätze von spezifischen Merkmalen, für die Bearbeitungsanfasser generiert und/oder angezeigt werden sollen, können auf eine Vielzahl von Arten bestimmt werden. Bei einigen Merkmalen kann ein Merkmalssatzkennwert generiert und zum Rangbewerten der Merkmalssätze benutzt werden. Ein Merkmalssatzkennwert kann beispielsweise auf Grundlage des Ausmaßes der Hervortretens oder der Markanz der Merkmale, des Ausmaßes des In-Beziehung-Stehens der Merkmalssätze, eines Typs von Eigenschaft, die den Merkmalen entspricht, oder dergleichen bestimmt werden. In anderen Fällen können Sätze von spezifischen Merkmalen, für die Bearbeitungsanfasser generiert und/oder angezeigt werden können, auf einer Ebene innerhalb einer hierarchischen Struktur beruhen. Merkmalssätze, die mit einem bestimmten Koppler der mittleren Ebene dargestellt werden, können beispielsweise zum Generieren und/oder Anzeigen von Bearbeitungsanfassern ausgewählt werden. Zusätzlich oder alternativ kann ein Nutzer in einigen Fällen eine Anzahl von Merkmalssätzen, von denen eine Präsentation gewünscht ist, eine Ebene innerhalb einer hierarchischen Struktur, von der eine Präsentation gewünscht ist, oder dergleichen auswählen. Bei einem Beispiel können Sätze von spezifischen Merkmalen, für die ein Bearbeitungsanfasser generiert und/oder präsentiert werden soll, automatisch von dem Bearbeitungsanfasserbereitsteller 226 bestimmt werden. Beim Präsentieren von Bearbeitungsanfassern, die Sätzen von spezifischen Merkmalen entsprechen, kann ein Nutzer mit der grafischen Nutzerschnittstelle interagieren, um die Ebene in der hierarchischen Struktur anzuheben oder abzusenken. Man nehme beispielsweise an, dass ein Nutzer weniger Merkmalssätze und entsprechende Bearbeitungsanfasser sehen möchte. In diesem Fall kann der Nutzer angeben, dass in der hierarchischen Struktur auf eine höhere Ebene übergegangen wird, sodass weniger Merkmalssätze und entsprechende Bearbeitungsanfasser präsentiert werden. Bei einem anderen Beispiel wählt ein Nutzer gegebenenfalls ein oder mehrere Merkmale (beispielsweise Kurven) aus. Auf Grundlage der ausgewählten Merkmale können die entsprechenden Merkmalssätze optisch zusammen mit den passenden Bearbeitungsanfassern präsentiert werden.
-
Ein Bearbeitungsanfasser kann für jeden Satz von in Beziehung stehenden Merkmalen derart generiert werden, dass er optisch hervorgehoben ist. In diesem Zusammenhang kann für jeden Satz von in Beziehung stehenden Merkmalen, der optisch hervorgehoben werden soll (beispielsweise für jeden Satz von identifizierten Merkmalen oder jeden Satz von ausgewählten Merkmalen), ein einziger Bearbeitungsanfasser zur koordinierten Bearbeitung für den Merkmalssatz generiert werden. Wie beschrieben worden ist, kann die Nutzung eines einzigen Bearbeitungsanfassers für einen Satz von Merkmalen (beispielsweise Kurven) das Durcheinander, das bei der Anzeige des Objektes präsentiert wird, verringern.
-
Bei bestimmten Ausführungsformen kann der Bearbeitungsanfasserbereitsteller 226 ein bestimmtes Merkmal, das den Bearbeitungsanfasser darstellt oder diesem entspricht, auswählen oder identifizieren. Man nehme beispielsweise an, dass ein Merkmalssatz fünf in Beziehung stehende Kurven beinhaltet. In diesem Fall kann eine der fünf Kurven ausgewählt werden, damit die ausgewählte Kurve in Verknüpfung mit dem Bearbeitungsanfasser präsentiert wird. Bei anderen Ausführungsformen entspricht der Bearbeitungsanfasser einem beliebigen der entsprechenden Merkmalssätze gegebenenfalls nicht direkt. Man nehme beispielsweise an, dass eine bestimmte Gruppe von in Beziehung stehenden Kurven optisch hervorgehoben werden soll. In diesem Fall kann ein Bearbeitungsanfasser an einem bestimmten Ort der Anzeige (beispielsweise an einer Funktionsleiste, in einer Ecke und dergleichen), der zu den in Beziehung stehenden Kurven oder zu dem Objekt nicht unbedingt benachbart ist, bereitgestellt werden.
-
Der Bearbeitungsanfasser / die Bearbeitungsanfasser kann/können über eine grafische Nutzerschnittstelle präsentiert werden. Insbesondere kann ein Bearbeitungsanfasser optisch entsprechend dem Objekt dargestellt werden. Wie einsichtig ist, kann der Bearbeitungsanfasser auf eine beliebige Anzahl von Arten präsentiert werden. In einigen Fällen kann der Bearbeitungsanfasser, der einem Merkmalssatz entspricht, nahe an oder benachbart zu einem entsprechenden Merkmalssatz oder einem bestimmten Merkmal des Merkmalssatzes positioniert sein. Andere optische Darstellungen oder eine Hervorhebung können benutzt werden, um eine Beziehung zwischen einem Bearbeitungsanfasser und einem bestimmten Merkmalssatz zu zeigen. Beispielsweise können eine Farbe (beispielsweise ein Bearbeitungsanfasser in derselben Farbe wie die optische Darstellung der entsprechenden Kurven), eine Linienbreite (beispielsweise ein Bearbeitungsanfasser mit derselben Breite oder Größe wie die optische Darstellung der entsprechenden Kurven) oder auch andere Indikatoren benutzt werden, um einem Nutzer zu signalisieren, dass ein bestimmter Bearbeitungsanfasser einem bestimmten Merkmalssatz entspricht.
-
Wie einsichtig sein sollte, kann bei einigen Implementierungen ein Bearbeitungsanfasser für einen Merkmalssatz mehrere Komponenten, Details oder Aspekte aufweisen, um mehrere Manipulations- oder Bearbeitungseffekte zu berücksichtigen. Man nehme beispielsweise an, dass eine Kurve durch Verschieben, Drehen und/oder Skalieren manipuliert werden kann. Präsentiert werden kann in diesem Fall eine erste Bearbeitungsanfasserkomponente, um die Verschiebung der Kurve zu vereinfachen, eine zweite Bearbeitungsanfasserkomponente, um die Drehung der Kurve zu vereinfachen, und eine dritte Bearbeitungsanfasserkomponente, um die Skalierung der Kurve zu vereinfachen.
-
Zusätzlich zur Präsentation von Bearbeitungsanfassern können optische Darstellungen von Merkmalen (beispielsweise Kurven) und/oder Merkmalssätzen in dem dreidimensionalen Modell präsentiert werden. Kurven können beispielsweise durch eine Farbe oder eine andere Formatierung optisch hervorgehoben werden. In einigen Fällen können Merkmale eines bestimmten Merkmalssatzes jeweils in einer Farbe oder einem Format präsentiert werden, um sie von Merkmalen eines anderen Merkmalssatzes, der in einer anderen Farbe präsentiert wird, zu unterscheiden.
-
Wie vorstehend beschrieben worden ist, kann eine grafische Nutzerschnittstelle verschiedene Komponenten beinhalten, die einem Nutzer ermöglichen, Vorlieben, die mit der Anzeige der Bearbeitungsanfasser, der Merkmalssätze und/oder der Merkmale in Beziehung stehen, auszuwählen oder bereitzustellen. Ein Nutzer kann beispielsweise die Vergrößerung oder die Verkleinerung der Anzahl von optisch hervorgehobenen Merkmalssätzen auswählen. Rein beispielhalber werde mit Blick auf 4 davon ausgegangen, dass ein erster Merkmalssatz 402 in einer ersten Farbe (beispielsweise gelb) dargestellt ist. Ein Nutzer kann auf die Ansicht eines zweiten Merkmalssatzes 404 umschalten, der in einer zweiten Farbe (beispielsweise blau) dargestellt sein kann. Auf Grundlage der Vorlieben des Nutzers beim Bearbeiten einer Kurve in diesem zweiten Merkmalssatz (beispielsweise einer Nutzerauswahl zur Bearbeitung) kann ein Bearbeitungsanfasser 406, der mit dem zweiten Merkmalssatz verknüpft ist, präsentiert werden. Der Bearbeitungsanfasser 406 beinhaltet eine erste Komponente 408 zur Vereinfachung der Drehung des zweiten Merkmalssatzes, eine zweite Komponente 410 zur Vereinfachung der Verschiebung des zweiten Merkmalssatzes und eine dritte Komponente 412 zur Vereinfachung der Skalierung des zweiten Merkmalssatzes.
-
Wie in 2 dargestellt ist, ist der Bearbeitungsverwalter 218 allgemein dafür konfiguriert, dreidimensionale Modelle oder Teile hiervon zu bearbeiten. Bei Ausführungsformen beinhaltet der Bearbeitungsverwalter 218 einen Bearbeitungsdetektor 230, einen für in Beziehung stehende Merkmale gedachten Bearbeiter 232, einen für nicht in Beziehung stehende Merkmale gedachten Bearbeiter 234 und einen Netzoptimierer 235.
-
Der Bearbeitungsdetektor 230 ist allgemein dafür konfiguriert, Bearbeitungsangaben mittels eines Bearbeitungsanfassers zu detektieren. In diesem Zusammenhang kann der Bearbeitungsdetektor 230 eine Bewegung, eine Auswahl oder Manipulationen an dem Bearbeitungsanfasser oder einem Teil hiervon zur Angabe einer Verschiebung, einer Drehung und/oder einer Skalierung des entsprechenden Merkmales und/oder Merkmalssatzes detektieren. Wie vorstehend beschrieben worden ist, kann ein Bearbeitungsanfasser verschiedene Komponenten beinhalten, die zum auf verschiedene Arten erfolgenden Manipulieren oder Bearbeiten eines dreidimensionalen Modells benutzt werden können. Als solches kann der Bearbeitungsdetektor 230 detektieren, welche Komponente manipuliert wird und auf welche Art sie manipuliert wird. Es werde beispielsweise angenommen, dass ein Nutzer eine Verschiebungskomponente des Bearbeitungsanfassers auswählt und den Bearbeitungsanfasser oder die von ihm ausgewählte Verschiebungskomponente nach rechts wegzieht (dragging). In diesem Fall kann der Bearbeitungsdetektor 230 eine Verschiebung des Betrages und der Richtung entsprechend der Manipulation des Bearbeitungsanfassers detektieren.
-
Der für in Beziehung stehende Merkmale gedachte Bearbeiter 232 ist dafür konfiguriert, das Merkmal / die Merkmale entsprechend dem manipulierten Bearbeitungsanfasser zu bearbeiten. In diesem Zusammenhang kann eine Bearbeitungsoperation bestimmt und entsprechend der detektierten Bearbeitungsmanipulation oder Angabe angewendet werden. Es kann beispielsweise eine Bearbeitungsoperation bestimmt werden, die der auf den Bearbeitungsanfasser angewendeten Manipulation entspricht. Die Bearbeitungsoperation kann sodann auf das Merkmal, das dem manipulierten Bearbeitungsanfasser entspricht, angewendet werden.
-
Zusätzlich wendet der für in Beziehung stehende Merkmale gedachte Bearbeiter 232 bei Ausführungsformen die bestimmte Bearbeitungsoperation auf andere Merkmale in dem Satz von in Beziehung stehenden Merkmalen an. Auf diese Weise kann jedes Merkmal in dem Satz von in Beziehung stehenden Merkmalen entsprechend dem Bearbeitungsanfasser auf ähnliche Weise manipuliert werden. Rein beispielhalber werde angenommen, dass ein Merkmalssatz eine erste Kurve, eine zweite Kurve und eine dritte Kurve beinhaltet. Weiter werde angenommen, dass ein Nutzer einen Bearbeitungsanfasser, der in Verknüpfung mit der ersten Kurve angezeigt wird, manipuliert. Der Nutzer gibt beispielsweise an, dass die erste Kurve gedreht werden soll. Beim Detektieren einer Drehungsoperation für die erste Kurve kann der für in Beziehung stehende Merkmale gedachte Bearbeiter 232 die Anwendung der Drehungsoperation an der ersten Kurve, der zweiten Kurve und der dritten Kurve auslösen oder bewirken. Vorteilhafterweise hält das Übertragen der Bearbeitungsmanipulation auf die anderen in Beziehung stehenden Kurven die Beziehungen zwischen den Kurven aufrecht. Werden beispielsweise zwei Kurven als reflexionssymmetrisch identifiziert, so führt das Drehen der einen zu einem automatischen Drehen der anderen in Beziehung stehenden Kurven.
-
Der für nicht in Beziehung stehende Merkmale gedachte Bearbeiter 234 ist allgemein dafür konfiguriert, nicht in Beziehung stehende Merkmale und Merkmalssätze zu bearbeiten. Ein nicht in Beziehung stehendes Merkmal oder ein Merkmalssatz bezeichnen ein Merkmal oder einen Merkmalssatz, das/der nicht dahingehend identifiziert worden ist, dass es/er innerhalb eines Satzes von in Beziehung stehenden Merkmalen befindlich oder Teil desselben ist. Auf diese Weise können auch Merkmale, die nicht in dem Satz von in Beziehung stehenden Merkmalen sind, entsprechend einer Nutzerbearbeitung manipuliert werden. Rein beispielhalber werde angenommen, dass eine erste Kurve bearbeitet wird, eine vierte und eine fünfte Kurve, die nicht in demselben Merkmalssatz wie die erste Kurve sind, jedoch eine gewisse Beziehung mit der ersten Kurve (beispielsweise jeweils die Konzentrizität) teilen. Zum Aufrechterhalten des Attributes (beispielsweise der Beziehung, der Eigenschaft, des Abstandes) kann der für nicht in Beziehung stehende Merkmale gedachte Bearbeiter die Bearbeitungsoperation auf andere nicht in Beziehung stehende Merkmale in dem dreidimensionalen Modell übertragen.
-
Bei einigen Ausführungsformen können die nicht in Beziehung stehenden Merkmale und/oder Merkmalssätze zur Bearbeitung auf Grundlage eines Einflussbereiches bestimmt werden. In diesem Zusammenhang können Bearbeitungen auf Merkmale innerhalb eines Einflussbereiches übertragen werden. Das Anwenden von Bearbeitungen auf Merkmale innerhalb eines Einflussbereiches kann spezifizieren, wie die Bearbeitung andere Aspekte des dreidimensionalen Modells beeinflusst. In einigen Fällen kann ein Einflussbereich ein gesamtes dreidimensionales Modell beinhalten. In diesem Zusammenhang kann eine Manipulation eines Merkmals oder Merkmalssatzes zur Manipulation eines jeden Merkmals, das in dem dreidimensionalen Modell identifiziert wird, führen. In anderen Fällen kann ein Einflussbereich ein Teil des dreidimensionalen Objektes sein, sodass unerwartete globale Änderungen vermieden werden. Dies kann Beziehungen unter Merkmalen und/oder Merkmalssätzen, die aufrecht erhalten werden sollen, ermöglichen, ohne dass globale Bearbeitungen auf das dreidimensionale Modell angewendet werden. Ein Einflussbereich kann auf eine beliebige Anzahl von Arten (beispielsweise über maschinelles Lernen oder heuristisch) bestimmt oder definiert werden. Ein Einflussbereich kann beispielsweise auf Grundlage von Eigenschaften, Beziehungen, Abständen, Grundelementen oder dergleichen bestimmt werden.
-
Beispielhalber werde unter Verweis auf 3 angenommen, dass eine Kurve 302 zur Bearbeitung ausgewählt ist und dass die Kurve 302 die einzige Kurve in einem Merkmalssatz ist. Als solches kann die Kurve 302 entsprechend einer der nutzerseitig spezifizierten Manipulationen bearbeitet werden. Beim Analysieren von verschiedenen Merkmalsattributen, die mit anderen Merkmalen in dem dreidimensionalen Modell verknüpft sind, werde angenommen, dass bestimmt wird, dass die Bewahrung der Koplanarität der Kurven 302, 304, 306 und 308 gewünscht ist. In diesem Fall kann bestimmt werden, dass die Kurven 304, 306 und 308 innerhalb des Einflussbereiches sind, sodass Bearbeitungen (beispielsweise Drehungsbearbeitungen) auf diese Kurven übertragen werden. Es sollte einsichtig sein, dass Einflussbereiche in Abhängigkeit vom Typ der anzuwendenden Bearbeitung variieren können. Wiederum bei diesem Beispiel kann beispielsweise ein Skalieren der Kurve 302 zu einem Einflussbereich führen, der die Kurve 304 einschließt, die Kurven 306 und 308 jedoch ausschließt. Dies ermöglicht eine Modifikation des Bodens des Glases (beispielsweise eine Vergrößerung), ohne dass dies zu einer Modifikation am Rand des Glases führen würde.
-
Bei einigen Implementierungen kann eine grafische Nutzerschnittstelle dafür konfiguriert sein, einem Nutzer das Auswählen oder Modifizieren eines Einflussbereiches zu ermöglichen. Bei einem Beispiel kann ein Nutzer entweder spezifische Merkmale oder eine Fläche / einen Bereich, von der/dem der Nutzer will, dass sie/er in dem Einflussbereich beinhaltet ist, auswählen, damit Bearbeitungen auf diese ausgewählten Merkmale oder Merkmale innerhalb des ausgewählten Bereiches übertragen werden. Bei einem anderen Beispiel kann ein Einflussbereich beispielsweise über den für nicht in Beziehung stehende Merkmale gedachten Bearbeiter 234 (beispielsweise auf Grundlage einer Analyse von Eigenschaften, Beziehungen, Abständen und dergleichen) automatisch bestimmt werden. In diesem Fall kann ein Nutzer über eine grafische Nutzerschnittstelle den bestimmten Einflussbereich bestätigen oder eine Modifikation des automatisch bestimmten Einflussbereiches auswählen, damit mehr oder weniger von dem dreidimensionalen Modell betroffen ist. Das Modifizieren eines Einflussbereiches kann auf eine beliebige Anzahl von Arten durchgeführt werden und ist nicht auf die hier beschriebenen Ausführungsformen beschränkt. Bei einem Beispiel kann ein Gleitschieber positioniert sein, der einem Nutzer ermöglicht, die Größe des Einflussbereiches (beispielsweise auf Grundlage des Abstandes zu einem anfänglich bearbeiteten Merkmal) zu vergrößern oder zu verkleinern. Bei einem anderen Beispiel kann ein Nutzer spezifische Merkmale, die in dem Einflussbereich eingeschlossen oder aus diesem ausgeschlossen sein sollen, auswählen oder eine solche Auswahl aufheben.
-
Der Netzoptimierer 236 ist allgemein dafür konfiguriert, das dreidimensionale Modell auf Grundlage der Positionen oder Bearbeitungen, die für Merkmale (beispielsweise Kurven) identifiziert sind, zu aktualisieren oder zu modifizieren. In diesem Zusammenhang erweitert der Netzoptimierer 236 Bearbeitungen, die für Merkmale in dem dreidimensionalen Modell (wie beispielsweise vorstehend beschrieben worden ist) identifiziert sind, auf alle Vertices des dreidimensionalen Modells. Die Netzoptimierung kann auf eine beliebige Anzahl von Arten durchgeführt werden. Bei einer Implementierung kann ein Verfahren der möglichst starren Verformung (as-rigid-aspossible deformation), das zusätzliche Randbedingungen der Stetigkeit einführt, zur Durchführung der Netzoptimierung eingesetzt werden.
-
In einigen Fällen kann ein eingegebenes dreidimensionales Modell oder Netz nichtverbundene Komponenten (beispielsweise eines Objektes) beinhalten. Rein beispielhalber und unter Verweis auf 5 kann der Griff der Espressomaschine 502 ein Netz aufweisen, das mit dem Körper der Espressomaschine 504 nicht verbunden ist. In diesem Zusammenhang ist gegebenenfalls keine Verbindung zwischen den Vertices und/oder Dreiecken an dem dreidimensionalen Netz, die dem Griff der Espressomaschine 502 entsprechen, und den Vertices und/oder Dreiecken an dem dreidimensionalen Netz, die dem Körper der Espressomaschine 504 entsprechen, vorhanden. Trotz der nichtverbundenen Netze kann bei Bearbeitungen, die an Merkmalen innerhalb einer Komponente vorgenommen werden, erwünscht sein, sie entsprechend auch an einer anderen Komponente vorzunehmen. Dies kann sogar dann der Fall sein, wenn markante Merkmale in der verbundenen Komponente nicht identifiziert werden. Wird der Körper der Espressomaschine 504 beispielsweise verschoben oder gedreht, so kann erwünscht sein, dass die Komponente 504 entsprechend bearbeitet wird, obwohl ein markantes Merkmal in Verknüpfung mit der Komponente 504 gegebenenfalls nicht detektiert worden ist.
-
Als solches kann der Netzoptimierer 236 dafür konfiguriert sein, nichtverbundene Komponenten innerhalb des dreidimensionalen Modells oder Netzes zu identifizieren und zu analysieren. Beim Identifizieren von nichtverbundenen Komponenten können die nichtverbundenen Komponenten analysiert werden, um zu bestimmen, ob Modifikationen auf die nichtverbundenen Komponenten übertragen werden sollen. Eine derartige Bestimmung kann auf eine Anzahl von Arten vorgenommen werden, darunter beispielsweise auf Grundlage des Abstandes zwischen den Komponenten. Ist die nichtverbundene Komponente beispielsweise innerhalb eines Schwellenabstandes befindlich, so kann eine Bearbeitungsübertragung angewendet werden. Zusätzlich oder alternativ kann, wenn das Begrenzungskästchen der nichtverbundenen Komponente das Begrenzungskästchen der bearbeiteten Komponente schneidet oder innerhalb eines Schwellenabstandes hierzu befindlich ist, die Bearbeitungsübertragung auf die nichtverbundene Komponente angewendet werden.
-
Bei einem weiteren Beispiel, bei dem bestimmt wird, ob Modifikationen an einer nichtverbundenen Komponente übertragen werden sollen, kann die Größe von Komponenten analysiert werden, um zu bestimmen, ob eine Bearbeitung auf eine nichtverbundene Komponente angewendet werden soll. In einigen Fällen kann beispielsweise, wenn die identifizierte nichtverbundene Komponente eine kleinere Komponente ist, bestimmt werden, dass Bearbeitungen auf die nichtverbundene Komponente übertragen werden. Ist die identifizierte nichtverbundene Komponente demgegenüber eine größere Komponente, so kann bestimmt werden, Bearbeitungen nicht auf die nichtverbundene Komponente zu übertragen.
-
Im Betrieb kann ein Hierarchiebaum erstellt werden, um diese Analyse von nichtverbundenen Komponenten (beispielsweise in Bezug auf den Abstand und/oder die Größen von Komponenten) zu vereinfachen. Rein beispielhalber kann ein Hierarchiebaum der Komponenten auf Grundlage der Nachbarschaft und/oder Größenbeziehungen generiert werden. Hierzu kann ein gerichteter Graph erstellt werden, bei dem jede Komponente ein Knoten ist und Kanten zwischen zwei nahen Komponenten mit Richtung von der größeren Komponente zur kleineren Komponente gegeben sind. Der minimale Spannbaum (spanning tree) kann als Hierarchiebaum behandelt werden. Als solches kann, wenn der Nutzer Anfasser, die einer Komponente entsprechen, bearbeitet, die Bearbeitung auf Kinderkomponenten übertragen werden; umgekehrt funktioniert dies jedoch nicht.
-
Wird identifiziert, dass Bearbeitungen auf eine nichtverbundene Komponente übertragen werden, so kann der Netzoptimierer 236 diese Information bei der Durchführung der Netzoptimierung nutzen. Es kann beispielsweise eine zusätzliche Randbedingung definiert werden, um die Bearbeitung über Komponenten hinweg zu verwirklichen. Bei einem Beispiel gibt eine Randbedingung an, dass ein Vertex an der bearbeiteten Komponente auf ähnliche Weise wie ein Vertex an der nichtverbundenen Komponente manipuliert werden soll, damit die Netzoptimierung auf die nichtverbundene Komponente wie auch die bearbeitete Komponente übertragen werden kann. Zu diesem Zweck können ein Vertex an der bearbeiteten Komponente und ein Vertex an der nichtverbundenen Komponente als Anbringungspunkte zur Nutzung als Randbedingung definiert oder bezeichnet werden. Auf diese Weise kann eine Relativpositionierung der Anbringungspunkte während der Netzoptimierung beibehalten oder aufrechterhalten werden.
-
6 zeigt einen Prozessablauf 600 zur Darstellung einer exemplarischen Ausführungsform zur Vereinfachung von Bearbeitungen eines dreidimensionalen Modells entsprechend verschiedenen Ausführungsformen der vorliegenden Offenbarung. Der Prozessablauf 600 kann beispielsweise von der Modellbearbeitungsengine, die vorstehend anhand 2 erläutert worden ist, durchgeführt werden.
-
Wie dargestellt ist, beginnt der Prozessablauf 600 bei Block 602, bei dem markante geometrische Merkmale identifiziert werden, die mit einem dreidimensionalen Modell, das ein Objekt definiert, verknüpft sind. Wie hier beschrieben wird, können markante geometrische Merkmale hervortretende Kurven sein, die mit dem dreidimensionalen Modell verknüpft sind. Bei Block 604 werden Merkmalsattribute bestimmt, die mit den markanten geometrischen Merkmalen des dreidimensionalen Modells verknüpft sind. Derartige Merkmalsattribute können beispielsweise Eigenschaften, Beziehungen, Abstände, Grundelemente und/oder dergleichen beinhalten. Bei Block 606 wird ein Merkmalssatz, der mehrere markante geometrische Merkmale, die zueinander in Beziehung stehen, beinhaltet, auf Grundlage der bestimmten Merkmalsattribute generiert. Wie einsichtig ist, kann eine beliebige Anzahl von Merkmalssätzen generiert werden. In Fällen, in denen mehrere Merkmalssätze generiert werden, kann bei einigen Implementierungen eine Auswahl getroffen werden, die einen bestimmten Satz von Merkmalssätzen zur Präsentation auswählt und/oder für die Bearbeitungsanfasser generiert und präsentiert werden sollen. Bei Block 608 wird der Bearbeitungsanfasser für den Merkmalssatz zur Anzeige bereitgestellt. Der Bearbeitungsanfasser ermöglicht, dass jedes der mehreren markanten geometrischen Merkmale innerhalb des Merkmalssatzes entsprechend einer Manipulation des Bearbeitungsanfassers bearbeitet werden soll. Wie einsichtig sein sollte, kann der Bearbeitungsanfasser in Verknüpfung mit einem der mehreren markanten geometrischen Merkmale angezeigt werden.
-
7 zeigt einen Prozessablauf 700 zur Darstellung einer exemplarischen Ausführungsform zur Vereinfachung von Bearbeitungen eines dreidimensionalen Modells entsprechend verschiedenen Ausführungsformen der vorliegenden Offenbarung. Der Prozessablauf 700 kann beispielsweise von der Modellbearbeitungsengine, die vorstehend anhand 2 erläutert worden ist, durchgeführt werden.
-
Wie dargestellt ist, beginnt der Prozessablauf 700 bei Block 702, bei dem eine Manipulation eines Bearbeitungsanfassers, der in Verknüpfung mit einem von mehreren in Beziehung stehenden geometrischen Merkmalen eines dreidimensionalen Modells angezeigt wird, empfangen wird. Die Manipulation kann die Durchführung einer Drehungs-, einer Verschiebungs- oder einer Skalierungsoperation an einem dreidimensionalen Modell oder einem Teil hiervon angeben. Bei Block 704 wird jedes der mehreren in Beziehung stehenden geometrischen Merkmale des dreidimensionalen Modells entsprechend der Manipulation des Bearbeitungsanfassers bearbeitet. Bei Block 706 wird ein Einflussbereich innerhalb des dreidimensionalen Modells bestimmt. Eine derartige Bestimmung kann beispielsweise auf Grundlage einer Analyse von Eigenschaften, Beziehungen, Abständen, Grundelementen oder dergleichen der geometrischen Merkmale vorgenommen werden. Zusätzlich oder alternativ kann ein Einflussbereich auf Grundlage einer Nutzereingabe bestimmt oder modifiziert werden. Bei Block 708 werden Bearbeitungen, die der Manipulation des Bearbeitungsanfassers entsprechen, auf einen zweiten Satz von geometrischen Merkmalen innerhalb des Einflussbereiches des dreidimensionalen Modells übertragen. Bei Block 710 wird das dreidimensionale Modell auf Grundlage der Bearbeitungen an jedem der mehreren in Beziehung stehenden geometrischen Merkmale und der Bearbeitungen an dem zweiten Satz von geometrischen Merkmalen innerhalb des Einflussbereiches (beispielsweise mittels Netzoptimierung) aktualisiert.
-
Wie in 8 zu sehen ist, beinhaltet eine Rechenvorrichtung 800 einen Bus 810, der die nachfolgenden Vorrichtungen direkt oder indirekt koppelt: eine Ablage 812, einen oder mehrere Prozessoren 814, eine oder mehrere Präsentationskomponenten 816, Eingabe-/Ausgabe-Ports 818, Eingabe-/Ausgabe-Komponenten 820 und eine exemplarische Energieversorgung 822. Der Bus 810 stellt gewissermaßen einen oder mehrere Busse (so beispielsweise einen Adressbus, einen Datenbus oder eine Kombination hieraus) dar. Obwohl die verschiedenen Blöcke von 8 der Einfachheit halber mit klar abgrenzenden Linien gezeigt sind, sind solche Abgrenzungen nicht so eindeutig, weshalb die Linien auch überlappen können. Eine Präsentationskomponente, so beispielsweise eine Anzeigevorrichtung, kann beispielsweise auch als I/O-Komponente betrachtet werden. Zudem weisen Prozessoren im Allgemeinen eine Ablage in Form eines Caches auf. Es ist einsichtig, dass dies das Wesen des Fachgebietes ist, weshalb erneut darauf verwiesen wird, dass das Diagramm von 8 rein illustrativ für eine exemplarische Rechenvorrichtung ist, die in Verbindung mit einer oder mehreren Ausführungsformen der vorliegenden Offenbarung benutzt werden kann. Es wird keine Unterscheidung zwischen Kategorien wie „Workstation“, „Server“, „Laptop“, „portable Vorrichtung“ und dergleichen mehr getroffen, da diese alle im Umfang von 8 erfasst sind und als „Rechenvorrichtung“ bezeichnet werden.
-
Die Rechenvorrichtung 800 beinhaltet üblicherweise eine Vielzahl von computerlesbaren Medien. Computerlesbare Medien können beliebige verfügbare Medien sein, auf die die Rechenvorrichtung 800 zugreifen kann, und beinhalten sowohl flüchtige wie auch nichtflüchtige, sowohl entfernbare wie auch nichtentfernbare Medien. Beispiels- und nicht beschränkungshalber können computerlesbare Medium Computerspeichermedien und Kommunikationsmedien umfassen.
-
Computerspeichermedien beinhalten flüchtige und nichtflüchtige, entfernbare und nichtentfernbare Medien, die durch ein beliebiges Verfahren oder eine beliebige Technologie zur Speicherung von Information, so beispielsweise von computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen oder anderen Daten, implementiert sind. Computerspeichermedien beinhalten unter anderem RAM, ROM, EEPROM, Flash-Speicher oder eine andere Speichertechnologie, CD-ROM, DVD oder andere optische Plattenspeicher, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder ein beliebiges anderes Medium, das zum Speichern der gewünschten Information benutzt werden kann und auf das die Rechenvorrichtung 800 zugreifen kann. Computerspeichermedien schließen Signale als solche aus.
-
Ein Kommunikationsmedium verkörpert üblicherweise computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten in einem modulierten Datensignal, so beispielsweise in einer Trägerwelle oder einem anderen Transportmechanismus, und beinhaltet beliebige Informationsverteilungsmedien. Der Begriff „moduliertes Datensignal“ bezeichnet ein Signal, bei dem eine oder mehrere seiner Eigenschaften derart eingestellt oder verändert sind, dass Information in dem Signal codiert ist. Beispiels- und nicht beschränkungshalber beinhalten Kommunikationsmedien drahtgebundene Medien, so beispielsweise ein drahtgebundenes Netzwerk oder eine direkt verdrahtete Verbindung, wie auch drahtlose Medien, so beispielsweise akustische, hochfrequenzbasierte, infrarotbasierte und andere drahtlose Medien. Kombinationen aus dem Vorgenannten sollen ebenfalls im Umfang der computerlesbaren Medien beinhaltet sein.
-
Die Ablage 812 beinhaltet Computerspeichermedien in Form einer flüchtigen und/oder einer nichtflüchtigen Ablage. Wie dargestellt ist, beinhaltet die Ablage 812 Anweisungen 824. Die Anweisungen 824 sind, wenn sie von einem Prozessor / Prozessoren 814 ausgeführt werden, dafür konfiguriert zu veranlassen, dass die Rechenvorrichtung beliebige der hier anhand der vorstehend erläuterten Figuren beschriebenen Operationen durchführt oder beliebige der hier beschriebenen Programmmodule implementiert. Die Ablage kann entfernbar, nichtentfernbar oder eine Kombination hieraus sein. Illustrative Hardwarevorrichtungen beinhalten eine Solid-State-Ablage, Festplattenlaufwerke, Laufwerke für optische Platten und dergleichen mehr. Die Rechenvorrichtung 800 beinhaltet einen oder mehrere Prozessoren, die Daten aus verschiedenen Entitäten, so beispielsweise aus der Ablage 812 oder den I/O-Komponenten 820, lesen. Eine Präsentationskomponente / Präsentationskomponenten 816 präsentiert/präsentieren Datenangaben für einen Nutzer oder eine andere Vorrichtung. Illustrative Präsentationskomponenten beinhalten eine Anzeigevorrichtung, einen Lautsprecher, eine Druckkomponente, eine Vibrationskomponente und dergleichen mehr.
-
I/O-Ports 818 ermöglichen, dass die Rechenvorrichtung 800 logisch mit anderen Vorrichtungen, darunter den I/O-Komponenten 820, von denen einige eingebaut sein können, gekoppelt ist. Illustrative Komponenten beinhalten ein Mikrofon, einen Joystick, ein Gamepad, eine Satellitenschüssel, einen Scanner, einen Drucker, eine drahtlose Vorrichtung und dergleichen mehr.
-
Die hier präsentierten Ausführungsformen sind anhand bestimmter Ausführungsformen beschrieben worden, die in jeder Hinsicht illustrativ und nicht restriktiv sein sollen. Alternative Ausführungsformen erschließen sich einem Durchschnittsfachmann auf dem einschlägigen Gebiet, zu dem die vorliegende Offenbarung gehört, ohne von deren Umfang abzugehen.
-
Aus dem Vorbeschriebenen ist ersichtlich, dass die vorliegende Offenbarung sehr geeignet dafür ist, alle Zwecke und Aufgaben, die vorstehend aufgeführt sind, zu erfüllen und dazu weitere Vorteile, die offensichtlich oder strukturinhärent sind, zu bieten.
-
Es sollte einsichtig sein, dass bestimmte Merkmale und Teilkombinationen von Nutzen sind und ohne Verweis auf andere Merkmale oder Teilkombinationen eingesetzt werden können. Dies ist durch den Umfang der Ansprüche gedeckt und innerhalb des Umfanges derselben.
-
In der vorhergehenden Detailbeschreibung wird auf die begleitende Zeichnung verwiesen, die einen Teil hiervon bildet, wobei gleiche Bezugszeichen durchweg gleiche Teile bezeichnen und illustrationshalber Ausführungsformen gezeigt sind, die praktisch umgesetzt werden können. Es sollte einsichtig sein, dass auch andere Ausführungsformen eingesetzt und strukturelle oder logische Änderungen daran vorgenommen werden können, ohne vom Umfang der vorliegenden Offenbarung abzugehen. Daher soll die vorstehende Detailbeschreibung nicht in einem beschränkenden Sinne gedeutet werden, und es ist der Umfang der Ausführungsformen durch die beigefügten Ansprüche und deren Äquivalente definiert.
-
Es sind verschiedene Aspekte der illustrativen Ausführungsformen unter Nutzung von Begriffen beschrieben worden, die von einem Fachmann auf dem einschlägigen Gebiet üblicherweise benutzt werden, um das Wesen seiner Arbeit anderen Fachleuten auf dem einschlägigen Gebiet mitzuteilen. Einem Fachmann auf dem einschlägigen Gebiet erschließt sich jedoch, dass auch alternative Ausführungsformen mit nur einigen der beschriebenen Aspekte praktisch umgesetzt werden können. Erläuterungshalber sind spezifische Zahlen, Materialien und Konfigurationen angegeben, um ein eingehendes Verständnis der illustrativen Ausführungsformen zu fördern. Einem Fachmann auf dem einschlägigen Gebiet erschließt sich jedoch, dass alternative Ausführungsformen auch ohne diese spezifischen Details umgesetzt werden können. In anderen Fällen sind bekannte Merkmale weggelassen oder vereinfacht worden, um die illustrativen Ausführungsformen nicht unklar zu machen.
-
Verschiedene Operationen sind als mehrere diskrete Operationen auf eine Weise beschrieben worden, die für das Verständnis der illustrativen Ausführungsformen sehr hilfreich ist. Die Reihenfolge der Beschreibung soll jedoch nicht derart gedeutet werden, dass hierdurch impliziert ist, dass diese Operationen unbedingt abhängig von der Reihenfolge sind. Insbesondere müssen diese Operationen nicht in der Reihenfolge der Präsentation durchgeführt werden. Des Weiteren sollen Beschreibungen von Operationen als separate Operationen nicht dahingehend gedeutet werden, dass erforderlich ist, dass diese Operationen unbedingt unabhängig und/oder von getrennten Entitäten durchgeführt werden. Beschreibungen von Entitäten und/oder Modulen als separate Module sollen gleichermaßen nicht derart gedeutet werden, dass erforderlich ist, dass die Module getrennt sind und/oder getrennte Operationen durchführen. Bei verschiedenen Ausführungsformen können dargestellte und/oder beschriebene Operationen, Entitäten, Daten und/oder Module vereint, in weitere Teile zerlegt und/oder weggelassen werden.
-
Der Ausdruck „bei einer Ausführungsform“ wird wiederholt verwendet. Dieser verweist im Allgemeinen nicht auf ein und dieselbe Ausführungsform, kann dies jedoch tun. Die Begriffe „umfassen“, „aufweisen“ und „beinhalten“ sind Synonyme, außer der Kontext gibt dies anders vor. Der Ausdruck „A/B“ bedeutet „A oder B“. Der Ausdruck „A und/oder B“ bedeutet „(A), (B) oder (A und B)“. Der Ausdruck „wenigstens eines von A, B und C“ bezeichnet „(A), (B), (C), (A und B), (A und C), (B und C) oder (A, B und C).“