AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Eigene 2dEngine basierend auf DX oder OpenGL
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene 2dEngine basierend auf DX oder OpenGL

Offene Frage von ".chicken"
Ein Thema von .chicken · begonnen am 1. Apr 2008 · letzter Beitrag vom 10. Apr 2008
 
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#15

Re: Eigene 2dEngine basierend auf DX oder OpenGL

  Alt 3. Apr 2008, 20:04
Zitat von .chicken:
Also deine Engine basiert auf Direct3D?
Meine Engine lässt sich wählbar mit Direct3D oder OpenGL betreiben.

Zitat von .chicken:
Ist das auch sinnvoll oder macht es die ganze Sache nur unnötig komplizierter?
Die Frage, ob die Verwendung einer solchen 3D-Renderingengine nicht alles komplizierter macht, ist nicht ohne weiteres zu beantworten.
Sobald man es hinbekommen hat, über die 3D-Schnittstelle ein einzelnes Bild zu zeichnen, ist man nur noch 1 Befehl davon entfernt dieses Bild zu rotieren, kippen, stauchen, überblenden etc. Dabei erfordern diese Transformationen kaum Leistung, wenn sie auf der Grafikkarte ausgeführt werden, was nur durch Verwendung der 3D-Schnittstelle erreicht werden kann.

Außerdem lassen sich über die Verwendung der 3D-Hardware Effekte realisieren, die ohne nur mit sehr viel Aufwand zu erreichen wären (Shader, 3D-Transformationen, Beleuchtung, Kameras etc.).

Natürlich ist die Programmierung mit Direct3D/OpenGL ein großer Overhead, wenn du nur einen 2D-Snake-Klon schreiben möchtest.

Für den Einstieg in die (2D)-Programmierung mit OpenGL empfehle ich dir das folgende Tutorial:
http://wiki.delphigl.com/index.php/Tutorial_2D

Für das Thema Direct3D/DirectX 9 mit Delphi das folgende Buch:
http://www.amazon.de/exec/obidos/ASIN/3833408359/delphipraxis-21

Zitat von .chicken:
Da du ja selbst eine Engine programmiert hast, kannst du mir vll ein paar Denkanstöße geben wo ich anfangen soll?
Du musst damit Anfangen dir zu überlegen, was genau deine Grafikengine machen soll. Dabei darfst du die Funktionalitäten der Grafikengine nicht mit den Inhalten des Spiels, das du schreiben möchtest vermischen. Du solltest dir außerdem Überlegen, wie du deine Engine später verwenden willst - also wie das Interface deiner Bibliotheken/Klassen aussieht. Die grundlegende (2D-)Grafikengine benötigt meiner Meinung nach folgende Abstraktionsebenen:

Erste Abstraktionsebene:
- Schnittstellen Abstraktionsebene, die Zugriff auf die gewählte Grafikschnittstelle bietet, ohne dass die spätere Anwendung etwas davon mitbekommt. Tauschst die diese Abstraktionsebene aus, so kann deine Engine mit einer anderen Grafikschnittstelle betrieben werden.

Zweite Abstraktionsebene:
- Zeichenflächenobjekt, das die grundlegende Zeichenoberfläche repräsentiert
- Bilderobjekt, das Bilder auf die Zeichenfläche zeichnet
- Bilderlistenobjekt, das die Bilder verwaltet

Dritte Abstraktionsebene:
- Spritenengine, die sich um Animationen, Bewegungen, Kollisionen etc. kümmert
- GUI-System

Vierte Abstraktionsebene:
- Anwendungsschicht (Spiel)

Ich hoffe, dass dir diese Informationen ein wenig geholfen haben,
Andreas

EDIT: Ehrlich gesagt habe ich auch wie du angefangen an meiner 2D-Engine zu schreiben ohne vorher kaum eine Zeile DirectX oder OpenGL geschrieben zu haben. Allerdings hatte ich schon sehr genaue Vorstellungen davon, was ich möchte und hatte das Buch (siehe oben) über DirectX zur hälfte gelesen.
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz