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

Aktuelle Zeit: Fr Jul 18, 2025 08:53

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



Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Star Wars Intro
BeitragVerfasst: Di Mai 24, 2005 12:53 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 19, 2004 00:27
Beiträge: 454
Wohnort: Nürnberg
Ich frage mich gerade wie man das Star Wars Intro

(Screenshot:
Bild)

in OGL realisieren könnte.
Das Logo, das dann so nach hinten fliegt hab ich schon, aber das mit dem Introtext macht mir noch Probleme.
Hat jemand eine Idee?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 24, 2005 13:10 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also ich denke mal das läuft eher auf eine Textur hinaus. Polygonts ermöglichen dir zwar eine bessere Flexibilität aber ohne FSAA sehen die leider ein wenig unschön aus. Speziell umso weiter weg sie sind.

Alles andere ist nur eine schiefe Ebene die du verschieben musst. Ein bisschen nach hinten und noch weniger nach unten verschoben und ein wenig angekippt. So würde es eigentlich ausreichen wenn du sie ins Bild schiebst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 24, 2005 13:16 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Das Problem dürften bei der Textur-Variante natürlich die durchscheinenden Sterne sein. Entweder arbeitest du dann mit einer Alpha-Textur oder machst es über Fonts (kompliziert, vor allem die Blockschrift)...

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Zuletzt geändert von La Boda am Di Mai 24, 2005 13:17, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 24, 2005 13:17 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 19, 2004 00:27
Beiträge: 454
Wohnort: Nürnberg
Also einfach nur von jedem Punkt

y := y + 0.2;
z := z - 0.2;

oder ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 24, 2005 13:18 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Kommt auf die Neigung deiner Textur-Fläche drauf an...

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 24, 2005 13:39 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 19, 2004 00:27
Beiträge: 454
Wohnort: Nürnberg
Yeah, funktioniert !!!!!!!!!!!! :D:D:D:D:D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 24, 2005 13:46 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also ich würde mit nem Alphakanal in der Textur arbeiten und die dann blenden. So kannst du das nachhinten hin auch schön ausfaden und dadurch werden die ränder auch noch mal weicher.

Also evtl kannst das auch so machen, dass du entsprechend weit nach hinten schiebst (Translate) dann setzt du Neigung somit wird dann automatisch um den definierten Mittelpunkt (0, 0, 0) gedreht. Damit sollte es eigentlich genügen, dass du die mit translate immer nur weiter schiebst und durch die Reihenfolge der Aufrufe dann automatisch von OpenGL an der gleichen stelle gehalten wird. Also nicht, dass du die geneigte Fläche verschiebst sondern auf der Neigungsachse die Fläche verschiebst. Das dürfte auch in etwas das sein was du da hast. Nur wenn du einen anderen Winkel nimmst, dann müsstest du das umrechnen. Also damit es wieder genau da verschoben wird es soll. Hoffe das nicht zu verwirrend. Habe mich ja selber fast abgehangen. ;-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 24, 2005 14:07 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 19, 2004 00:27
Beiträge: 454
Wohnort: Nürnberg
Kann man eigentlich eine Farbe bestimmten, die er transparent zeichnen soll, anstatt eine "Maske" zu benutzen???


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 24, 2005 14:55 
Offline
DGL Member

Registriert: Fr Dez 19, 2003 14:27
Beiträge: 107
Wohnort: Indianapolis, USA
Du setzt einfach die Maske entsprechend. In meiner Texture Unit sieht das so aus:

Code:
  1. procedure TTokTexture.SetAlphaTransparentForColor(const Color:TColor);
  2. var
  3.   x,y   : Integer;
  4.   P     : PByteArray;
  5.   r,g,b : Byte;
  6. begin
  7.   r:=(Color       ) and $ff;
  8.   g:=(Color shr  <!-- s8) --><img src=\"{SMILIES_PATH}/icon_cool.gif\" alt=\"8)\" title=\"Cool\" /><!-- s8) --> and $ff;
  9.   b:=(Color shr 16) and $ff;
  10.   for y:=0 to fBitmap.Height-1 do begin
  11.     p:=fBitmap.ScanLine[y];
  12.     for x:=0 to fBitmap.Width-1 do begin
  13.       if (P[x shl 2+0]=r) and (P[x shl 2+1]=g) and (P[x shl 2+2]=b) then
  14.         P[x shl 2+3]:=0
  15.       else
  16.         P[x shl 2+3]:=255;
  17.     end;
  18.   end;
  19.   RegisterTexture;
  20. end;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 24, 2005 15:01 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 19, 2004 00:27
Beiträge: 454
Wohnort: Nürnberg
Sry, versteh ich nicht ganz.
Wie geht das mit glBMP ?????

P.S.: Wie hast du den Codekasten gemacht ???????


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 24, 2005 15:09 
Offline
DGL Member

Registriert: Fr Dez 19, 2003 14:27
Beiträge: 107
Wohnort: Indianapolis, USA
Du musst eine Textur ja irgend wie in den Speicher laden damit du sie dann OpenGL uebergeben kannst, ich nehm dazu einfach ein TBitmap im pf32bit Format. Somit kann ich auch ganz einfach noch drauf zeichnen etc. Wenn du ein Array oder was auch immer verwendest musst du es halt noch anpassen.

Mein Bitmap uebergebe ich dann so an OpenGL:
Code:
  1. gluBuild2DMipmaps(GL_TEXTURE_2D,4,fBitmap.Width,fBitmap.Height,GL_BGRA,GL_UNSIGNED_BYTE,fBitmap.ScanLine[fBitmap.Height-1]);


PS: Den Kasten habe ich mit dem Pascal Knopf (oben rechts) gemacht :-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 24, 2005 15:11 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Durch bestimmte Combiner oder Texturmodulationen wäre es möglich Schwarz so rauszublenden. Aber das würde dann entsprechend auch auf den Rest der Textur übertragen. Also würde deine Schwrift auch mit moduliert werden. Das einzige was da richtig geht ist der Alphakanal.

Was mir gerade einfällt. Wenn du es aufwendig gestalten willst kannst du auch den Text mittels Texturfont zusammenbauen. Dann hast du den Vorteil, dass du nur eine einzige Textur hast (sogar noch eine recht kleine) und völlig freie Wahl in dem was du darstellen möchtest. Ist aber vom Aufwand her nicht sonderlich gering. Ich sage mal nur Blockschrift und oder automatischer Zeilenumbruch. Ist aber vom Schwierigkeitsgrad auch wiederum nicht so extrem schwer. Zu mindest wenn du die Notwendigen Informationen hast.

Aber für ein einmaliges Intro ist es alle mal zu viel Aufwand. Da würde ich lieber ein festes Bild benutzen.

@glBitmap oder glBMP: In beiden existiert eine Möglichkeit anhand eines Farbwertes eine Alphakanal zu erstellen. In der glBitmap habe ich im übrigen auch noch eine Tolleranz eingebaut.
In der glBitmap heißt die Methode AddAlphaFromColorKey(Red, Green, Blue: Byte; Deviation: Byte = 0): Boolean;
In der glBMP müsste das aber auch was mit ColorKey sein.

@tokter: Mit einem PRGBQuad geht es einfacher. Dann musst du nämlich kein Offset ausrechnen das übernimmt dann elphi für dich. Wobei er ja kein richtiges Offset ausrechnen muss. ;-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 24, 2005 15:19 
Offline
DGL Member

Registriert: Fr Dez 19, 2003 14:27
Beiträge: 107
Wohnort: Indianapolis, USA
Stimmt, guter Vorschlag :D. Ich shifte eben so gerne da ist mir das pRGBQuad noch nie aufgefallen :lol:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 24, 2005 15:29 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Das ist auch durchaus sehr löblich. :-)

Es geht im übrigen noch eine Alternative die Textur hochzuladen als mit gluBuild2DMipmaps. Moderne Karten (GL_VERSION_1_4 oder GL_SGIS_generate_mipmap) sind von alleine in der Lage MipMaps zu erstellen. Dann genügt auch ein normaler aufruf von glTexImage2D. Mit vorherigem glTexParameteri(TextureTarget, GL_GENERATE_MIPMAP, GL_TRUE);

Finde ich persönlich besser, da die Glut auch ganz gerne die Textur anpasst, wenn sie keine n^2 ist. Aber dann darf die Textur auch nicht vorhanden sein, da sie ja eigentlich nicht gültig ist aber von glut wieder gültig gemacht wurde.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 24, 2005 15:34 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 19, 2004 00:27
Beiträge: 454
Wohnort: Nürnberg
Danke, Hat alles geklappt. Bei Interesse kann ich einen Screenshot posten :D


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


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 5 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.009s | 17 Queries | GZIP : On ]