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

Aktuelle Zeit: Fr Jul 04, 2025 01:12

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: OpenGL Demo
BeitragVerfasst: Mo Sep 30, 2002 08:53 
Offline
DGL Member
Benutzeravatar

Registriert: So Sep 22, 2002 17:25
Beiträge: 7
Hi Leute, ich weiß das mein Vorhaben nicht so einfach ist wie ich es hier gerade plane. Ich würde gerne ein Kurze Grafikdemo mit OpenGL machen. Dazu sollen z.b. 3D Buchstaben dargestellt werden. Es soll so eine art Teaser für einen Counter-Strike Clan sein. Muss ja nicht lang sein so 10-30 sekunden in der Länge z.B.

1. weiß ich nich wie ich den Ablauf coden muss
2. Kann man den Screen schwarz faden ?
3. wie soll ich das ganze angehen *g*

Ich hab schon paar Tutorials gemacht. Kann diese Pyramiden mit einer bewegenden Textur darstellen und so. Das ist aber mehr so ein "loop" Ablauf.

Hab mit Grafikdemos noch nie so viel gemacht außer sie angeguckt!

Hoffe ihr könnt mir bissl helfen :)!
Thx im Vorraus.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 30, 2002 10:48 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Gehe mal nach Sulaco und ladte Dir Biohazzard runter oder auch Foundry von Nitrogen. Sollte ne gute Möglichkeit sein einen Einblick zu kriegen, wie man sowas macht.

Das faden des Screens wird am besten mit Blending möglich sein. Siehe auch tut 7 ;)

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 30, 2002 12:43 
Offline
DGL Member
Benutzeravatar

Registriert: So Sep 22, 2002 17:25
Beiträge: 7
Boah das ist ein Flut an SourceCode *g*. Einfach kopieren und pasten macht kein Sinn, denn davon versteh ich es ja nicht. Wie denkst du soll ich im Detail vorgehen ? :( Sorry falls das ne dumme Frage ist aber...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 30, 2002 12:48 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Auf jeden Fall nicht Copy&Paste ;) Schau Dir einfach mal an, wie sie diesen Szenen im allgemeinen aufbauen z.B. Zeitsteuerung etc. Wird meistens ehe nur mit einem durchlaufenden Tick-Wert gemacht, der dann bei sagen wir 500 auf ein Event reagiert und das fading beginnt. Sorry, aber da muss man durch ;)

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 30, 2002 13:00 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 28, 2002 19:27
Beiträge: 568
Wohnort: Chemnitz / Sachsen
ja glaub mir ich habe das programm vor kurzem auch gehabt.

also lad dir biohazzard und foundry runter (foundry bringt nicht ganz so viel).

lese dir das alles gut durch und verstehe, wie er das mit den Szenen gemacht hat, danach ist alles ziemlich einfach.

_________________
Aktuelles Projekt :
www.PicPlace.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 30, 2002 13:52 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
ich lass hier mal das wort state machine fallen... mach dich in der richtung mal schlau, ich denke da ist ein bischen was dabei was dich intressieren könnte. Einen ganz guten Text dazu findest du hier: <a href='http://www.alistairkeys.co.uk/states.shtml' target='_blank'>http://www.alistairkeys.co.uk/states.shtml</a>


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 30, 2002 16:01 
Offline
DGL Member
Benutzeravatar

Registriert: So Sep 22, 2002 17:25
Beiträge: 7
Ich weiß ja nicht aber liege ich richtig, dass bei Biohazard alles am Anfang schon geladen wird. Aber nur nicht sichtbar ist und zum entsprechenden Zeitpunkt nur noch der Alphawert hochgesetzt wird etc. ?

Und zum Thema States: Für mich heisst das, dass du mir sagen willst, dass ich meine Programm richtig struktieren sollte, stimmts Delphic ;D ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 30, 2002 16:04 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Nicht ganz. Es mag alles von Anfang an geladen sein, wird aber erst ab 'nem bestimmten Zeitpunkt gerendert.

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 30, 2002 16:42 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Zitat:
Und zum Thema States: Für mich heisst das, dass du mir sagen willst, dass ich meine Programm richtig struktieren sollte, stimmts Delphic ;D ?

Das erzähl ich sowieso immer... Aber das ist nicht der Hauptzweck von States, sondern zum Beispiel dass sich das rendern von unterschiedlichen Szenen sehr schön mit States realisieren lässt


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Okt 02, 2002 11:42 
Offline
DGL Member
Benutzeravatar

Registriert: So Sep 22, 2002 17:25
Beiträge: 7
Eure Hilfe war bis jetzt schon gut. Ich hab mir jetzt schon viel, oft und lang den Biohazzard code angeguckt und auch öfters abgespielt. Ich versteh trotzdem noch sehr viel nicht von dem Code. Ich mein ich weiß, dass sowas nicht in 2 Minuten geht. Aber ich brauch irgendwas, damit ich die einzelnen Zeilen etwas besser verstehe.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Okt 02, 2002 12:53 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Dann poste am besten einzelne (wirklich nur einzelne mehr macht keinen Sinn) und wir versuchens zu erklären ;)

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Okt 02, 2002 12:59 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Ob der Bio-Hazard das nun so macht, weis ich nicht, aber ich würde es so machen.

Code:
  1.  
  2.  
  3. var
  4.  
  5.  &nbsp;CurID : Integer = 1;
  6.  
  7.  &nbsp;Fertig : Boolean = False;
  8.  
  9.  
  10.  
  11. procedure MainLoop;
  12.  
  13. begin
  14.  
  15.  &nbsp;while not Fertig do
  16.  
  17.  &nbsp;begin
  18.  
  19.  &nbsp; &nbsp;case CurID of
  20.  
  21.  &nbsp; &nbsp; &nbsp;1 : RenderDemo1;
  22.  
  23.  &nbsp; &nbsp; &nbsp;2 : RenderDemo2;
  24.  
  25.  &nbsp; &nbsp; &nbsp;3 : RenderAbspann;
  26.  
  27.  &nbsp; &nbsp;end;
  28.  
  29.  &nbsp; &nbsp;SwapBuffers(...);
  30.  
  31.  &nbsp;end;
  32.  
  33. end;
  34.  
  35.  
  36.  
  37. procedure RenderDemo1;
  38.  
  39. begin
  40.  
  41.  &nbsp;// Hier der eigentliche Render-Code mit Zeitabhängigen Aktionen usw.
  42.  
  43.  &nbsp;// Wenn die letzte Aktion aingetreten ist, CurID auf 2 Setzen.
  44.  
  45.  &nbsp;if LastActionDone then CurID := 2;
  46.  
  47. end;
  48.  
  49.  
  50.  
  51. procedure RenderDemo2;
  52.  
  53. begin
  54.  
  55.  &nbsp;// Hier der eigentliche Render-Code mit Zeitabhängigen Aktionen usw.
  56.  
  57.  &nbsp;// Wenn die letzte Aktion aingetreten ist, CurID auf 3 Setzen.
  58.  
  59.  &nbsp;if LastActionDone then CurID := 3;
  60.  
  61. end;
  62.  
  63.  
  64.  
  65. procedure RenderAbspann;
  66.  
  67. begin
  68.  
  69.  &nbsp;// Hier der eigentliche Render-Code mit Zeitabhängigen Aktionen usw.
  70.  
  71.  &nbsp;// Wenn die letzte Aktion aingetreten ist, CurID auf 2 Setzen.
  72.  
  73.  &nbsp;if LastActionDone then
  74.  
  75.  &nbsp; &nbsp;if LoopIt then CurID = 1 else Fertig := True;
  76.  
  77. end;
  78.  
  79.  


Zur Erklärung: Je nach wert von CurID wird die aktuelle Szene Gerendert. Wenn diese fertiggerendert ist, wird CurID erhöht, um das die nächste Szene Rendern zu lassen. Beim letzten (RenderAbspann) wird überprüft, ob das ganze im Dauerlauf gehen soll. Wenn ja, CurID auf 1 setzen, damit das erste wieder gestartet wird, anderen Falls Fertig auf True setzen, um die Schleife zu beenden. Das ganze ist nur Pseudocode um das Schema darzustellen.

In Deinen RenderXXX Funktionen musst du Entsprechende Zeitabhängige Aktionen einbauen.

Code:
  1.  
  2.  
  3. procedure RenderDemo1;
  4.  
  5. begin
  6.  
  7.  &nbsp;TimeGone := Ermittel die vergangene Zeit seit Eintitt in die RenderDemo1;
  8.  
  9.  
  10.  
  11.  &nbsp;if TimeGone < 10 then RenderCubeRotated else
  12.  
  13.  &nbsp;if TimeGone < 20 then RenderRotatedCD else
  14.  
  15.  &nbsp; &nbsp;CurID := 2;
  16.  
  17. end;
  18.  
  19.  

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Okt 02, 2002 13:05 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Nur so als Anmerkung: Das ist eine State Machine, die ich vorhin eh schon einmal erwähnt hab... In OOP sind sie meistens noch etwas schöner und übersichtlicher


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Okt 02, 2002 13:09 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Stimmt. Wollte ja nur mal PseudoCode zur State-Machine ausgeben, damit man etwas überblick hat (oder vollends verwirrt ist ;) ) Aber ich muss DelphiC recht geben: Macht das ganze Objektorientiert und ihr habt's viel leichter und Übersichtlicher!

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 12 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 15 Queries | GZIP : On ]