DE102009007334A1 - Front-End für universelles Rendering Framework - Google Patents

Front-End für universelles Rendering Framework Download PDF

Info

Publication number
DE102009007334A1
DE102009007334A1 DE102009007334A DE102009007334A DE102009007334A1 DE 102009007334 A1 DE102009007334 A1 DE 102009007334A1 DE 102009007334 A DE102009007334 A DE 102009007334A DE 102009007334 A DE102009007334 A DE 102009007334A DE 102009007334 A1 DE102009007334 A1 DE 102009007334A1
Authority
DE
Germany
Prior art keywords
render
implementation
rendering
geometry
render implementation
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.)
Ceased
Application number
DE102009007334A
Other languages
English (en)
Inventor
Jerome Maillot
Andre St-Jacques-Le-Mineur Gauthier
Daniel Levesque
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.)
Autodesk Inc
Original Assignee
Autodesk 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 Autodesk Inc filed Critical Autodesk Inc
Publication of DE102009007334A1 publication Critical patent/DE102009007334A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/61Scene description

Landscapes

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

Abstract

Ausführungsformen der Erfindung stellen ein rendereragnostisches Verfahren zum Repräsentieren von Materialien unabhängig von einer zugrundeliegenden Render-Maschine bereit. Vorteilhafterweise mögen Materialien-Bibliotheken um neue Materialien zum Rendern mit einer vorhandenen Render-Maschine und -Implementierung erweitert werden. Des Weiteren mögen neue Render-Maschinen und -Implementierungen für vorhandene Materialien hinzugefügt werden. Somit mag, bei Laufzeit, anstatt das Rendern darauf zu beschränken, auf einer vorgegebenen Render-Maschine ausgeführt zu werden, die Render-Anwendung effizient und bequem das Rendern einer Grafikszene auf einer Mehrzahl von Render-Maschinen oder -Implementierungen verwalten.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein Computer-Software. Insbesondere betrifft die vorliegende Erfindung eine Rendering-Anwendung, die dafür konfiguriert ist, ein rendereragnostisches Verfahren zum Repräsentieren von Materialien unabhängig von einer zugrundeliegenden Render-Maschine (rendering engine) auszuführen.
  • Beschreibung des Standes der Technik
  • Der Begriff ”computerunterstütztes Design” (Computer Aided Design – CAD) bezieht sich auf eine breite Vielfalt computergestützter Werkzeuge (tools), die von Architekten, Ingenieuren, Animatoren, Videospiele-Entwicklern und anderen Grafik- und Designprofis verwendet werden. CAD-Anwendungen mögen verwendet werden, um Computermodelle oder Zeichnungen zu erstellen, die praktisch jedes erdenkliche zweidimensionale (2D) oder dreidimensionale (3D) Konstrukt repräsentieren. Eine Render-Anwendung (rendering application) mag dann verwendet werden, um ein Bild aus einem CAD-Modell zu erzeugen. Rendern (rendering) wird ebenfalls verwendet, um den Prozess des Berechnens von Effekten in einer Videobearbeitungsdatei zu beschreiben, um eine endgültige Videoausgabe zu produzieren.
  • Eine Render-Anwendung kann das Aussehen von Texturen, Farben, Oberflächenschatten, Spitzenlichtern und Reflexionen der realen Welt simulieren, indem sie den Modellen und Animationen das endgültige Aussehen verleiht. Als ein Produkt gibt es Render-Anwendungen in vielen Formen. Einige Render-Anwendungen sind in größere Modellierungs-, Animations- und CAD-Pakete integriert, während es sich bei anderen um selbstständige Anwendungen handelt. Funktional ist der Render-Prozess ein sorgfältig entwickeltes Programm, das auf einer selektiven Mischung von Techniken basiert, die mit Lichtphysik, visueller Wahrnehmung, Mathematik und Software-Entwicklung zu tun haben.
  • Render-Anwendungen können in Hardware oder Software implementiert werden. Im Fall von Software-Rendern ist der eigentliche Render-Prozess ein rechenaufwändiger Prozess, der häufig für die Erstellung bewegter Bilder verwendet wird. In der Regel wird Software-Rendern nicht in Echtzeit durchgeführt, d. h. es dauert länger, einen einzelnen Frame zu rendern, als dieser Frame angezeigt wird. Allerdings mag softwaregestütztes Rendern qualitativ sehr hochwertige Bilder hervorbringen, da der Renderer nicht an Frameraten-Anforderungen gebunden ist. Im Gegensatz dazu wird Echtzeit-Rendern, das auf Grafikarten mit 3D-Hardware-Beschleunigern implementiert wird, häufig in Videospielen verwendet und wird oft auf Grafikarten mit 3D-Hardware-Beschleunigern implementiert.
  • Zu softwarebasierten Render-Maschinen gehören unter anderem Maya, StudioMax, Renderman, Vray und Mental Ray. Gleichermaßen mögen hochentwickelte 3D-Grafik-APIs, wie zum Beispiel DirectX und OpenGL, verwendet werden, um hardwarebasierte Grafik-Render-Pipelines zu steuern. Angesichts dieses Sortiments an verfügbaren Render-Werkzeugen, von denen jedes einzigartige Vor- und Nachteile besitzt, wünschen Nutzer oft, eine Render-Maschine für bestimmte Zwecke und eine andere Render-Maschine für andere Zwecke einzusetzen. Zum Beispiel ist Mental RayTM ein leistungsfähiges Raytracing-Render-Werkzeug, während RenderManTM als ein effizientes abtastzeilenbasiertes (scan-line based) Render-Werkzeug bekannt ist. Je nach dem gewünschten Effekt mag der Nutzer eine dieser Render-Lösung den anderen vorziehen.
  • Um jedoch von einer Render-Maschine zu einer anderen zu wechseln, muss der Nutzer die Schnittstelle und Konfiguration für jede Render-Maschine verstehen. Um zum Beispiel einen gewünschten Render-Effekt mit Hilfe von Mental Ray zu erreichen, mag der Nutzer spezifizieren müssen, welche Dynamik-Bibliothek zu laden ist, mag eine Mental Ray-Datei spezifizieren müssen, die eine Schnittstelle zu einem Shader beschreibt, und mag einen Satz Parameter spezifizieren müssen. Das Wechseln zu einer anderen Render-Maschine mag vom Nutzer verlangen, einen völlig anderen Satz Bibliotheken, Dateien und Parameter zu spezifizieren, der für diese Render-Maschine spezifisch ist. Darüber hinaus besitzen die Nutzer dieser Render-Werkzeuge oftmals keinen hohen Wissenstand auf dem Gebiet der Computerprogrammierung. Zum Beispiel mag es Architekten, Illustratoren und Ingenieuren, die mit den gewünschten Eigenschaften gerenderter Oberflächen vertraut sein mögen (zum Beispiel, ob eine gestrichene Wandfläche ein glänzendes oder ein mattes Aussehen haben soll, oder wie kiesartig ein Betonweg auszusehen hat), trotzdem am Verständnis der Render-Einstellungen mangeln, die erforderlich sind, um diese Effekte mit Hilfe eines bestimmten Typs einer Render-Maschine zu erreichen.
  • Derzeit erlauben Versuche auf hochentwickelten Rendering-Frameworks keine Implementierung unterschiedlicher Render-Maschinen. Zum Beispiel nutzt Autodesk® ImageStudioTM Nutzerfassaden (user facades), um das Rendern benutzerfreundlicher zu machen. Jedoch gestattet ImageStudioTM nicht die Implementierung mehrerer Renderer. Ebenso erlaubt es mental Images® MetaSLTM (in Verbindung mit der Mental Mill®-Anwendung) Nutzern, einen Shader einmal zu schreiben und dann den Shader in einer für das Rendern geeignete Sprache zu übersetzen. Jedoch geht die MetaSLTM-Lösung von der Annahme aus, dass dieselbe Implementierung für mehrere Render-Maschinen verwendet werden kann. Das ist in der Regel nicht der Fall. Es ist unwahrscheinlich, dass eine Material-Implementierung, die für einen Raytracer geschrieben wurde, in einem Abtastzeilen-Renderer oder einem Hardware-Renderer läuft oder gut funktioniert. Die MetaSLTM-Lösung verlangt auch von den Programmierern die Verwendung einer spezifischen abstrakten Sprache anstelle der nativen Renderer-API.
  • Dementsprechend besteht auf diesem technischen Gebiet nach wie vor Bedarf an einem rendereragnostischen Verfahren zum Repräsentieren von Materialien, das in mehreren Render-Maschinen implementiert ist.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Ausführungsformen der Erfindung stellen ein rendereragnostisches Verfahren zum Repräsentieren von Materialien unabhängig von einer zugrundeliegenden Render-Maschine bereit. Vorteilhafterweise mögen Materialien-Bibliotheken um neue Materialien zum Rendern mit einer vorhandenen Render-Maschine und -Implementierung erweitert werden. Es mögen auch neue Render-Maschinen und -Implementierungen für vorhandene Materialien hinzugefügt werden. Eine Implementierung eines bestimmten Materials mag speziell für jede zugrundeliegende Render-Maschine angepasst werden. Zum Beispiel mag jede Implementierung in der nativen Sprache geschrieben werden, die einer bestimmten Render-Maschine zugeordnet ist, wodurch sowohl die Effizienz als auch die Render-Qualität optimiert werden. Somit mag, bei Laufzeit, anstatt das Rendern darauf zu beschränken, auf einer vorgegebenen Render-Maschine ausgeführt zu werden, die Render-Anwendung effizient und bequem das Rendern eine Grafikszene auf einer Mehrzahl von Render-Maschinen oder -Implementierungen entsprechend der Nutzer-Präferenz verwalten.
  • Eine Ausführungsform der Erfindung enthält ein Verfahren zum Rendern einer Grafikszene. Das Verfahren mag allgemein ein Zugreifen auf eine Grafikszenen-Datei, die einen Satz Geometrie enthält, und Anzeigen eines Satzes Materialparameter, die einem ersten Material zugeordnet sind, das in einem Satz Materialien enthalten ist, enthalten. Jeder Materialparameter mag ein charakteristisches Merkmal des ersten Materials spezifizieren, das in einer Render-Operation zu verwenden ist, in der das erste Material auf Geometrie angewendet wird, die in der Szene enthalten ist. Das Verfahren mag des Weiteren ein Empfangen einer Auswahl eines Parameterwertes für jeden Materialparameter in dem Satz Materialparameter, Übersetzen der Parameterwerte für das erste Material in ein Format, das einer ersten Render-Implementierung zugeordnet ist, und Rendern der Geometrie, auf die das erste Material angewendet wird, unter Verwendung der ersten Render-Implementierung und der übersetzten Parameterwerte enthalten.
  • Eine weitere Ausführungsform der Erfindung enthält ein Verfahren zum Erstellen von Materialien, die auf Geometrie innerhalb einer Grafikszene angewendet werden mögen. Das Verfahren mag allgemein das Laden einer Materialien-Bibliothek enthalten, die eine Definition für jedes einer Mehrzahl von Materialien enthält. Die Definition für jedes Material mag einen Satz streng typisierter Parameter enthalten, die kennzeichnende Merkmale eines Materials darstellen, und eine oder mehrere Render-Implementierungen spezifizieren, die dem Material zugeordnet sind. Das Verfahren mag des Weiteren ein Empfangen einer Auswahl eines ersten Materials aus der Materialien-Bibliothek, Empfangen einer Modifikation der Definition des ersten Materials, und Speichern des modifizierten ersten Materials in der Materialien-Bibliothek, zusätzlich zu dem ersten Material, enthalten.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockschaubild, das Komponenten einer Render-Anwendung veranschaulicht, die dafür konfiguriert ist, ein rendereragnostisches Verfahren zum Repräsentieren von Materialien unabhängig von einer zugrundeliegenden Render-Maschine gemäß einer Ausführungsform der Erfindung auszuführen.
  • 2 ist eine Konzeptzeichnung, die Komponenten eines Systems, das zum Rendern einer Grafikszene unter Verwendung eines universellen Render-Frameworks konfiguriert ist, gemäß einer Ausführungsform der Erfindung veranschaulicht.
  • 3 ist ein Flussdiagramm, das ein renderagnostisches Verfahren zum Repräsentieren von Materialien unabhängig von einer zugrundeliegenden Render-Maschine gemäß einer Ausführungsform der Erfindung veranschaulicht.
  • 4 ist ein Blockschaubild, das mehrere Implementierungen einer Render-Maschine gemäß einer Ausführungsform der Erfindung veranschaulicht.
  • 5 ist ein Flussdiagramm, das ein Verfahren zum Erstellen neuer Materialien, die von einer vorhandenen Render-Maschine verwendet werden, gemäß einer Ausführungsform der Erfindung veranschaulicht.
  • 6A6C veranschaulichen ein Verfahren zum Erstellen neuer Materialien zur Verwendung mit einer vorhandenen Render-Maschine gemäß einer Ausführungsform der Erfindung.
  • 7 ist ein Screenshot, der eine Benutzerschnittstelle für ein Ziegelmaterial (brick material) gemäß einer Ausführungsform der Erfindung veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • 1 ist ein Blockschaubild, das Komponenten einer Render-Anwendung veranschaulicht, die dafür konfiguriert ist, ein rendereragnostisches Verfahren zum Repräsentieren von Materialien unabhängig von einer zugrundeliegenden Render-Maschine auszuführen, gemäß einer Ausführungsform der Erfindung. Die in 1 veranschaulichten Komponenten mögen Computer-Software-Anwendungen enthalten, die auf vorhandenen Computersystemen, zum Beispiel Desktop-Computern, Server-Computern, Laptop-Computern, Tablet-Computern, Videospielekonsolen und dergleichen, ablaufen. Die im vorliegenden Text beschriebenen Software-Anwendungen sind jedoch nicht auf irgendein bestimmtes Computersystem beschränkt und mögen angepasst werden, um Vorteile aus neuen Computersystemen zu ziehen, die auf den Markt kommen.
  • Außerdem mögen die in 1 veranschaulichten Komponenten als Software-Anwendungen implementiert werden, die auf einem Einzelcomputer-System oder auf verteilten Systemen, die über Computer-Netzwerke wie zum Beispiel Nahbereichsnetze oder große Fernbereichsnetzwerke wie zum Beispiel die Internet kommunizieren, ablaufen. Zum Beispiel mag eine grafische Benutzerschnittstelle 110 ein Softwareprogramm enthalten, das auf einem Client-Computersystem an einem physischen Standort, das mit der Render-Anwendung 105 an einem anderen physischen Standort kommuniziert, abläuft. Des Weiteren mögen in einer Ausführungsform die Render-Anwendung 105 und die grafische Benutzerschnittstelle 110 als ein Anwendungsprogramm (oder -programme) ausgeführt sein, die auf computerlesbaren Medien gespeichert sind, wie zum Beispiel einer CD-ROM, einer DVD-ROM, einem Flashspeichermodul oder einem anderen physischen Speichermedium.
  • Wie gezeigt, enthält ein System 100, ohne darauf beschränkt zu sein, eine Render-Anwendung 105, eine grafische Benutzerschnittstelle 110, eine Szenendatei 120, Benutzereingabevorrichtungen 130 und eine Anzeigevorrichtung 115. Der Fachmann erkennt jedoch, dass die in 1 gezeigten Komponenten vereinfacht sind, um Aspekte der vorliegende Erfindung hervorzuheben, und dass eine typische Render-Anwendung 105 und GUI-Schnittstelle 110 eine breite Vielfalt zusätzlicher Werkzeuge und Features enthalten mögen, die zum Erstellen und Verwalten eines Designs oder einer Zeichnung verwendet werden. Die Render-Anwendung 105 mag dafür konfiguriert sein, es Nutzern zu erlauben, die mit der GUI-Schnittstelle 110 interagieren, eine grafische Szene zu erstellen. Dementsprechend mögen die Render-Anwendung 105 und die GUI-Schnittstelle 110 programmierte Routinen oder Anweisungen enthalten, die es Nutzern erlauben, die Szenendatei 120 zu erzeugen, zu bearbeiten, zu laden und zu speichern. Zu Benutzereingabegeräten 130 mögen ein Mauszeigegerät, eine Tastatur, ein Joystick oder ein Videospiele-Controller gehören, und das Anzeigegerät 115 mag eine Kathodenstrahlröhre oder eine LCD-Anzeige sein.
  • Wie ebenfalls gezeigt, enthält die Szenendatei 120 Geometrie 122 und Materialien 124. Die Geometrie 122 definiert die 3D-Struktur oder -Gestalt von Elementen, die in einer Szene enthalten sind. Zum Beispiel die Gestalt eines Gebäudes oder eines Menschen. Typischerweise wird die Geometrie 122 als eine Zusammenstellung von Polygonen repräsentiert, die in einem dreidimensionalen Raum definiert sind. Render-Anwendungen 105 verleihen Nutzern bekanntlich häufig die Fähigkeit, Materialien 124 auf die Geometrie 122 in der Szenendatei 120 anzuwenden. Ein Material 124 ist ein Satz wiederverwendbarer Aussehensattribute. Das Verwenden vordefinierter Materialien 124 aus einer Bibliothek von Materialien erlaubt es Nutzern, rasch die Anmutung (look and feel) einer Szene zu verändern. Beispiele von Materialien 124 beinhalten Beton, Ziegel, Wandanstrich oder sonstige Texturen, Farben oder Erscheinungsbilder. Materialien 124 sind nicht auf 2D beschränkt und mögen auch volumetrisch sein, wie zum Beispiel Rauschen und Nebel.
  • Die grafische Benutzerschnittstelle 110 stellt Werkzeuge bereit, die dafür verwendet werden, die Szenendatei 120 mittels der Render-Anwendung 105 zu manipulieren. Wie in 1 gezeigt, mag die grafische Benutzerschnittstelle 110 Materialparameter-Bearbeitungswerkzeuge 112 und Rendermaschinen-Auswahlwerkzeuge 114 enthalten. Der Fachmann erkennt jedoch, dass die Werkzeuge der in 1 gezeigten GUI-Schnittstelle 110 vereinfacht sind, um Aspekte der vorliegenden Erfindung hervorzuheben, und dass eine typische Render-Anwendung 105 und GUI-Schnittstelle 110 eine breite Vielfalt an zusätzlichen Werkzeugen und Feature enthalten mögen, die zum Erstellen und Manipulieren der Szenendatei 120 verwendet werden.
  • Die Materialparameter-Bearbeitungswerkzeuge 112 mögen grafische Benutzerschnittstellenelemente bereitstellen, die es einem Nutzer erlauben, die Materialien 124 zu bearbeiten, die auf eine bestimmte Zusammenstellung von Geometrie 122 innerhalb einer Szene angewendet werden. Die Materialparameter-Bearbeitungswerkzeuge 112 mögen es dem Nutzer erlauben, physische, Anzeige- und Meta-Eigenschaften des Materials 124, die im vorliegenden Text allgemein als Materialparameter bezeichnet werden, zu definieren und zu modifizieren, das auf die konkrete Geometrie 122 in der Szenendatei 120 angewendet werden soll. Zu Beispielen von Materialparametern gehören Liniendicke (stroke weight), Überschreitung (overshoot), Beabstandung, Papiertyp, Härte, Dunkelheit, Winkel, Bogen, Transparenz, Textur, Farbe, Farbvariation oder irgendwelche andere Parameter, die dafür verwendet werden, die physischen, Anzeige- und Meta-Eigenschaften eines Materials 124 zu steuern, das auf die Geometrie 122 innerhalb einer Szene angewendet wird. Auf der Basis des dargestellten Materials 124 mögen verschiedene Materialparameter implementiert werden. Zum Beispiel könnte ein Material 124, das Ziegelsteine darstellt, Höhen-, Breiten- und Mörteldickenparameter enthalten, wohingegen ein Material 124, das Wandanstrich darstellt, Farb- und Oberflächenbeschaffenheitsparameter enthalten könnte.
  • In einer Ausführungsform mögen die Rendermaschinen-Auswahlwerkzeuge 114 grafische Benutzerschnittstellenelemente bereitstellen, die es einem Nutzer erlauben, eine bestimmte Rendermaschinenimplementierung zum Rendern von Abschnitten der Geometrie 122 aus der Szenendatei 120 auszuwählen. Jede Implementierung implementiert ein bestimmtes Material für eine bestimmte Render-Maschine. Des Weiteren mag eine Implementierung, die für eine bestimmte Render-Maschine geschrieben wurde, unter Verwendung einer nativen Sprache geschrieben werden, die durch diese Render-Maschine verwendet wird, ohne die Benutzerschnittstelle zu modifizieren, die dem Nutzer für dieses Material präsentiert wird. Nehmen wir zum Beispiel an, dass die Render-Anwendung 105 mit drei Render-Maschinen konfiguriert ist, von denen jede in der Lage ist, ein bestimmtes Material zu rendern. Jede Render-Maschine könnte zwei Implementierungen zum Rendern des Materials bereitstellen: eine erste Implementierung mit hoher Geschwindigkeit und geringer Qualität und eine zweite Implementierung mit geringer Geschwindigkeit und hoher Qualität. In diesem Beispiel gibt es insgesamt sechs Implementierungen, die in der Lage sind, das bestimmte Material zu rendern. In einem solchen Fall erlauben es die Rendermaschinen-Auswahlwerkzeuge 114 dem Nutzer auszuwählen, welche Implementierung zum Rendern eines bestimmten Bildes aus einer Liste von verfügbaren Implementierungen zu verwenden ist.
  • In einer weiteren Ausführungsform mögen die Rendermaschinen-Auswahlwerkzeuge 114 automatisch auf der Basis eines vom Nutzer ausgewählten Kontexts, vom Nutzer ausgewählter Präferenzen oder eines vom Nutzer ausgewählten Profils auswählen, welche Render-Implementierung zum Rendern zu verwenden ist. Zum Beispiel mag ein Nutzer zwischen Rendern ”von hoher Qualität” und Rendern ”von geringer Qualität” auswählen, und die Render-Anwendung 105 bestimmt, welche Render-Implementierung zum Rendern der Szene die geeignetste ist.
  • 2 ist eine Konzeptzeichnung, die Komponenten eines Systems, das zum Rendern einer Grafikszene unter Verwendung eines universellen Render-Frameworks 200 konfiguriert ist, gemäß einer Ausführungsform der Erfindung veranschaulicht. Wie gezeigt, mag eine Grafik-Anwendung mit einem Render-Framework 200 konfiguriert sein, welches vier Komponenten aufweist,: eine Zusammenstellung von Benutzerschnittstellenobjekten 202, 252, eine Zusammenstellung von Materialobjekten 204, 254, eine Zusammenstellung von Implementierungsobjekten 206, 256 für jedes Materialobjekt 204, 254 und eine Zusammenstellung von zugrundeliegenden (underlying) Rendermaschinenimplementierungen 208. Die zugrundeliegenden Rendermaschinenimplementierungen 208 mögen softwaregestützt (zum Beispiel Mental Ray und RenderMan) sowie Grafik-APIs (zum Beispiel OpenGL und DirectX) sein, die zum Steuern verschiedener Hardware-Render-Pipelines verwendet werden.
  • Jedes Materialobjekt 204, 254 stellt eine andere Materialklasse dar, die in einer Szene gerendert werden mag. Zu gängigen Beispielen von Materialien, die durch Materialobjekte 204, 254 dargestellt werden, gehören ein Material einer gestrichenen Wand, Betonmaterialien, Metallmaterialien, Glasmaterialien und Wassermaterialien usw. In einer Ausführungsform mag jedes Materialobjekt 204, 254 streng typisierte Parameter enthalten, welche die relevanten kennzeichnenden Merkmale eines bestimmten Materials repräsentieren. Zum Beispiel könnte ein Materialobjekt 204, 254, das eine gestrichene Wandoberfläche darstellt, Parameter für Farbe, Auftrags- oder Bürstentyp und Oberflächenbeschaffenheit (finish) enthalten. Durch starkes Typisieren der Parameter auf die kennzeichnenden Merkmale des Materialobjekts können Nutzer mühelos die kennzeichnenden Merkmale identifizieren, die beim Rendern eines bestimmten Materialtyps zu verwenden sind, ohne die Besonderheiten einer zugrundeliegenden Render-Maschine verstehen zu müssen oder zu verstehen, wie die zugrundeliegenden Render-Maschinen zu konfigurieren sind, um ein gewünschtes Aussehen für Oberflächen in einem gerenderten Bild hervorzubringen.
  • Durch starkes Typisieren der Parameter auf die kennzeichnenden Merkmale des Materialobjekts 204, 254 mögen außerdem die Benutzerschnittstellenobjekte 202, 252 dem Nutzer die entsprechenden Benutzerschnittstellenkonstrukte anbieten, und zwar unabhängig von dem zugrundeliegenden Implementierungsobjekt 206 oder den zugrundeliegenden Rendermaschinenimplementierungen. Zum Beispiel – unter Fortführung des Beispiels eines Materialobjekts, das eine gestrichene Wandoberfläche darstellt – mag das Benutzerschnittstellenobjekt 202 dem Nutzer einen Farbtypparameter unter Verwendung von Schnittstellenelementen anbieten, die es einem Nutzer erlauben, einen RGB-Farbwert, eine Codeverweis zu einem Herstellerkatalog oder sogar gesampelte Spektralwerte zu spezifizieren. Gleichermaßen mögen die Benutzerschnittstellenobjekte 202, 252 dem Nutzer Dropdown-Listen für die Anwendungstyp- und Oberflächenbeschaffenheitsparameter anbieten. Diese Dropdown-Listen könnten Werte für eine gestrichene Oberfläche anbieten, mit denen ein Architekt oder Designer vertraut ist, wie zum Beispiel mit der Farbrolle aufgetragen, aufgesprüht, mit dem Pinsel aufgetragen, matt, Hochglanz, Seidenglanz usw. Durch Entkoppeln der Benutzerschnittstelle von dem Material ermöglicht es das Render-Framework verschiedenen Anwendungen, die Benutzerschnittstelle an die Fertigkeiten des Nutzers anzupassen. Zum Beispiel wird ein typischer Nutzer von Autodesk® Revit® es vorziehen, Farben aus einem Katalog einzugeben, während ein Nutzer von Autodesk® 3ds Max® es vorziehen mag, RGB-Werte einzugeben.
  • Die Implementierungsobjekte 206, 256 bilden eine Schnittstelle zwischen einem bestimmten Material 204, 254 und einer bestimmten Render-Maschine 208. Allgemein sind die Implementierungsobjekte 206, 256 dafür konfiguriert, Werte für die streng typisierten Parameter zu empfangen und diese Werte auch in eine geeignete Form für eine der Rendermaschinenimplementierungen zu übersetzen, um einen gewünschten Render-Effekt zu erreichen. Die Übersetzung mag ein einfaches Hindurchlassen sein, wie zum Beispiel im Fall des Durchlassens von RGB-Farbwerten, aber es kann auch ein Mappen von einem Wert auf einen anderen sein. Des Weiteren mag das zugrundeliegende Implementierungsobjekt 206, 256, je nach dem gewünschten Render-Effekt, mehrere Parameter aus einem einzelnen Materialparameter erzeugen oder mag Bibliotheken, Dateien, Shader-Programme, Texturen, Render-Parameter oder irgendwelche andere Werte identifizieren, die durch eine bestimmten Render-Maschine verwendet werden, um einen gewünschten Effekt zu erreichen. Durch Entkoppeln der Render-Maschine 208 von den Materialien 204, 254 mag der universelle Render-Rahmen auf einfache Weise um neue Render-Maschinen 208 erweitert werden, indem die entsprechenden Implementierungsobjekte 206, 256 hinzugefügt werden, um es einer neuen Render-Maschine 208 zu gestatten, vorhandene Materialien 204, 254 zu rendern, die dem Nutzer über die Benutzerobjektschnittstelle 202, 252 angeboten werden. Des Weiteren ist das universelle Render-Framework auch dafür ausgelegt, dass er ohne Weiteres um neue Materialien für vorhandene Render-Maschinen erweitert werden kann, wie ausführlicher in den 5 und 6A6C beschrieben ist.
  • 3 ist ein Flussdiagramm, das ein renderagnostisches Verfahren zum Repräsentieren von Materialien unabhängig von einer zugrundeliegenden Render-Maschine gemäß einer Ausführungsform der Erfindung veranschaulicht. Der Fachmann versteht, dass, obgleich das Verfahren in Verbindung mit den Systemen der 1 und 2 beschrieben wird, jedes beliebige System, das dafür konfiguriert ist, die Schritte des in 3 veranschaulichten Verfahrens, in irgendeiner Reihenfolge, auszuführen, innerhalb des Geltungsbereichs der vorliegenden Erfindung liegt. Wie gezeigt, beginnt das Verfahren 300 bei Schritt 302, wo die Grafik-Anwendung eine Grafikszenen-Datei lädt, die Geometrie und Materialien, die der Geometrie zugeordnet sind, enthält. In einer Ausführungsform ist jedes Objekt in einer Grafikszene aus einem oder mehreren Stücken Geometrie zusammengesetzt, zum Beispiel einer Zusammenstellung von Dreiecken oder Polygonen. Jedem Stück Geometrie mag auch ein Material zugeordnet sein, das zum Rendern dieses Stücks Geometrie zu verwenden ist.
  • Bei Schritt 304 zeigt die Render-Anwendung editierbare Materialparameter für ein erstes Material an. Wie oben besprochen, mag jedes Material unterschiedliche editierbare Parameter aufweisen, basierend auf den kennzeichnenden Merkmalen des Materials.
  • Bei Schritt 306 erhält die Render-Anwendung Nutzereingaben von Materialparameterwerten für das erste Material. Die Materialparameterwerte mögen numerisch, aus einem Dropdown-Menü ausgewählt oder auf sonstige Weise eingegeben werden. Des Weiteren mögen in einer Ausführungsform die Materialparameterwerte auf standardmäßige Vorgabewerte für ein bestimmtes Material voreingestellt sein und dann durch den Nutzer modifiziert werden, um den gewünschten Effekt zu erreichen.
  • Bei Schritt 308 wählt die Render-Anwendung eine Rendermaschinenimplementierung aus, die mit dem ersten Material und den bei Schritt 306 übermittelten Materialparameterwerten kompatibel ist. Wie oben beschrieben, mögen mehrere Render-Maschinen und mehrere Render-Implementierungen für jede Render-Maschine zum Rendern des ersten Materials verfügbar sein. In einer Ausführungsform mag der Nutzer die zu verwendende Implementierung und Render-Maschine auf der Grundlage dessen auswählen, welche Implementierungen des ersten Materials für einen Satz verfügbarer Render-Maschinen verfügbar sind. Alternativ mag die Render-Anwendung dafür konfiguriert sein, eine standardmäßig voreingestellte Auswahl (oder Hierarchie von Auswahlen) zu verwenden, um auszuwählen, welche Implementierung zum Rendern des ersten Materials zu verwenden ist. Weiterhin alternativ mag die Render-Anwendung auf der Basis eines vom Nutzer ausgewählten Kontexts ausgewählt werden. Zum Beispiel mag der Nutzer Rendern ”von hoher Qualität” oder Rendern ”von geringer Qualität” auswählen, und die Render-Anwendung bestimmt die entsprechende Render-Implementierung, die beim Rendern zu verwenden ist.
  • In einer weiteren Ausführungsform mag die Render-Anwendung für jedes zu rendernde Material eine unterschiedliche Render-Implementierung auswählen. Auf der Basis des Kontexts, in dem der Nutzer rendert, mag die Render-Anwendung eine entsprechende Render-Maschine und -Implementierung auswählen. Wenn zum Beispiel eine interaktive Anwendung gerendert wird und in eine interaktive Ansicht hinein gerendert wird, so mag die Render-Anwendung automatisch die schnellste Render-Implementierung mit der geringsten Qualität auswählen. Gleichermaßen mag, wenn offline gerendert wird, die Render-Anwendung die Implementierung mit der höchsten Qualität auswählen, weil die Render-Zeit ein weniger bedeutender Faktor ist.
  • Bei Schritt 310 übersetzt die Render-Anwendung die Materialparameterwerte in ein Format, das zur Verwendung mit der bei Schritt 308 ausgewählten Render-Implementierung benötigt wird. Zum Beispiel mögen die in 2 gezeigten Implementierungsobjekte 206, 256 eine Übersetzungstabelle verwenden, die von den streng typisierten Materialparameterwerten in die entsprechenden Werte hinein abbildet, die durch die bei Schritt 308 ausgewählte Render-Implementierung verwendet werden. Bei Schritt 312 rendert die Render-Anwendung die Grafikszenen-Datei unter Verwendung der ausgewählten Render-Maschine. Wie oben beschrieben, mag jedes Material, das für Abschnitte einer Szene spezifiziert wurde, unter Verwendung einer anderen Render-Implementierung gerendert werden.
  • 4 ist ein Blockschaubild, das mehrere Render-Implementierungen einer einzelnen Render-Maschine gemäß einer Ausführungsform der Erfindung veranschaulicht. Anschaulich enthält die Render-Maschine 400 erste Render-Implementierung 402 und eine zweite Render-Implementierung 404. Wie gezeigt, stellt die erste Render-Implementierung 402 eine Render-Implementierung von geringer Qualität und hoher Geschwindigkeit für ein bestimmtes Material dar. Diese Implementierung mag zweckmäßig sein, wenn in Echtzeit gerendert wird, zum Beispiel um dem Nutzer einen raschen Eindruck vom Aussehen eines bestimmten Materials innerhalb einer Szene zu verschaffen. Die zweite Render-Implementierung 404 mag eine Render-Implementierung von hoher Qualität und geringer Geschwindigkeit sein. Diese Implementierung mag zweckmäßig sein, wenn eine endgültige Version einer Szene gerendert wird, wodurch Ergebnisse mit höherer Auflösung erhalten werden.
  • 5 ist ein Flussdiagramm, das ein Verfahren 500 zum Erstellen neuer Materialien zur Verwendung mit einer vorhandenen Render-Maschine gemäß einer Ausführungsform der Erfindung veranschaulicht. Der Fachmann versteht, dass, obgleich das Verfahren in Verbindung mit den Systemen der 1 und 2 beschrieben wird, jedes beliebige System, das dafür konfiguriert ist, die Schritte des in 5 veranschaulichten Verfahrens, in irgendeiner Reihenfolge, auszuführen, innerhalb des Geltungsbereichs der vorliegenden Erfindung liegt.
  • Bei Schritt 502 lädt die Render-Anwendung eine Materialien-Bibliothek. Die Materialien-Bibliothek mag eine Mehrzahl von Materialien enthalten, die unter Verwendung einer bestimmten Render-Implementierung zu rendern sind. Zum Beispiel mag die Materialien-Bibliothek Materialien zum Rendern von Ziegelsteinen, Beton, Sand, Granit und Kalkstein enthalten. Des Weiteren mag jedes Material einer oder mehreren Implementierungen zugeordnet sein, die dafür verwendet werden, dieses Material auf einer bestimmten Render-Maschine zu rendern. Wie dargelegt, mag ein Material mehrere Implementierungen haben, um verschiedene Stufen der Render-Qualität zu erhalten oder um unterschiedliche Versionen einer Implementierung zu unterstützen. Dies mag nützlich sein, wenn unterschiedliche Techniken von der zugrundeliegenden Render-Maschine verwendet werden, um das gleiche Material zu rendern. In einem solchen Fall mag jede Implementierung die streng typisierten Materialparameter unterschiedlich mappen, so wie es für die unterschiedlichen zugrundeliegenden Render-Techniken zweckmäßig ist.
  • Bei Schritt 504 wird ein erstes Material aus der Bibliothek modifiziert. Die Modifikation mag in Reaktion auf Nutzereingaben erfolgen. Zum Beispiel mag die Modifikation das Variieren der Parameterwerte des ersten Materials, das Entfernen eines Parameters von dem ersten Material oder das Hinzufügen eines Parameters zu dem ersten Material enthalten. Die unten beschriebenen 6A6C veranschaulichen zusätzliche Beispiele des Modifizierens eines Materials. Bei Schritt 506 speichert die Render-Anwendung das modifizierte erste Material als ein zweites Material in der Materialien-Bibliothek. Auf diese Weise wird ein neues Material zu der Materialien-Bibliothek für die konkrete Render-Implementierung hinzugefügt.
  • Die 6A6C veranschaulichen ein Verfahren zum Erstellen neuer Materialien zur Verwendung mit einer vorhandenen Render-Maschine gemäß einer Ausführungsform der Erfindung. Die in den 6A, 6B bzw. 6C gezeigten Verfahrensschritte 602, 604 und 606 veranschaulichen andere Beispiele von Modifikationen vorhandener Materialien (Schritt 504 von 5). Die in den 6A6C beschriebenen Modifikationen sind jeweils für einen Nutzer einfach genug, der über keine Programmiererfahrung verfügt. In 6A werden bei Schritt 602 die Parameterwerte des ersten Materials modifiziert. Die Modifikation mag in Reaktion auf Nutzereingaben erfolgen. Zum Beispiel mag ein erstes Material rote Wandfarbe mit hochglänzender Oberfläche sein, die so modifiziert wird, dass sie eine rotorange Farbe und eine matte Oberflächenbeschaffenheit aufweist. Das modifizierte erste Material mag dann als ein zweites Material in Schritt 506 gespeichert werden. In dem Wandfarbenbeispiel kann das rotorange, matte Material dann wieder zurück in die Bibliothek gespeichert werden.
  • In 6B wird bei Schritt 604 ein Materialparameter von dem ersten Material entfernt. Das Entfernen mag in Reaktion auf Nutzereingaben erfolgen. Das modifizierte erste Material mag dann als ein zweites Material in Schritt 506 gespeichert werden. Zum Beispiel mag ein erstes Material grüne Wandfarbe mit hochglänzender Oberfläche sein, das so modifiziert wird, dass der ”Oberflächen”-Parameter entfernt wird. Die bei Schritt 604 ausgeführte Modifikation erzeugt praktisch ein neues Material, wo irgendein Materialparameter nicht mehr geändert werden kann. Das Entfernen des Materialparameters aus den durch den Nutzer bearbeitbaren Parametern bewirkt, dass dieser Materialparameter ungeachtet sonstiger Modifikationen, die an den anderen Materialparametern vorgenommen werden, konstant ist. Daher bleiben, in dem obigen Beispiel, wo der ”Oberflächen”-Parameter entfernt wurde, die anderen Parameter bearbeitbar, aber die Oberflächenbeschaffenheit ist konstant auf ”Hochglanz” gesetzt.
  • In 6C wird bei Schritt 606 ein erstes Material mit einem anderen Material kombiniert, um ein modifiziertes erstes Material zu erzeugen. Die Kombination mag in Reaktion auf Nutzereingaben erfolgen. Das modifizierte erste Material mag dann als ein zweites Material in Schritt 506 gespeichert werden. Die in 6C beschriebene Modifikation erzeugt ein neues Material, das die Parameter und kennzeichnenden Merkmale der zwei kombinierten Materialien kombiniert. Zum Beispiel mag das erste Material ein Wandfarbenmaterial sein, und das zweite Material mag ein Bildmaterial sein, das ein Bild über eine Oberfläche hinweg kachelt. Wenn die zwei Materialien kombiniert werden, so bildet das resultierende Material ein Wandfarbenmaterial, das alle typischen Wandfarbenparameter aufweist, die, wenn sie auf eine Oberfläche angewendet werden, als eine Wandfarbe gerendert werden mögen, die das Bild des zweiten Materials kachelt.
  • In einer (nicht gezeigten) weiteren Ausführungsform mag ein Nutzer ein völlig neues Materialobjekt erstellen. Zum Beispiel mag ein Nutzer eine prozedurale Textur unter Verwendung einer Programmiersprache, zum Beispiel C++ oder einer high Level Shading-Sprache (zum Beispiel HLSL), schreiben und den Code kompilieren, um ein völlig neues Material zu erstellen. In einem solchen Fall mag der Nutzer auch ein entsprechendes Implementierungsobjekt schreiben, welches das neue Materialobjekt und die neuen Eingabeparameter auf Parameter mappt, die für eine oder mehrere zugrundeliegende Render-Maschinen geeignet sind. Das neue Materialienobjekt mag dann einer Materialien-Bibliothek hinzugefügt werden. Das nächste Mal, wenn die Render-Anwendung geladen wird, ist das neue Material zur Verwendung in Render-Operationen verfügbar.
  • Vorteilhafterweise erlaubt es das in den 5 und 6A6C beschriebene Verfahren Nutzern, unterschiedliche Materialien durch Bereitstellen von Konstrukten der obersten Ebene zu erstellen. Des Weiteren mögen Nutzer neue Materialien aus jenen Konstrukten erstellen und sie verschiedenen Render-Implementierungen zuordnen. Auf diese Weise mögen Nutzer die Render-Anwendung mittels Erstellens neuer Materialien für eine vorhandene Render-Implementierung erweitern. Darüber hinaus mögen Nutzer die Render-Anwendung um neue Render-Implementierungen und -Maschinen für ein vorhandenes Material erweitern. Somit erlaubt es das Render-Framework, jede Render-Maschine separat und zu unterschiedlichen Zeitpunkten zu installieren.
  • 7 ist ein Screenshot, der eine beispielhafte Benutzerschnittstelle 700 für ein Ziegelmaterial gemäß einer Ausführungsform der Erfindung veranschaulicht. In diesem Beispiel zeigt die Benutzerschnittstelle 700 drei Kategorien an: eine Ziegelstein-Kategorie 702, eine Mörtel-Kategorie 704 und eine Anordnungs-Kategorie 706. Erläuternd stellt die Ziegelstein-Kategorie 702 bearbeitbare Materialparameter von Farbe, Farbvariation, Verkleidung (facing), Ziegelsteinlänge und Ziegelsteinhöhe bereit. Die Mörtel-Kategorie 704 stellt bearbeitbare Materialparameter von Farbe und Mörteldicke bereit. Die Anordnungs-Kategorie 706 stellt bearbeitbare Materialparameter von Ziegelsteinmuster und Schichtversatz bereit. Der Fachmann erkennt, dass, obgleich die Ziegelmaterial-Benutzerschnittstelle 700 mit diesen spezifischen bearbeitbaren Nutzer-Parametern beschrieben ist, auch andere Nutzer-Parameter innerhalb des Geltungsbereichs der vorliegenden Erfindung verwendet werden mögen. Allgemeiner ausgedrückt, und wie oben beschrieben, mögen die bearbeitbaren Materialparameter sowohl streng typisiert als auch speziell an die Eigenschaften des tatsächlichen Materials, das durch ein bestimmtes Materialobjekt dargestellt wird, angepasst sein. Somit mag ein Nutzer in verschiedenen Ausführungsformen einen gewünschten Render-Effekt durch Modifizieren der in 7 gezeigten Materialparameter erreichen. Wie oben beschrieben, mag der Nutzer ein neues Ziegelmaterial (d. h. ”Ziegelstein 2”) mittels des Verfahrens der 5 und 6A6C erzeugen.
  • Wie beschrieben, stellen Ausführungsformen der Erfindung ein rendereragnostisches Verfahren zum Repräsentieren von Materialien unabhängig von einer zugrundeliegenden Render-Maschine bereit. Vorteilhafterweise mögen Material-Bibliotheken um neue Materialien zum Rendern mit einer vorhandenen Render-Maschine und -Implementierung erweitert werden. Des Weiteren mögen neue Render-Maschinen und -Implementierungen für vorhandene Materialien hinzugefügt werden. Somit mag, bei Laufzeit, anstatt das Rendern darauf zu beschränken, auf einer vorgegebenen Render-Maschine ausgeführt zu werden, die Render-Anwendung effizient und bequem das Rendern eine Grafikszene auf einer Mehrzahl von Render-Maschinen oder -Implementierungen verwalten. Des Weiteren mag, durch Bereitstellen eines gemeinsamen Front-End für ein bestimmtes Material unter Verwendung eines Schnittstellenobjekts und eines Satzes streng typisierter Parameter für dieses Material, jede beliebige Anzahl unterschiedlicher Implementierungen für eine bestimmte Render-Maschine (oder unterschiedliche Render-Maschinen) verwendet werden, um dieses Material zu rendern, ohne dass ein Nutzer jede konkrete Implementierung verstehen muss oder lernen muss, wie man jede unabhängige Render-Maschine verwendet. Stattdessen präsentiert das universelle Front-End einfach die verfügbaren Materialien unter Verwendung der Parameter, die für jedes konkrete Material repräsentativ sind. Während des Renderns wird die Implementierung jedes konkreten Materials verwendet, um die streng typisierten Parameter des Materialienobjekts in eine Form zu übersetzen, die von einer ausgewählten Render-Maschine benötigt wird.
  • Obgleich das oben Dargelegte Ausführungsformen der vorliegenden Erfindung betrifft, mögen andere und weitere Ausführungsformen der Erfindung ersonnen werden, ohne von ihrem grundlegenden Geltungsbereich abzuweichen. Zum Beispiel mögen Aspekte der vorliegenden Erfindung in Hardware oder Software oder in einer Kombination aus Hardware und Software implementiert werden. Eine Ausführungsform der Erfindung mag als ein Programmprodukt zur Verwendung mit einem Computersystem implementiert werden. Das oder die Programme des Programmprodukts definieren Funktionen der Ausführungsformen (einschließlich der im vorliegenden Text beschriebenen Verfahren) und können auf einer Vielzahl verschiedener computerlesbarer Speichermedien enthalten sein. Erläuternd gehören zu computerlesbaren Speichermedien beispielsweise, ohne darauf beschränkt zu sein: (i) nicht-beschreibbare Speichermedien (zum Beispiel Nurlesespeichervorrichtungen innerhalb eines Computers, wie zum Beispiel CD-ROM-Disks, die durch ein CD-ROM-Laufwerk gelesen werden können, Flash-Speicher, ROM-Chips oder beliebige Arten von nicht-flüchtigen Festkörper-Halbleiterspeichern), auf denen Informationen dauerhaft gespeichert sind; und (ii) beschreibbare Speichermedien (zum Beispiel Floppy-Disks innerhalb eines Diskettenlaufwerks oder ein Festplattenlaufwerk oder beliebige Arten von Festkörper-Direktzugriffs-Halbleiterspeichern), auf denen änderbare Informationen gespeichert sind. Solche computerlesbaren Speichermedien, wenn sie computerlesbare Anweisungen enthalten, welche die Funktionen der vorliegenden Erfindung anweisen, sind Ausführungsformen der vorliegenden Erfindung. Darum wird der Geltungsbereich der vorliegenden Erfindung durch die folgenden Ansprüche bestimmt.

Claims (24)

  1. Verfahren zum Rendern einer Grafikszene, wobei das Verfahren aufweist: Zugreifen auf eine Grafikszenen-Datei, die einen Satz Geometrie enthält; Anzeigen eines Satzes Materialparameter, die einem ersten Material zugeordnet sind, das in einem Satz Materialien enthalten ist, wobei jeder Materialparameter ein charakteristisches Merkmal des ersten Materials spezifiziert, das in einer Render-Operation zu verwenden ist, in der das erste Material auf eine Geometrie angewendet wird; Empfangen einer Auswahl eines Parameterwertes für jeden Materialparameter in dem Satz Materialparameter; Übersetzen der Parameterwerte für das erste Material in ein Format, das einer ersten Render-Implementierung zugeordnet ist; und Rendern der Geometrie, auf die das erste Material angewendet wird, unter Verwendung der ersten Render-Implementierung und der übersetzten Parameterwerte.
  2. Verfahren nach Anspruch 1, das des Weiteren aufweist: Auswählen einer zweiten Render-Implementierung für das erste Material; Übersetzen der Parameterwerte für das erste Material in ein Format, das der zweiten Render-Implementierung zugeordnet ist; und Rendern der Geometrie, auf die das erste Material angewendet wird, unter Verwendung der ausgewählten zweiten Render-Implementierung und der übersetzten Parameterwerte für das Format, das der zweiten Render-Implementierung zugeordnet ist.
  3. Verfahren nach Anspruch 2, wobei die erste Render-Implementierung eine Render-Implementierung von hoher Qualität und geringer Geschwindigkeit des ersten Materials ist, zugeordnet einer ersten Render-Maschine.
  4. Verfahren nach Anspruch 3, wobei die zweite Render-Implementierung eine Render-Implementierung von geringer Qualität und hoher Geschwindigkeit des ersten Materials ist, zugeordnet der ersten Render-Maschine.
  5. Verfahren nach Anspruch 1, wobei die erste Render-Implementierung in Reaktion auf Nutzereingaben bestimmt wird, die eine Auswahl der ersten Render-Implementierung aus einer Liste von Render-Implementierungen des ersten Materials spezifizieren.
  6. Verfahren nach Anspruch 1, wobei die erste Render-Implementierung in Reaktion auf einen Satz nutzerspezifizierter Kriterien zum Rendern der Szene bestimmt wird.
  7. Verfahren nach Anspruch 1, wobei die erste Render-Implementierung auf der Basis eines durch einen Nutzer spezifizierten Render-Kontexts bestimmt wird.
  8. Verfahren nach Anspruch 1, das des Weiteren den Schritt aufweist, eine oder mehrere Bibliotheken, Dateien, Shader-Programme oder Texturen zu identifizieren, die durch die erste Render-Implementierung beim Rendern der Geometrie verwendet werden, auf die das erste Material angewendet wird.
  9. Computerlesbares Speichermedium, das Anweisungen speichert, die, wenn sie durch einen Prozessor ausgeführt werden, den Prozessor veranlassen, eine Operation zum Rendern einer Grafikszene auszuführen, indem die Schritte ausgeführt werden: Zugreifen auf eine Grafikszenen-Datei, die einen Satz Geometrie enthält; Anzeigen eines Satzes Materialparameter, die einem ersten Material zugeordnet sind, das in einem Satz Materialien enthalten ist, wobei jeder Materialparameter ein charakteristisches Merkmal des ersten Materials spezifiziert, das in einer Render-Operation zu verwenden ist, in der das erste Material auf eine Geometrie angewendet wird; Empfangen einer Auswahl eines Parameterwertes für jeden Materialparameter in dem Satz Materialparameter; Übersetzen der Parameterwerte für das erste Material in ein Format, das einer ersten Render-Implementierung zugeordnet ist; und Weiterleiten der übersetzten Parameterwerte und der ersten Render-Implementierung zu einer ersten Render-Maschine.
  10. Computerlesbares Speichermedium nach Anspruch 9, wobei die Schritte des Weiteren aufweisen: Auswählen einer zweiten Render-Implementierung für das erste Material; Übersetzen der Parameterwerte für das erste Material in ein Format, das der zweiten Render-Implementierung zugeordnet ist; und Rendern der Geometrie, auf die das erste Material angewendet wird, unter Verwendung der ausgewählten zweiten Render- Implementierung und der übersetzten Parameterwerte für das Format, das der zweiten Render-Implementierung zugeordnet ist.
  11. Computerlesbares Speichermedium nach Anspruch 10, wobei die erste Render-Implementierung eine Render-Implementierung von hoher Qualität und geringer Geschwindigkeit des ersten Materials ist, zugeordnet der ersten Render-Maschine.
  12. Computerlesbares Speichermedium nach Anspruch 11, wobei die zweite Render-Implementierung eine Render-Implementierung von geringer Qualität und hoher Geschwindigkeit des ersten Materials ist, zugeordnet der ersten Render-Maschine.
  13. Computerlesbares Speichermedium nach Anspruch 9, wobei die erste Render-Implementierung in Reaktion auf Nutzereingaben bestimmt wird, die eine Auswahl der ersten Render-Implementierung aus einer Liste von Render-Implementierungen des ersten Materials spezifizieren.
  14. Computerlesbares Speichermedium nach Anspruch 9, wobei die erste Render-Implementierung in Reaktion auf einen Satz nutzerspezifizierter Kriterien zum Rendern der Szene bestimmt wird.
  15. Computerlesbares Speichermedium nach Anspruch 9, wobei die erste Render-Implementierung auf der Basis eines durch einen Nutzer spezifizierten Render-Kontexts bestimmt wird.
  16. Computerlesbares Speichermedium nach Anspruch 9, wobei die Schritte des Weiteren aufweisen: Identifizieren einer oder mehrerer Bibliotheken, Dateien, Shader-Programme oder Texturen, die durch die erste Render- Implementierung zum Rendern der Geometrie verwendet werden, auf die das erste Material angewendet wird; und Weiterleiten der identifizierten einen oder mehreren Bibliotheken, Dateien, Shader-Programme oder Texturen zu der ersten Render-Maschine.
  17. Verfahren zum Rendern einer Grafikszene, aufweisend: Spezifizieren einer Grafikszenen-Datei, die einen Satz Geometrie enthält; und Aufrufen eines Render-Werkzeugs, das durch ein universelles Render-Front-End bereitgestellt wird, wobei das universelle Bender-Front-End konfiguriert ist zum: Anzeigen eines Satzes Materialparameter, die einem ersten Material zugeordnet sind, das in einem Satz Materialien enthalten ist, wobei jeder Materialparameter ein charakteristisches Merkmal des ersten Materials spezifiziert, das in einer Render-Operation zu verwenden ist, in der das erste Material auf eine Geometrie angewendet wird, Empfangen einer Auswahl eines Parameterwertes für jeden Materialparameter in dem Satz Materialparameter, Übersetzen der Parameterwerte für das erste Material in ein Format, das einer ersten Render-Implementierung zugeordnet ist, und Rendern der Geometrie, auf die das erste Material angewendet wird, unter Verwendung der ersten Render-Implementierung und der übersetzten Parameterwerte.
  18. Verfahren nach Anspruch 17, wobei das universelle Render-Front-End des Weiteren konfiguriert ist zum: Auswählen einer zweiten Render-Implementierung für das erste Material; Übersetzen der Parameterwerte für das erste Material in ein Format, das der zweiten Render-Implementierung zugeordnet ist; und Rendern der Geometrie, auf die das erste Material angewendet wird, unter Verwendung der ausgewählten zweiten Render- Implementierung und der übersetzten Parameterwerte für das Format, das der zweiten Render-Implementierung zugeordnet ist.
  19. Verfahren nach Anspruch 18, wobei die erste Render-Implementierung eine Render-Implementierung von hoher Qualität und geringer Geschwindigkeit des ersten Materials ist, zugeordnet einer ersten Render-Maschine.
  20. Verfahren nach Anspruch 19, wobei die zweite Render-Implementierung eine Render-Implementierung von geringer Qualität und hoher Geschwindigkeit des ersten Materials ist, zugeordnet der ersten Render-Maschine.
  21. Verfahren nach Anspruch 17, wobei die erste Render-Implementierung in Reaktion auf Nutzereingaben bestimmt wird, die eine Auswahl der ersten Render-Implementierung aus einer Liste von Render-Implementierungen des ersten Materials spezifizieren.
  22. Verfahren nach Anspruch 17, wobei die erste Render-Implementierung in Reaktion auf einen Satz nutzerspezifizierter Kriterien zum Rendern der Szene bestimmt wird.
  23. Verfahren nach Anspruch 17, wobei die erste Render-Implementierung auf der Basis eines durch einen Nutzer spezifizierten Render-Kontexts bestimmt wird.
  24. Verfahren nach Anspruch 17, wobei das universelle Render-Front-End des Weiteren dafür konfiguriert ist, eine oder mehrere Bibliotheken, Dateien, Shader-Programme oder Texturen zu identifizieren, die durch die erste Render-Implementierung beim Rendern der Geometrie verwendet werden, auf die das erste Material angewendet wird.
DE102009007334A 2008-02-29 2009-02-04 Front-End für universelles Rendering Framework Ceased DE102009007334A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/040,659 2008-02-29
US12/040,659 US8134551B2 (en) 2008-02-29 2008-02-29 Frontend for universal rendering framework

Publications (1)

Publication Number Publication Date
DE102009007334A1 true DE102009007334A1 (de) 2009-11-05

Family

ID=41012824

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009007334A Ceased DE102009007334A1 (de) 2008-02-29 2009-02-04 Front-End für universelles Rendering Framework

Country Status (2)

Country Link
US (1) US8134551B2 (de)
DE (1) DE102009007334A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014214666A1 (de) 2014-07-25 2016-01-28 Bayerische Motoren Werke Aktiengesellschaft Hardwareunabhängiges Anzeigen von graphischen Effekten

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8620635B2 (en) 2008-06-27 2013-12-31 Microsoft Corporation Composition of analytics models
US9778921B2 (en) * 2009-06-02 2017-10-03 Apple Inc. Method for creating, exporting, sharing, and installing graphics functional blocks
US9330503B2 (en) * 2009-06-19 2016-05-03 Microsoft Technology Licensing, Llc Presaging and surfacing interactivity within data visualizations
US8788574B2 (en) 2009-06-19 2014-07-22 Microsoft Corporation Data-driven visualization of pseudo-infinite scenes
US8866818B2 (en) * 2009-06-19 2014-10-21 Microsoft Corporation Composing shapes and data series in geometries
US8692826B2 (en) 2009-06-19 2014-04-08 Brian C. Beckman Solver-based visualization framework
US20100325564A1 (en) * 2009-06-19 2010-12-23 Microsoft Corporation Charts in virtual environments
US20110066897A1 (en) * 2009-09-11 2011-03-17 William Bumgarner Methods and apparatuses for determining permanent memory growth
US9043296B2 (en) 2010-07-30 2015-05-26 Microsoft Technology Licensing, Llc System of providing suggestions based on accessible and contextual information
CN102467565B (zh) * 2010-11-19 2016-05-11 北京奇虎科技有限公司 一种浏览器内核切换的方法
US10565747B2 (en) * 2017-09-06 2020-02-18 Nvidia Corporation Differentiable rendering pipeline for inverse graphics
CN115801746B (zh) * 2022-12-05 2023-09-22 广州南方智能技术有限公司 一种基于分布式的服务器渲染装置及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696892A (en) * 1992-07-10 1997-12-09 The Walt Disney Company Method and apparatus for providing animation in a three-dimensional computer generated virtual world using a succession of textures derived from temporally related source images
US20070195085A1 (en) * 2005-01-27 2007-08-23 Silicon Graphics, Inc. System and method for graphics culling

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520044A (ja) 1991-07-15 1993-01-29 Personal Joho Kankyo Kyokai ユーザインタフエース装置
US5666136A (en) 1991-12-17 1997-09-09 Sony Corporation Audio equipment and method of displaying operation thereof
US5592597A (en) * 1994-02-14 1997-01-07 Parametric Technology Corporation Real-time image generation system for simulating physical paint, drawing media, and feature modeling with 3-D graphics
US6983227B1 (en) 1995-01-17 2006-01-03 Intertech Ventures, Ltd. Virtual models of complex systems
US5710878A (en) * 1995-06-07 1998-01-20 Mccoy; David Scott Method for facilitating material application for a group of objects of a computer graphic
US5886701A (en) 1995-08-04 1999-03-23 Microsoft Corporation Graphics rendering device and method for operating same
KR20000064775A (ko) 1997-01-24 2000-11-06 이데이 노부유끼 도형 데이터 생성 장치, 도형 데이터 생성 방법 및 그 매체
US6484149B1 (en) 1997-10-10 2002-11-19 Microsoft Corporation Systems and methods for viewing product information, and methods for generating web pages
US6128540A (en) 1998-02-20 2000-10-03 Hagen Method Pty. Ltd. Method and computer system for controlling an industrial process using financial analysis
US6456288B1 (en) * 1998-03-31 2002-09-24 Computer Associates Think, Inc. Method and apparatus for building a real time graphic scene database having increased resolution and improved rendering speed
US7023437B1 (en) 1998-07-22 2006-04-04 Nvidia Corporation System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering
WO2000011607A1 (en) 1998-08-20 2000-03-02 Apple Computer, Inc. Deferred shading graphics pipeline processor
US6947037B1 (en) 1998-11-05 2005-09-20 Computer Associates Think, Inc. Method and apparatus for interfacing with intelligent three-dimensional components
US6459435B1 (en) 2000-01-11 2002-10-01 Bluebolt Networks, Inc. Methods, systems and computer program products for generating storyboards of interior design surface treatments for interior spaces
US7065242B2 (en) 2000-03-28 2006-06-20 Viewpoint Corporation System and method of three-dimensional image capture and modeling
US7523411B2 (en) 2000-08-22 2009-04-21 Bruce Carlin Network-linked interactive three-dimensional composition and display of saleable objects in situ in viewer-selected scenes for purposes of object promotion and procurement, and generation of object advertisements
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US6980218B1 (en) 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US20080091491A1 (en) 2002-04-18 2008-04-17 Bdna Corporation Method and/or system for flexible data handling
US7490167B2 (en) * 2002-05-22 2009-02-10 Sony Corporation System and method for platform and language-independent development and delivery of page-based content
GB2404546B (en) 2003-07-25 2005-12-14 Purple Interactive Ltd A method of organising and displaying material content on a display to a viewer
WO2005036331A2 (en) 2003-09-12 2005-04-21 Carlson Software, Inc. Fluvial geomorphic landscape design computer software
US7277572B2 (en) 2003-10-10 2007-10-02 Macpearl Design Llc Three-dimensional interior design system
US7839419B2 (en) * 2003-10-23 2010-11-23 Microsoft Corporation Compositing desktop window manager
US20080094402A1 (en) 2003-11-19 2008-04-24 Reuven Bakalash Computing system having a parallel graphics rendering system employing multiple graphics processing pipelines (GPPLS) dynamically controlled according to time, image and object division modes of parallel operation during the run-time of graphics-based applications running on the computing system
US7069095B2 (en) 2003-12-04 2006-06-27 Hewlett-Packard Development Company, L.P. System and method for populating a computer-aided design program's database with design parameters
US7770159B2 (en) * 2004-10-20 2010-08-03 Microsoft Corporation Virtual types
US7154505B2 (en) 2004-11-11 2006-12-26 Stonecube Limited Method of and apparatus for generating a representation of an object
US7603191B2 (en) 2005-02-16 2009-10-13 Idealab System and method for design of a component
US8195646B2 (en) 2005-04-22 2012-06-05 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US7830390B2 (en) 2005-07-19 2010-11-09 Graphics Properties Holdings, Inc. Color computation of pixels using a plurality of vertex or fragment shader programs
US20070083805A1 (en) 2005-10-12 2007-04-12 General Electric Company Configurable system and method for order entry
US7629985B2 (en) 2006-01-26 2009-12-08 Autodesk, Inc. Method for creation of architectural space objects for area and volume calculation
US7624349B2 (en) 2006-03-21 2009-11-24 Microsoft Corporation Declarative definition enabling graphical designer reuse
US20070233678A1 (en) 2006-04-04 2007-10-04 Bigelow David H System and method for a visual catalog
US20090138113A1 (en) 2006-11-27 2009-05-28 Designin Corporation Systems, methods, and computer program products for home and landscape design
US8253731B2 (en) 2006-11-27 2012-08-28 Designin Corporation Systems, methods, and computer program products for home and landscape design
US9471996B2 (en) * 2008-02-29 2016-10-18 Autodesk, Inc. Method for creating graphical materials for universal rendering framework
US8212806B2 (en) * 2008-04-08 2012-07-03 Autodesk, Inc. File format extensibility for universal rendering framework
US8108360B2 (en) 2008-04-17 2012-01-31 Microsoft Corporation Database object update order determination
US7878148B2 (en) 2008-05-19 2011-02-01 Seth Yin Pao Swenson Pet dish having an extended threaded neck ring and screw-cap lid

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696892A (en) * 1992-07-10 1997-12-09 The Walt Disney Company Method and apparatus for providing animation in a three-dimensional computer generated virtual world using a succession of textures derived from temporally related source images
US20070195085A1 (en) * 2005-01-27 2007-08-23 Silicon Graphics, Inc. System and method for graphics culling

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014214666A1 (de) 2014-07-25 2016-01-28 Bayerische Motoren Werke Aktiengesellschaft Hardwareunabhängiges Anzeigen von graphischen Effekten
WO2016012393A1 (de) 2014-07-25 2016-01-28 Bayerische Motoren Werke Aktiengesellschaft Hardwareunabhängiges anzeigen von graphischen effekten

Also Published As

Publication number Publication date
US8134551B2 (en) 2012-03-13
US20090219284A1 (en) 2009-09-03

Similar Documents

Publication Publication Date Title
DE102009007334A1 (de) Front-End für universelles Rendering Framework
US9471996B2 (en) Method for creating graphical materials for universal rendering framework
DE69832611T2 (de) Computergrafiksystem
DE69632578T2 (de) Computer-grafiksystem zum schaffen und verbessern von texturabbildungssystemen
DE69830767T2 (de) Verfahren und Vorrichtung zum Zusammensetzen geschichteter synthetischer graphischer Filter
DE60311359T2 (de) Vorrichtungen und Verfahren zur kontrollierbaren Texturabtastung
DE69919145T2 (de) Stochastiches detailniveau in einer rechneranimation
DE69828974T2 (de) Verfahren und system zur veränderung und aufbereitung dreidimensionaler animationen in einer nicht-linearen editionsumgebung
DE10296401B4 (de) Verbund-Rendering von 3-D-Graphikobjekten
DE102017007967A1 (de) Verarbeiten und rendern eines dreidimensionalen Modells
DE112004000377B4 (de) Verfahren und Vorrichtung Bildsegmentierung in einer dreidimensionalen Arbeitsumgebung
DE60012917T2 (de) Verfahren und vorrichtung für eine antialiasing-operation auf impliziten kanten
EP2419883A2 (de) Verfahren zur darstellung eines animierten objekts
DE102018005610A1 (de) Diffusionsfärben unter Verwendung von gewichteten Farbpunkten
DE102007036071A1 (de) Verfahren und System zur Fehlerbeseitigung in einer Grafikpipeline-Teileinheit
DE102018001136A1 (de) Interaktive Farbpalettenschnittstelle zum digitalen Malen
DE102013114176A1 (de) Tessellieren von Oberflächendatensegmenten beim kachelbasierten Rendern von Computergrafik
DE102006021118B4 (de) Rendern von anatomischen Strukturen mit ihrem nahen Umgebungsbereich
DE102006023633A1 (de) Gleichzeitige Projektion von mehrfach verzweigten Gefäßen und ihrer Umgebung auf einem einzigen Bild
DE102013017981A1 (de) Optimierung einer Dreieck-Topologie für Pfad-Bilderzeugung
DE102022112888A1 (de) Benutzerschnittstellen und Verfahren zum Erzeugen eines neuen Artefakts auf der Grundlage vorhandener Artefakte
DE69830766T2 (de) Verfahren und Vorrichtung zum Bestimmen des Anwendungsumfangs geschichteter synthetischer graphischer Filter
DE102018007146A1 (de) Ölgemälde-Strichsimulation mittels eines neuronalen Netzwerks
DE19581872B4 (de) Dreidimensionales Graphikaufbereitungssystem
DE102013021709A1 (de) Schablonieren-dann-abdecken- pfadbilderzeugung mit gemeinsamen kanten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection