InShape-Raytracer: Gut in Form

Vorbei sind die Zeiten, in denen Modelle von Hand gefertigt wurden, um eine Vorstellung zu bekommen, wie es später aussieht. Vorbei auch die stundenlange Sitzung beim Architekten, der immer und immer wieder beschreiben muß, wie denn nun das Wohnzimmer nach der Fertigstellung aussehen wird. Auch im Maschinenbau kann nun sicherer konstruiert und Störkanten vermieden werden durch den Einsatz von Raytracern. Mit InShape ist ein solches Produkt nun für den ATARI-TT erhältlich.

Es ist nicht so, daß InShape nun etwas revolutionär Neues wäre, ist aber zumindest in der ATARI-Welt zur Zeit ohne Konkurrenz. Zwar ist auf der CeBIT ’92 das neue Dyna Cadd 3.0 von CRP Koruk vorgestellt worden, welches ebenfalls einen Raytracer beinhalten soll, aber nach dem Versprechen es im April an die ATARI-Entwickler auszuliefern, wurde dann auf August verwiesen, da das Handbuch noch nicht fertiggestellt wäre. Bei der Frage nach dem Fertigungsstand auf der ATARI-Messe wurde lediglich gesagt, daß man bei Seite 1200 sei und nun doch erst die Windows-Version veröffentlicht werde. So stehen für InShape die Vorzeichen günstig, und ich werde versuchen, dieses für den ATARI neue Produkt so exakt wie möglich zu beschreiben.

Für wen?

Nun, was ist InShape und welche Zielgruppe wird angesprochen? InShape ist ein in Pure C geschriebenes Programm, an dem der Autor Roald Christesen seit zwei Jahren programmiert. Es ist ein Renderer, ein Shader und ein 3D-Modeler. Lauffähig ist das Programm zur Zeit nur auf einem TT mit mindestens 4MB RAM und nur in der mittleren TT-Auflösung. Der Autor hat aber schon die Umsetzung auf den Falcon begonnen und will dort mit Hilfe des DSPs eine weitere Geschwindigkeitssteigerung erreichen. Durch die Systemanforderung schrumpft der Anwenderkreis im Moment sehr stark zusammen, aber durch den Falcon wird sich das sicherlich ändern. Geliefert wird InShape in einem DIN-A5-Ring-buch-Ordner, in dem sich die zwei 720KB-Disketten befinden. Und wie schon in den ersten Sätzen bemerkt, ist InShape für alle diejenigen gedacht, die sich einen Eindruck verschaffen wollen, wie später ein Objekt aussehen wird. Aber auch Werbefilmer haben ihren Nutzen von der Software, da man mit dem Programm mit Hilfe der Keyframe-Technik Animationen erarbeiten kann. Auch Grafiker und Designer sind eine Zielgruppe.

Auf geht’s!

In der Einleitung des knapp 150seitigen Handbuchs wird auf die zwei Hauptanwendungsgebiete hingewiesen, die da wären:

a) Visualisierung von 3D-Gegenständen für z.B. Produkt Design, als Einzelbilder

b) Visualisierung von 3D-Gegenständen in Bewegung als Filmsequenz, z.B. für Titelanimationen.

InShape besteht aus zwei Programmteilen; dem Modeler, der für die Erstellung des Objektes und der Szene zuständig ist, und dem Shader, der die Bilder berechnet und mit 24 BIT Farbtiefe (16,7 Mio. Farben) abspeichert. Als Zusatzprogramm gibt es den Converter, der das eigene InShape-ins gängige TIFF-Format konvertiert. Man kann sich dort auch das Bild nochmals anschauen. Es wird beim TIFF ins unkomprimierte Motorola-Format konvertiert. Es ist weiterhin möglich, Echtfarbbilder in ein Graustufenbild zu wandeln.

Die Benutzeroberfläche von InShape

Nach der kurzen Beschreibung der Programmteile und der Handbuchbenutzung beginnt die Installation des Programms. Ein mitgeliefertes INSTALL.PRG übernimmt das Überspielen auf die Festplatte, die unabdingbar ist. Hier muß lediglich das Ziellaufwerk angegeben werden. Nach dem Starten von InShape findet man eine GEM-ähnliche Umgebung wieder. Es gibt die bekannte Menüleiste, in der man einen Großteil der Funktionen findet. Die Bedienung erfolgt wahlweise über Tastatur oder per Maus. Des weiteren tauchen während der Benutzung des Programms auch Dialogboxen und Pop-Up-Menüs auf. Leider ist dies alles nicht pures GEM, da dann ein Auflösungswechsel kein Problem wäre. Aber der Autor sitzt auch schon an der Umstellung der Oberfläche, die im Zuge der Falcon-Anpassung geschieht. Im Handbuch folgt nun eine Erklärung über die Bedienung diverser Dialogboxen und Menüs. Dies geschieht sehr verständlich und ist auch für den absoluten Neuling begreifbar. Wer nun lieber erstmal mit dem Programm spielen möchte, dem bietet das Handbuch Übungen an, ohne das man mit dem Programm auch nur 1 Minute gearbeitet hat. So habe ich mich auch auf diese Übungen gestürzt und kann es nur jedem weiterempfehlen. Es werden dort fast alle Möglichkeiten des Programms benutzt und man bekommt sehr schnell ein Gefühl für die Handhabung InShapes. Als erste Übung wird ein kleiner Tempel konstruiert, der aus drei Stufen, sechs Säulen, einem Dach und zwei Geländern besteht. Dazu werden nur geometrische Formen wie Kästen, Zylinder und Kugeln benutzt.

Ganz genau

Der Objekteditor im Modeler wird mit den Positionierungsdaten und den Ausmaßen der einzelnen Objekte gefüttert. Da es sich um einen 3D-Editor handelt, müssen immer die x-, y- und z-Werte eingegeben werden. Die Maßeinheit im Programm ist nicht von Bedeutung und die Genauigkeit reicht bis zu einem 10000stel. InShape bietet als Basis sechs Körper an: Kasten, Scheibe, Zylinder, Röhre, Kegel und Kugel. Bei jedem Objekt muß als erstes die Position im Raum festgelegt werden. Dann folgt die Eingabe der Größe und der besonderen Features. Beim Kasten kann man wählen, ob man auch schrägen an den Kanten haben möchte. Beim Zylinder und beim Kegel können die Seiten geschlossen werden, oder man gibt bei den runden Körpern die Anzahl der Stücke ein, aus denen er bestehen soll. Da man in der Regel mehrere Körper erstellt, bietet In-Shape die Verwendung von Layern an. So wurden bei der Übung mit dem Tempel die einzelnen Elemente wie z.B. die Säulen in einen eigenen Layer gelegt.-In der Layer-Verwaltung ist Platz für 16 Layer. Dort entscheidet man auch, ob man den Layer editieren darf oder ob er überhaupt sichtbar ist. Wenn man alle Layer verbraucht hat und für ein Objekt noch mehr braucht, kann man alle ,mergen‘, und schon sind wieder 15 Layer frei. Allerdings ist so etwas mit Vorsicht zu genießen, da bei komplexeren Körpern dann leicht die Übersicht fürs Detail verlorengeht und auch die Editierung sehr schwer wird. Eine Lösung wäre sicherlich eine richtige Listenverwaltung mit unbgrenzter Anzahl von Layern.

Wie soll’s denn aussehen?

Nachdem nun ein Kasten positioniert und bemaßt ist, erscheint automatisch das Ober-flächen-Menü. Hier wird festgelegt, wie der Kasten aussehen soll. Da beim Programm leider keine Bibliothek für die Oberflächen mitgeliefert wird, bleibt dem Anwender leider nur übrig, sich selbst die Zusammensetzung auszudenken und auszuprobieren. Und dies kann mitunter zu einer großen Geduldsprobe werden. Eine Oberfläche setzt sich als erstes aus den Farben Rot, Grün und Blau (RGB) zusammen. Dann kommt das Eigenleuchten (Luminous), wie z.B. ein Lampenschirm. Ambiente gibt den prozentualen Anteil der Reflektion an. Diffuse bestimmt den matten Anteil und Specular den glänzenden. Die Konzentration des Glanzpunktes wird mit Brightness bestimmt. Mit der Reflection verändert man die Spiegeleigenschaft und mit Transparency die Durchsichtigkeit. Beim letzten Punkt kann man zusätzlich noch die Brechungseigenschaft (Refraction) wählen. Wer jetzt schon stöhnt, ist erst bei der Hälfte, denn man kann über den Punkt Pattern 37 Muster wählen sowie deren Skalierung und Verlaufsrichtung. Dazu muß natürlich auch eine zweite Farbe mit den ganzen Eigenschaften gewählt werden. Mit BuMBMap kann man der Oberfläche noch eine Struktur aufzwingen. Soll der Körper einen Schatten werfen, muß im entsprechenden Feld ein Kreuz gemacht werden. Und wenn bei Reflection ein Wert angegeben wurde, bestimmt der R-Filter, daß die Spiegelung in der Spiegelfarbe erfolgt. All dies ist sicherlich ein wahnsinnig gutes Werkzeug, um Oberflächen zu gestalten, führt aber am Anfang auch zu einer kleinen Ohnmacht. Die abgedruckten Bilder beweisen eigentlich nur wie schön es aussehen kann. Der Autor selbst aber gesteht auch eine gewisse Erprobungszeit ein. So sei mir an dieser Stelle erlaubt, einen Aufruf zu starten. Alle Anwender, die eine Oberfläche gestaltet haben, die auch für andere interessant sein könnte, sollen diese doch bitte an den Autor schicken. So könnte eine gute Bibliothek entstehen, die jedermann zugänglich wäre. Außer einer selbstgestalteten Oberfläche kann man noch Bilder auf Flächen projizieren.

Kopieren, Verschieben, Verändern

Nun kommt es allzu oft vor, daß man die Körper nicht mit den Basiskörpern erstellen kann, sondern geringfügige Änderungen vornehmen möchte. Dazu bietet In-Shape diverse Funktionen. Als erstes muß man in den entsprechenden Modus schalten. Will man nur Punkte verändern, gibt es den Punktmodus. Entsprechendes gilt für die Bearbeitung von Flächen und Kanten. Copy Plane ermöglicht das Kopieren aller Flächen und Punkte des Layers, der zurZeit aktiv ist. Mit Hilfe der Skalierung kann der Abstand zwischen den Punkten verändert werden. Des weiteren gibt es Verschieben, Drehung um das eigene und Drehung um ein bestimmtes Zentrum. Mit Ausrichten können die Punkte zu einem bestimmten Objekt ausgerichtet werden, wobei entweder der entfernteste oder der nächste Punkt als Bezug gewählt wird. Shearing (Scherung) verschiebt Punkte gegeneinander, und Randomize verschiebt Punkte um einen per Zufallsgenerator generierten Wert. Im Flächenmodus kann man Flächen verstecken und wieder sichtbar machen. Eine eigene Oberfläche (Sur-face) kann für jede Fläche bestimmt werden.

Extravagant

Wenn jetzt der Fall auftritt, das man einen Körper nicht mehr mit den Grundelementen „erschlagen“ kann, wählt man den Template-Editor. Hier wird eine Schablone erstellt, die dann der Objekterzeugung dient. Wenn dort eine Fläche fertig ist, stehen einem vier weitere Möglichkeiten offen. Mit dem Punkt Plane übernehme ich diese Fläche in den Objekteditor und habe dann ein flaches Objekt wie z.B. Papier oder Folie. Mit Extrude gebe ich eine Tiefe vor. Somit kann man Ausschnitte von festen Körpern darstellen. Mit Spin lasse ich die Fläche kreisen und erzeuge einen rotationssymmetrischen Körper. Schließlich kann ich mit Path die Fläche einem Pfad folgen lassen und geschwungene Elemente formen. Der Pfad kann dann auch ruhig eine Bezier-Linie sein. Im Template-Editor existiert zur Unterstützung auch ein Raster sowie die Fang-auf-Raster-Option. Im Handbuch wird zum Kennenlernen ein Tisch mit drei geschwungenen Beinen konstruiert. Diesen Tisch kann man in den Tempel stellen. Man kann nun eine Abhängigkeit zwischen den Objekten hersteilen. Verschiebe ich den Tempel itTi Raum, wandert der Tisch gleichzeitig mit. Um die Abhängigkeit zu sehen, gibt es eine Hierarchie, die man mit der rechten Maustaste im Szene-Editor bekommt.

Wie sieht’s aus?

Die größte Frage, die einen quält, ist sicherlich die nach dem Ergebnis. Die Geschwindigkeit des Shaders richtet sich nach der Komplexität des Objektes und nach der Qualität. Da gibt es drei verschiedene Stufen. Als erstes haben wir den Test. Dieser dient auch nur für den ersten Eindruck. Mit Medium erzielt man bereits recht gute Ergebnisse, aber mit „Foto“ das Optimum an Qualität zu erreichen ist. Allerdings sind nur geringe Zeitunterschiede festzustellen. Im Kamera-Menü gehts endgültig zur Sache. Hier positioniert man die Kamera und bei einer Animation auch die anderen Positionen. Durch verschiedene Kamerapositionen erhält man die verschiedenen Schlüssel-Rahmen (Key-Frame). Über den Spline-Type bestimme ich, wie genau von Position eins zu Position zwei verfahren wird. Die Key-Frames können kopiert werden, um in den nächsten Frames die ursprünglichen Werte zu setzen. Interessant ist der Up-Vector, mit dem man die Kamera schräg oder sogar auf den Kopf stellen kann. In den Preferences stellt man die Bildgröße und die Berechnungstiefe ein, des weiteren alle anderen Angaben, die den Shader beeinflussen. So können die Bilder mit Transparenz und Schatten berechnet werden. Außerdem lassen sich Wolken oder Nebel generieren. Im Environment-Menü werden dann die Farben für alle Zusätze ausgewählt, wie z.B. für den Himmel, den Boden, den Nebel, die Wolken und für das Umgebungslicht.

Spot an!

In der schon erwähnten Hierarchie kann zu den entsprechenden Objekten eine Lichtquelle, oder auch mehrere, addiert werden. Auch dort sind die verschiedensten Einstellungen möglich. Vom Flutlicht bis hin zum Kerzenschein ist alles realisierbar.

Wurde nun alles eingestellt, geht’s los. Mit Animation-Test kann man sich eine kleine Sequenz anschauen die zeigt, wie es nachher ungefähr aussieht. Allerdings wird nur ein kleines Drahtgitter animiert. Wählt man den Punkt Animation, kommt automatisch der Shader zum Start, und die Berechnung gehl los. Sie kann pro Bild auch mal bis zu zwei Stunden brauchen. Die erzeugten Bilder werden in einem vorher angegebenen Pfad abgespeichert. Sind alle Bilder berechnet, können sie in der Reihenfolge von einem Profigerät auf Video gebracht werden. Möchte der Hob-by-User sich nun diese Bilder animiert betrachten, kann InShape dabei leider nicht behilflich sein. Es befindet sich kein Abspielprogramm für eine Animation im Lieferumfang. Die einzige Möglichkeit besteht in der Reduzierung auf 256 Farben und sich einen Delta-Animator zu besorgen. Vielleicht findet sich ja ein Entwickler, der ein Programm schreibt, das True-Color-Bilder abspielt.

Fazit

Hier entsteht ein neuer Stern. Nach einigen Gesprächen mit dem Autor läßt er mich auf einige nette neue Features blicken, wie z.B. die Einbindung von Fonts oder die Unterstützung von verschiedenen Grafikkarten.

Nach etwas Einarbeitungszeit ist ein flüssiges Arbeiten mit InShape möglich. InShape ist auch schnell in der Berechnung von B i Idem. Früher war dies nur auf Work-stations und anderen Rechengiganten möglich. 3D-Studio in Verbindung mit AutoCAD auf PCs ist sicherlich ein bis zwei Kostenstufen höher als InShape. Dyna-CADD für den ATARI wird nach Angaben von CRP-Koruk nicht vor Ende des Jahres erscheinen. Für einen Preis von 498,- DM ist ein mächtiges Tool auf den ATARI-Markt erschienen.

Bezugsquelle:

Roahl Christesen Stuhrsallee 17 W-2390 Flensburg


Joachim Heller
Aus: ST-Computer 10 / 1992, Seite 56

Links

Copyright-Bestimmungen: siehe Über diese Seite