AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

3D Spiel

Ein Thema von blablab · begonnen am 6. Aug 2006 · letzter Beitrag vom 14. Aug 2006
 
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#23

Re: 3D Spiel

  Alt 11. Aug 2006, 20:06
@ Cöster

NEIN,

Wenn ich das so machen würde wärs heftig.

1. Speichere ich nur die Opbjecte diese sind alle in einem eindimensionalen Array gespeichert.
Jedes Element hat eine Variable Position. Für alle neugierigen hier die Basisklasse von der alle Objecte im spiel abgeleitet wurden.

Delphi-Quellcode:
  TBalancedObject = Class
  private
    FTexture: GLuint; // Pointer auf die Graphik unseres Steines.
    Fposition: TVector3f;
    FSchwerpunkt: TVector3f;
    Fpoints: Array Of TVector3f;
    Froty: Integer;
    Function FgetRotationY: integer;
    Procedure Setschwerpunkt;
  public
    Property RotationY: integer read FgetRotationY;
    Property Texture: gluint read Ftexture;
    Function Position: TVector3f;
    Constructor create(Pointcount: Integer);
    Destructor destroy; override;
    Procedure RotateY(Angle: Integer); virtual;
  End;
Und alles was zum Zeichnen benutzt wird macht OpenGL für mich.

D.h. seit dem Frustumculling nicht mehr alles, aber fast.( für einen Anfänger macht man alles und versteht irgendwann wie's geht und baut dann das Frustumculling ein, oder so)

was du mit Blickwinkel und gruscht meinst bruache ich nicht machen.

OpenGL ist genau wie Form1.canvas

Es gibt Zeichenroutinen die benutze ich, nur eben das alles 3D ist.

Den ganzen Optischen gruscht macht dann das OpenGL für mich.

Das Rendern eines Rechtecks passiert bei mir im Spiel z.b. so
Delphi-Quellcode:
Procedure DrawQuadPolygon(LeftTop, RightTop, RightBottom, LeftBottom: TVector3f; Texture: gluint = 0);
Begin
  // Einbinden der Graphik
  If Texture <> 0 Then
    glBindTexture(GL_TEXTURE_2D, Texture);
  // Öffnen des Quad Modus
  glbegin(GL_QUADS);
  // Zeichnen Links unten
  glTexCoord2f(0.0, 0.0);
  glVertex3f(LeftBottom.X, LeftBottom.y, LeftBottom.z);
  // Zeichnen Rechts unten
  glTexCoord2f(1.0, 0.0);
  glVertex3f(RightBottom.X, RightBottom.y, RightBottom.z);
  // Zeichnen Rechts Oben
  glTexCoord2f(1.0, 1.0);
  glVertex3f(RightTop.X, RightTop.y, RightTop.z);
  // Zeichnen Links Oben
  glTexCoord2f(0.0, 1.0);
  glVertex3f(LeftTop.X, LeftTop.y, LeftTop.z);
  // Beenden des Quad Modus
  glend;
End;
Wenn man es ganz scharf betrachtet kann man die Procedure DrawQuadPolygon schon als Engine Bezeichnen.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  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 17:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz