Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 11:55

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Tutorial -> Kamera1
BeitragVerfasst: Mo Jan 08, 2007 19:23 
Offline
DGL Member
Benutzeravatar

Registriert: So Jan 07, 2007 21:26
Beiträge: 130
Wohnort: mal hier mal da mal irgendwo
huhu,
ich hab mich mal durch das tutorial gekämpft .... und als allererstes ma nen paar gratz^^
bei dem teil wo erklärt wird wie die kamera programmiert wird komm ich nich ganz klar,
ich befolge alles und so und dann will ich kompiliern und dann werden mir die fehler angezeigt,
das TVertex und THomogeneousMatrix unbekannt sind, in welchen units sind die denn drinne?
ich hab bisher nur vergeblich gesucht ...

cuz bubble

_________________
Wenn Worte nichts als Worte sind,
dann müssen's Steine sein!
Solange - bis sie pleite sind - schmeißt Fensterscheiben ein!

- Fidl Kunterbunt -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 08, 2007 19:37 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jun 20, 2003 13:59
Beiträge: 134
wenn ich mich recht erinnere müsste das die geometry.pas sein

_________________
ghost-site.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 08, 2007 20:13 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
ja, da fehlt eine geometry pas. es gibt zwei, die in Frage kommen: die von Mike Lischke unter w http://www.lischke-online.de/Geometry.php zu bekommen oder je welche im GlScene Projekt hämgt: http://glscene.sourceforge.net/wikka/HomePage (dessen ursprünge übrigens auch bei mike liefen)... Jedenfalls musst Du dir dann dort einfach die geometry pas aus den sourcen extrahieren und evtl auch ein paar includes, die da heutzutage mit drin hängen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 08, 2007 20:32 
Offline
DGL Member
Benutzeravatar

Registriert: So Jan 07, 2007 21:26
Beiträge: 130
Wohnort: mal hier mal da mal irgendwo
hmmm irgendwie komisch ... ich hab Geometry eingebunden .... THomogeneousMatrix is da auch drinne aba TVertex .... davon is keine spur ...

cuz bubble

_________________
Wenn Worte nichts als Worte sind,
dann müssen's Steine sein!
Solange - bis sie pleite sind - schmeißt Fensterscheiben ein!

- Fidl Kunterbunt -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 08, 2007 20:47 
Offline
DGL Member
Benutzeravatar

Registriert: So Jan 07, 2007 21:26
Beiträge: 130
Wohnort: mal hier mal da mal irgendwo
irgendwie mag mich windoof in letzterzeit nich mehr ... ich suche beim DGLSDK nach dateien wo "TVertex" drinne auftaucht ... da ich mir das nich vorstellen konnte hab ich ma selber gesucht ... und siehe da:
in dcal3d.pas versteckt sich das blöde record TVertex^^

cuz bubble

_________________
Wenn Worte nichts als Worte sind,
dann müssen's Steine sein!
Solange - bis sie pleite sind - schmeißt Fensterscheiben ein!

- Fidl Kunterbunt -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 08, 2007 21:10 
Offline
DGL Member
Benutzeravatar

Registriert: So Jan 07, 2007 21:26
Beiträge: 130
Wohnort: mal hier mal da mal irgendwo
hmmm das problem mag jetzt gelöst sein ... aba seit dem versteh ich irgendwie nur noch bahnhof ...
kann mir jemand einfach ma ne beispiel-unit schicken und dann arbeite ich mich durch die ...
weil mir ergeben sich jetzt beim tut immer mehr probleme
Wo muss ich denn die Prozedur Billboard deklarieren?
Wo kommt auf einmal die Prozedur LockTarget her, und wo hin muss die?
TKugel ? Schon wieder ein neues Objekt? oO

bitte ibh brauch hilfe ... so wie ich zu zeit durch meine welt "stolziere" bekomm ich eher das würgen ....

cuz bubble

_________________
Wenn Worte nichts als Worte sind,
dann müssen's Steine sein!
Solange - bis sie pleite sind - schmeißt Fensterscheiben ein!

- Fidl Kunterbunt -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 09, 2007 17:32 
Offline
DGL Member
Benutzeravatar

Registriert: So Jan 07, 2007 21:26
Beiträge: 130
Wohnort: mal hier mal da mal irgendwo
langsam mag ich das Kamera tut garnet mehr ... da is auch die rede von der prozedur InvertMatrix .... ich hab alle header alleine durchsucht und ich habs nich gefunden ... und das im gesamten DGLSDK(!) wo soll die denn drinne sein?

EDIT:
So ich liste hier einfach mal alles auf was so an Fehlern kommt, wenn ich das Tut befoglt hab:
Als erstes aber mal mein Sourcecode, muss dazu sagen dass ich den in ner extra unit hab.
Code:
  1. unit Camera;
  2.  
  3. interface
  4.  
  5. uses Geometry,dcal3d,dglOpenGL;
  6.  
  7. type
  8.   TObjekt = class  //Basisklasse
  9.   private
  10.   public
  11.     ObjektName : String;
  12.     Rotation  : THomogeneousMatrix;
  13.     Position  : TVertex;
  14.     constructor Create; virtual;
  15.   end;
  16.   TLookMode = (lmFree, lmObjektSight, lmLookAtObjekt);
  17.   TMoveMode = (mmFree, mmAttatched);
  18.   TKamera = class(TObjekt)
  19.   private
  20.   public
  21.     LookMode : TLookMode; //Ansichtsmodus
  22.     MoveMode : TMoveMode; //Bewegungsmodus
  23.     LookTarget, MoveTarget : TObjekt; //Ansichtsziel und Bewegungsziel
  24.     procedure UseMatrix; virtual; //Kamera-Matrix einsetzen
  25.     constructor Create; override;
  26.     procedure ResetView; //Ansicht zurücksetzen
  27.     procedure LockTarget(Target : TObjekt);
  28.   end;
  29. implementation
  30.  
  31. { TObjekt }
  32.  
  33. constructor TObjekt.Create;
  34. begin
  35.  
  36. end;
  37.  
  38. { TKamera }
  39.  
  40. constructor TKamera.Create;
  41. begin
  42.   inherited;
  43.  
  44. end;
  45.  
  46. procedure TKamera.ResetView;
  47. begin
  48.  
  49. end;
  50.  
  51. procedure TKamera.UseMatrix;
  52. var
  53.     RotMatrix : THomogeneousMatrix;
  54.     Pos : TVertex;
  55. begin
  56.       //Ansichten
  57. case LookMode of
  58.   lmFree       : begin
  59.                   RotMatrix := Rotation;
  60.         //          InvertMatrix(RotMatrix);
  61.                  end;
  62.   lmObjektSight: begin
  63.                   Assert(Assigned(LookTarget));
  64.                   Rotation := LookTarget.Rotation;
  65.                   RotMatrix := Rotation;
  66.         //          InvertMatrix(RotMatrix)
  67.                  end;
  68. end;
  69.  
  70.  
  71. //Bewegungen
  72. case MoveMode of
  73.   mmFree     :   begin
  74.                   Pos := Position
  75.                  end;
  76.   mmAttatched :  begin
  77.                   Assert(Assigned(MoveTarget));
  78.                   Position := MoveTarget.Position;
  79.                   Pos := Position;
  80.                  end;
  81. end;
  82.  
  83. //Matrix einlegen
  84. glLoadMatrixf(@RotMatrix[0,0]);
  85.  
  86. glTranslatef(-Pos.x, -Pos.y, -Pos.z)
  87. end;
  88.  
  89. procedure TKamera.LockTarget(Target : TObjekt);
  90. var
  91.   InvMatrix, M1, M2 : THomogeneousMatrix;
  92.   ObjektPosition : TVertex;
  93.   Cos, Sin : Single;
  94.   xzEbenenPosition : TVertex;
  95. begin
  96.   try
  97.     InvMatrix := Rotation;
  98.     InvertMatrix(InvMatrix);
  99.     //Globale Objekt Position
  100.     ObjektPosition := VectorSubtract(Position, Target.Position);
  101.     //In lokale Koordinaten drehen
  102.     ObjektPosition := VectorTransform(ObjektPosition, InvMatrix);
  103.     xzEbenenPosition[0] := ObjektPosition[0];
  104.     xzEbenenPosition[1] := 0;
  105.     xzEbenenPosition[2] := ObjektPosition[2];
  106.     if not((xzEbenenPosition[0] = 0.0) and (xzEbenenPosition[2] = 0.0)) then
  107.     begin
  108.       NormalizeVector(xzEbenenPosition);
  109.       M1 := CreateRotationMatrixY(xzEbenenPosition[0], xzEbenenPosition[2])
  110.     end
  111.     else
  112.       M1 := IdentityHmgMatrix;
  113.     NormalizeVector(ObjektPosition);
  114.      Cos := VectorDotProduct(xzEbenenPosition, ObjektPosition);
  115.     Sin := Sqrt(1- Cos*Cos);
  116.     if (ObjektPosition[1] > 0.0) then
  117.       Sin := - Sin;
  118.     M2 := CreateRotationMatrixX(Sin, Cos);
  119.     RotMatrix := MatrixMultiply(M1, M2);
  120.     Rotation := MatrixMultiply(RotMatrix, Rotation);
  121.     RotMatrix := Rotation;
  122.     InvertMatrix(RotMatrix)
  123.   except
  124.     RotMatrix := IdentityHmgMatrix
  125.   end
  126. end;
  127.  
  128. procedure Billboard;
  129. const
  130.   NewModelView : Array[0..11] of TGLFloat =
  131.     (1,0,0,0,0,1,0,0,0,0,1,0);
  132. var
  133.   Modelview : Array[0..15] of TGLFloat;
  134. begin
  135.   // Modelview Matrix holen
  136.   glGetFloatv(GL_MODELVIEW_MATRIX , @Modelview[0]);
  137.   Move(NewModelView[0], ModelView[0], SizeOf(NewModelview));
  138.   glLoadMatrixf(@Modelview[0])
  139. end;
  140.  
  141. end.
  142.  



So hier die Liste aller Fehler:
Code:
  1. [Fehler] Camera.pas(98): Undefinierter Bezeichner: 'InvertMatrix'
  2. [Fehler] Camera.pas(100): Inkompatible Typen: 'THomogeneousFltVector' und 'TVertex'
  3. [Fehler] Camera.pas(100): Inkompatible Typen: 'THomogeneousFltVector' und 'TVertex'
  4. [Fehler] Camera.pas(102): Es gibt keine überladene Version von 'VectorTransform', die man mit diesen Argumenten aufrufen kann
  5. [Fehler] Camera.pas(103): Array-Typ erforderlich
  6. [Fehler] Camera.pas(103): Array-Typ erforderlich
  7. [Fehler] Camera.pas(104): Array-Typ erforderlich
  8. [Fehler] Camera.pas(105): Array-Typ erforderlich
  9. [Fehler] Camera.pas(105): Array-Typ erforderlich
  10. [Fehler] Camera.pas(106): Array-Typ erforderlich
  11. [Fehler] Camera.pas(106): Array-Typ erforderlich
  12. [Fehler] Camera.pas(108): Undefinierter Bezeichner: 'NormalizeVector'
  13. [Fehler] Camera.pas(109): Array-Typ erforderlich
  14. [Fehler] Camera.pas(109): Array-Typ erforderlich
  15. [Fehler] Camera.pas(112): Undefinierter Bezeichner: 'IdentityHmgMatrix'
  16. [Fehler] Camera.pas(114): Inkompatible Typen: 'THomogeneousFltVector' und 'TVertex'
  17. [Fehler] Camera.pas(114): Inkompatible Typen: 'THomogeneousFltVector' und 'TVertex'
  18. [Fehler] Camera.pas(116): Array-Typ erforderlich
  19. [Fehler] Camera.pas(119): Undefinierter Bezeichner: 'RotMatrix'
  20. [Fataler Fehler] OpenGL15_Template.dpr(6): Verwendete Unit 'Camera.pas' kann nicht compiliert werden
  21.  


sry das das hier gleich so voll is^^

ich hab schon ma probier das mit dem THomogeneousFltVector-/TVertex problem (und somit auch das array prob) zu lösen aba irgendwie ging das nich
dann InvertMatrix ... ich hab schon alle meine header durchsucht ... aba nirgendwo tauchete das auf oO
meine header sind die libs aus dem dglskd ....

cuz bubble

_________________
Wenn Worte nichts als Worte sind,
dann müssen's Steine sein!
Solange - bis sie pleite sind - schmeißt Fensterscheiben ein!

- Fidl Kunterbunt -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 09, 2007 18:42 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Wenn nicht schau dir mal die Kamera von AndyH an. Ist komplizierter, aber der Code ist aktueller.

Nico, du solltest das Tut dann nochmal überarbeiten wenn du Zeit hättest ;)

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 09, 2007 19:05 
Offline
DGL Member
Benutzeravatar

Registriert: So Jan 07, 2007 21:26
Beiträge: 130
Wohnort: mal hier mal da mal irgendwo
hmmm da kommt dann folgendes was auch wieda nen prob darstellt weil ich der/die/das header nich hab:
uses Forms, {KanalUtil,} OGLinclude, Controls;

OGLinclude fehlt irgendwie ...

_________________
Wenn Worte nichts als Worte sind,
dann müssen's Steine sein!
Solange - bis sie pleite sind - schmeißt Fensterscheiben ein!

- Fidl Kunterbunt -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 09, 2007 19:19 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Zitat:
Ich habe einfach alle Funktionen meiner Toolsammlung hierhin kopiert. Ich wollte jetzt nicht offline etwas weglöschen was vielleicht benötigt wird. Ihr findet also hier einen ganzen Wust von Funktionen, der zum Betrieb der Kamera nicht benötigt wird. Vielleicht könnt Ihr das eine oder andere aber brauchen...

Daher vermute ich, dass es für etwas benötigt wird, was nicht Teil der Kamera ist.

Ansonsten habe ich hier noch eine Cameraklasse von Conan auf der Festplatte, die später Teil von easySDL werden soll. Die geht, aber bin sie noch nicht durchgegangen.
Sonst gibt es noch das Rotationsbeispiel im SDK, welches aber nicht direkt eine Kameraklasse darstellt.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 09, 2007 19:32 
Offline
DGL Member
Benutzeravatar

Registriert: So Jan 07, 2007 21:26
Beiträge: 130
Wohnort: mal hier mal da mal irgendwo
öhh ich hab das jetzte an sich aba ich bekomm des nich zum laufen ... muss ich das bei uses dazu schreiben oda muss ich des als konsolen anwendung machen ... die mHelperLib.pas hab ich auch schon^^'

cuz bubble

_________________
Wenn Worte nichts als Worte sind,
dann müssen's Steine sein!
Solange - bis sie pleite sind - schmeißt Fensterscheiben ein!

- Fidl Kunterbunt -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 09, 2007 19:35 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Wobei bist du jetzt genau? Was für eine Unit hast du genommen? Die von Andy oder die Aus dem SDK?

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 09, 2007 19:50 
Offline
DGL Member
Benutzeravatar

Registriert: So Jan 07, 2007 21:26
Beiträge: 130
Wohnort: mal hier mal da mal irgendwo
hmmm ... das teil hab ich zum laufen bekommen ... aba mir is grad aufgefallen, das tut ja nich so rotieren wie bei nem egoshooter .... und sowas wollte ich ja eigentlich ... das tut auch nich so rotieren wie ich es will ... oO wenn ich mich da nach links umkucken war das eher son glTranslate-ding als alles andere oO

_________________
Wenn Worte nichts als Worte sind,
dann müssen's Steine sein!
Solange - bis sie pleite sind - schmeißt Fensterscheiben ein!

- Fidl Kunterbunt -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 09, 2007 19:58 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
thebubble hat geschrieben:
hmmm ... das teil hab ich zum laufen bekommen ... aba mir is grad aufgefallen, das tut ja nich so rotieren wie bei nem egoshooter .... und sowas wollte ich ja eigentlich ... das tut auch nich so rotieren wie ich es will ... oO wenn ich mich da nach links umkucken war das eher son glTranslate-ding als alles andere oO

Wenn ich mich recht erinner brauchte man einen Joystick zur Steuerung... Andererseits werden Ego-Shooter Kameras per Euler-Winkel gemacht, da braucht man dann keine hochwertige Kamera sondern 2 Variablen für, die die Winkeldrehung entsprechend beschreiben. Aber Ego Kameras sind imho ja nicht das Gelbe vom Ei, wenn man nicht grad nen Ego-Shooter baut, und wenn man dann kurz eine andere stelle der Szene schön ins Bild setzen will, braucht man auch eine andere art besser steuerbare Kamera. Ansonsten müsste das ja beim lesen des Tuts aufgefallen sein, daß die Kamera andere Sachen macht, als wie du es geplant zu haben scheinst?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 09, 2007 22:12 
Offline
DGL Member
Benutzeravatar

Registriert: So Jan 07, 2007 21:26
Beiträge: 130
Wohnort: mal hier mal da mal irgendwo
ja schon aba ich hab dann auch so gehofft ,dass wenn ich das endlich geschafft hab das ich das dann auch so umschreiben kann wie ich willl also sone kamera wie bei counter strike wenn man tot is und deathcam is und dann Free Look, so was wollte ich machen^^

cuz bubble

Edit:
nen kumpel hatte das schon ma vor 2,3 monaten gemacht und der hat sich auch hier durch die tuts geschlagen .... der hat aber seine ganzen dateien nich mehr weil er formatiern musste .... und da hat er ahlt eine cam gemacht wie ich es wollte ...

und anstatt des joysticks kann man doch auch eine ganz normale maus nehmen und dann alles über mousemove-event machen oda?

_________________
Wenn Worte nichts als Worte sind,
dann müssen's Steine sein!
Solange - bis sie pleite sind - schmeißt Fensterscheiben ein!

- Fidl Kunterbunt -


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 9 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 16 Queries | GZIP : On ]