Welcome to the new Friends-of-FPC!

Here you can find all kinds of information about the FreePascal Compiler. We have many tutorials and howtos as well as a selection of tools to help you with your programming. We also have some example codes for you. And if you want to contribute some information/ sources/ tools yourself you can do so.
Also we have finally relaunched the FoFPC forum. It's your chance for some Q&A about everything FreePascal.

Friends-of-FPC

Tutorials: Learn how to code with FreePascal.

Source Codes: A collection of examples, miscellaneous source codes and open source stuff.

Tools and Help Files: Intro- duction of some tools that might help you with FPC.

Community

Forum: Ask or answer questions about the FreePascal Compiler, programming or just babble about coding.

Contribute! Contribute your own Tutorial, Source Codes or Tools and send them to us!

Website

About: Information about Friends-of-FPC.org.

Einführung in OpenGL - Teil 5 - by Delax

Das letzte Mal lernten wir GL_TRIANGLES kennen. Diese Dreiecke sind Teil der sogenannten Primitives. Primitives sind ganz einfache Flächen und Objekte, die OpenGL zeichnen kann. Aus diesen Primitives lassen sich dann komplexere Objekte zusammenbauen.

Primitives sind Linien, Dreiecke, Vierecke und Polygone. Eine Linie hat einen Startpunkt und einen Zielpunkt. Ein Dreieck hat 3, ein Vierecke 4 Eckpunkte. Ein Polygon kann beliebig viele Eckpunkte haben. Zu Polygonen will ich aber erst später kommen. Jetzt gehe ich erst einmal auf die Art ein, wie Primitives gezeichnet werden können.

Wenn man eine Linie zeichnet genügt es mit glBegin( GL_LINES ) anzugeben, das von nun an Linien gezeichnet werden. Es folgen Vertex-Paare, die jeweils Start und Endpunkt markieren. Doch was, wenn der Endpunkt der einen Linie jeweils der Startpunkt einer neuen Linie darstellt? Dazu gibt es sogenannte Line strips.

Für die rechte Darstellung benötigt man bei glBegin( GL_LINE_STRIP ) genau 3 Vertices. Der Endpunkt der einen Linie ist automatisch der Startpunkt der nächsten.

Auch bei Dreiecken gibt es diesen strip. Hier werden aus den letzten beiden Vertices die ersten beiden des neuen Dreieckes.

Zusätzlich gibt es bei Dreiecken auch den TRIANGLE_FAN. Hier wird der erste Vertex als Mittelpunkt gesetzt und alle folgenden sind Punkte um diesen Mittelpunkt herum.

Als nächstes gibt es die Vierecke, oder auch QUADS. Das sind nichts anderes als simple Vierecke, also Polygone mit 4 Vertices/ Eckpunkten.

Auch bei QUADS gibt es als Erweiterung QUAD_STRIP. Hier ist bemerkenswert das die geraden Vertices und die ungeraden je auf einer Seite des QUADS sind. Die Richtung geht also v1, v2, v4, v3; v3, v4, v6, v5; ... Das ist auf Anhieb etwas verwirrend, aber man kommt schon dahinter.

Das hier liegende Beispielprogramm zeichnet die ganzen Arten von Primitives. Allerdings nicht gefüllt, sondern mit glPolygonMode(GL_BACK, GL_LINE);. Das heißt nichts anderes das nicht die Flächen gezeichnet werden, sondern nur die äußeren Linien.

Delax/ Sundancer Inc.
[delax@sundancerinc.de]

Back to previous page

Useful Links









Link to us