Blender-Entwicklungspläne

Vielleicht ist Blender das qualitativ hochwertigste Open Source Projekt. Aber die Entwickler hören nicht damit auf und setzen sich ehrgeizige Ziele. Als Nächstes folgt eine Übersetzung eines Artikels, in dem Entwickler Pläne für die Zukunft ihres Produkts teilen.

Bild

In einem früheren Beitrag haben wir einige technische und spezifische Ziele vorgestellt, die wir erreichen möchten. Hier sind sie:

1) Verbessern der Leistung beim Rendern von Code. Wir müssen sicher sein, dass wir die beste Visualisierungsmethode verwenden, die die Verwendung der GPU und der Funktionen maximiert, die nur in neuen Versionen von OpenGL verfügbar sind, wodurch wir eine verbesserte Leistung und Code erzielen können.
2) Darstellung der Materialien im Ansichtsfenster anhand von Knoten und dementsprechend ein neues Materialvisualisierungssystem in Echtzeit (für GLSL-Rendering);
3) Die Verwendung von Compositing im Ansichtsfenster, mit dem Sie Effekte wie DOF, Ambient Occlusion, HDR, Bloom, Flares und Umrisszeichnungen ausführen können.
4) Unterstützung für mobile Geräte ( OpenGL ES ).

Was haben wir zur Zeit?


* Eingeschränktes Compositing (Entwicklungszweig viewport_experiments). Wenn wir "begrenzt" sagen, bedeutet dies, dass das Zusammensetzen nicht an Anzeigeeigenschaften gebunden ist, sondern auf den gesamten Inhalt des Bildpuffers angewendet wird. Im Idealfall möchten wir sicherstellen, dass in diesem Modus Schnittstellenindikatoren wie Netz oder Bewehrung angezeigt werden. Dies ist nicht so schwer zu erreichen. Letztendlich können Sie dasselbe Prinzip implementieren, nach dem Transparenz oder das Röntgensystem funktionieren, indem Sie das Gitter des Objekts nehmen und es auf die oberste Ebene des Renderings bringen.
* Einige Teile unseres Grid-Visualisierungscodes verwenden Vertex Buffer Object optimal, andere verwenden, haben jedoch Leistungsprobleme, und einige verwenden es überhaupt nicht.

Wie hilft uns die Entwicklungsabteilung soc_2014_viewport_fx, unsere Ziele zu erreichen?


Mit Soc_2014_viewport_fx können wir ohne großen Aufwand auf neue oder mobile Versionen von OpenGL umsteigen und die Erfahrung mit qualitativ hochwertigem Rendering einbringen, die in modernen Versionen von OpenGL erforderlich ist, bei denen das gesamte Rendering Vertex Buffer Objects durchläuft. Es wird auch die GLU- Abhängigkeit entfernen , da diese Bibliothek ältere OpenGL-Funktionen verwendet.

Darüber hinaus wird es solchen Dingen und Funktionen einen Impuls verleihen, die nur von Shadern angezeigt werden können. Dies ist wichtig, wenn wir irgendwann auf die moderne oder mobile Version von OpenGL umsteigen.

Dies wird also hauptsächlich beim 1. und 4. Ziel helfen, aber nach dem Zusammenschluss muss noch mehr Arbeit geleistet werden, um diese Ziele vollständig zu verwirklichen.

Wenn wir moderne oder mobile Versionen von OpenGL unterstützen möchten, müssen wir den Großteil des Echtzeit-Rendering-Codes neu schreiben. Dieser Entwicklungszweig hat sich bereits teilweise darum gekümmert, sodass der Zweig eingeführt und verwendet werden muss (Zusammenführen ist in der Tat der allererste Schritt).
Nach meiner Einschätzung, basierend auf früheren Fusionsexperimenten, sollte dies ungefähr 2-3 Wochen harte Arbeit dauern.

Können wir uns heute auf einige Ziele konzentrieren?


Ja wir können Ziele wie knotenbasiertes Material oder Kopieren erfordern lediglich eine GLSL-Unterstützung, die im Hauptzweig bereits vollständig implementiert ist, so dass nichts ihrer Entwicklung entgegensteht. Je früher wir jedoch den Zweig Soc_2014_viewport_fx einführen, desto weniger Probleme werden wir in Zukunft haben.

Ansichtsfenster, Benutzerfreundlichkeit


Anzeigemodi

Die Anzeigemodi werden etwas unvorhersehbar, wenn Materialien verwendet werden, die auf Eigenschaften wie Spiegeln / Streuen / Strukturieren beschränkt sind. Sie sind auch an die Struktur von Polygonen gebunden, die an Bedeutung verlieren, wenn wir eine Anzeige verwenden, die auf den Eigenschaften von Materialien basiert. Künstler passen häufig eine unterschiedliche Anzahl von Eigenschaften von Objekten und Materialien an, um visuell das zu erhalten, was sie benötigen, was manchmal auch ein schmerzhafter Prozess ist und natürlich nicht für Anfänger geeignet ist. Wir brauchen ein Werkzeug, mit dem Künstler einfach arbeiten können, mit dem sie schnell visualisieren können, was sie wollen, ohne dass sie sich die Mühe und die Wahrsagen machen müssen, wie sie es besser visualisieren können.

Betriebsarten (Bearbeiten, Formen, Zeichnen, Animieren, Game Shader-Entwicklung)

Unterschiedliche Workflows erfordern unterschiedliche Daten und unterschiedliche Darstellungen. Wir können „Workflows“ mit Shader-Sets und Anzeigeoptionen definieren, die speziell für diesen Workflow erstellt wurden. Der Desktop-Modus im Bearbeitungsmodus verfügt beispielsweise über grundlegende Diffus- und Specular-Shader mit verschiedenen Rasteranzeigeoptionen. Der Retopologiemodus eignet sich beispielsweise besser für eine einfache Darstellung eines Netzes mit volumetrischer Transparenz. Zum Anpassen von Materialien oder zum Bemalen von Texturen benötigen Benutzer möglicherweise ein vollständiges endgültiges Bild oder eine Version ohne Shader für eine detaillierte Anpassung.

Bild

Debugging (Logik, Verstärkung usw.)

Der Debug-Modus zeigt die Benutzerproblembereiche in der Szene visuell an. Zum Beispiel das Berechnen von Abhängigkeiten oder der Anzahl von Polygonen oder sogar einiger Parameter für Entwickler.
Einfaches Umschalten von einem zum anderen, einfaches Einrichten oder Programmieren.
Unter Verwendung eines Workflow-Systems sollte der Benutzer sie am vorhersehbarsten sehen. Jeder Workflow verfügt möglicherweise über die Einstellungen für die verwendeten Shader. Sie dürfen diese Shader jedoch nicht zu stark ändern. Über die Knotenschnittstelle können Sie Daten vom Mixer anfordern und in Ihre Shader schreiben, um die Daten so darzustellen, wie der Benutzer es wünscht.

Bild

Perfektion! Benutzer möchten eine bessere, realistischere

Mit den Funktionen moderner Shader möchten wir dem Blender mithilfe von OpenGL (nach Internal und Cycles) ein weiteres Rendering hinzufügen, das alle Funktionen moderner GPUs nutzen kann. Angesichts der Tatsache, dass dies in Echtzeit erfolgt, könnte es eine Alternative werden vorhandene Renderings. Viele Komponenten sind bereits vorhanden, aber wir können noch weiter gehen, indem wir die Implementierung von Shadern, insbesondere für das Echtzeit-Rendering, optimieren, um zu versuchen, vorhandene Renderings zu emulieren.

Wir müssen sicher sein, dass die Materialien anständig aussehen, also untersuchen wir moderne Rendering-Methoden, wie beispielsweise physikalisch basiertes Shading (ein Patch von Clement Foucault, der Daten von Unreal Engine 4 verwendet, ist praktisch aktiviert) und verzögertes Rendering.

Ich muss sagen, dass dies auch die Vorschau von Materialien für interne und Zyklen verbessert.

Jetzt auch beliebt: