Die Darstellung eines dreidimensionalen Objektes auf zweidimensionalen Ausgabemedien stößt stets auf das Problem, das Informationsdefizit, das infolge der fehlenden Tiefenwirkung eigentlich nie zu vermeiden ist, in der Weise zu reduzieren, dass die Darstellung dem angestrebten Zweck gerecht wird. Während für möglichst realitätsnahe Ansichten die Sichtbarkeit der eigentlich verdeckten Kanten nicht tolerierbar ist, werden in technischen Zeichnungen verdeckte Kanten häufig bewusst eingezeichnet, weil eine möglichst komplette Information über das dargestellte Objekt höher als die "Schönheit der Darstellung" bewertet werden muss.
Links sieht man einen so genannten "Buckyball" (begrenzt von 12 gleichseitigen Fünfecken und 20 gleichseitigen Sechsecken), bei dem alle 90 Kanten zu sehen sind, was natürlich nicht akzeptabel ist. Rechts sieht man ein "Hidden lines"-Bild, bei dem alle verdeckten Kanten ausgeblendet sind.
Ob aber verdeckte Kanten ausgeblendet (realistische Darstellung) oder zum Beispiel gestrichelt dargestellt werden sollen (technische Zeichnung), ändert am Problem nichts: Es muss ermittelt werden, welche Kanten dies sind.
Eine weitgehend fotorealistische Darstellung ist mit dem sogenannten "Raytracing" ("Strahlenverfolgung") möglich, bei dem der Lichtstrahl allen möglichen Ereignissen auf dem Weg zum Betrachter unterworfen werden kann (Durchgang durch ein teilweise lichtdurchlässiges Medium, Spiegelung und/oder Brechung an einer Oberfläche usw.). Dieses Verfahren wird von den CanvasGI-Funktionen nicht unterstützt. Wer Probleme dieser Art lösen möchte, sollte sich unbedingt eines dafür geeigneten Software-Paketes bedienen. Auch dann, wenn die wesentlichen Teile des sehr aufwendigen Algorithmus von den Funktionen eines solchen Grafik-Paketes übernommen werden, bleibt für den Programmierer noch genug zu tun.
Da auch beim Verzicht auf fotorealistische Darstellung (für Konstruktionszeichnungen ohnehin nicht erwünscht) die erforderliche Rechenzeit für das Ausblenden verdeckter Linien und Flächen erheblich sein kann, werden zur Erzielung eines akzeptablen Antwortverhaltens im Dialogbetrieb gern Kompromisse bei den Algorithmen in Kauf genommen, so dass in speziellen Fällen Fehler in der Darstellung nach dem Sichtbarkeitstest eher als sehr große Rechenzeiten toleriert werden. Natürlich sollte immer das "Umschalten auf einen sauberen und aufwendigen Algorithmus" möglich sein.
Ein für die Bildschirmausgabe besonders schnelles Verfahren ist, alle Oberflächen des Körpers in der Reihenfolge einer "Prioritätenliste" zu zeichnen. Wenn die Reihenfolge in dieser Liste z. B. durch die Entfernung der Flächen vom "Eye point" bestimmt wird und die am weitesten entfernten Flächen zuerst gezeichnet werden, dann überzeichnen die Flächen mit kürzerer Entfernung automatisch die Flächen, die von ihnen ganz oder teilweise überdeckt werden. Dieses Verfahren verlangt im allgemeinen noch einige Verfeinerungen:
Man vermutet einen Würfel, ... |
... es ist aber ein Ikosaeder |
Unabdingbar für technische Zeichnungen ist jedoch die Möglichkeit, auch (meist sogar ausschließlich) die gesamte gewünschte Information durch Linien auszudrücken, bei denen zwei Typen zu unterscheiden (und auf unterschiedliche Weise zu erzeugen) sind:
CanvasGI unterstützt die folgenden Lösungen, mit denen auf einfachen und schnellen Wegen die korrekte Vorstellung vom dreidimensionalen Objekt in der zweidimensionalen Zeichenfläche erreicht wird:
Auf der Seite "3D-Flächenmodelle mit unterschiedlicher Lightness zeichnen" wird diese Technik ausführlich demonstriert. Der mit dieser Seite erzeugte "Buckyball" (linkes Bild) zeigt deshalb die in Richtung der Lichtquelle liegenden Flächen deutlich heller.
Diese Strategie kann natürlich auch auf gekrümmte Flächen angewendet werden, die für ein befriedigendes Ergebnis dann allerdings sehr fein in Teilflächen unterteilt werden müssen. Das Bild rechts zeigt aber eine durchaus realitätsnahe Darstellung einer Kreishelix, die in einige tausend Flächen unterteilt wurde. Das Bild zeigt aber auch die Grenzen dieses Verfahrens: Die Helligkeit variiert nur mit der Richtung der Teilflächen bezüglich der Lichtquelle. Dass sich die weiter unten liegenden Schlingen durchaus auch im Schatten der darüber liegenden Schlingen befinden können, wird mit dieser Strategie nicht erfasst.
Empfehlung zum Weiterlesen: Auf der Seite "3D-Flächenmodelle in geeigneter Reihenfolge zeichnen" wird die oben genannte Technik zur Überdeckung nicht sichtbarer Flächen und Kanten demonstriert.