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

Aktuelle Zeit: So Jul 27, 2025 11:59

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mi Aug 25, 2004 17:39 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Als erstes wollte ich die Funktion glBitmap ausprobieren. Als diese dann nicht so funktionierte(nämlich gar nicht) wie ich vermutete hatte ich es auch nochmal mit glDrawPixels versucht.

Schließlich versuchte ich es auch noch mit glRasterPos.
Nach dem Aufruf dieser Funktion fragte ich dann mit glGetFloatv die übergebene Position ab, erhielt aber nur 4 mal den Wert 0.

Das war mein Test Code:
Code:
  1.  
  2. (*
  3. var
  4.   Position:record X,Y,Z,W:GLFloat end;
  5.   Color:record R,G,B,A:glFloat end;
  6. begin
  7.   glLoadIdentity;
  8.   glClearColor(0.50,0.5,0.5,0.5);
  9.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  10.   *)
  11.   glRasterPos2f(1,1);
  12.   glGetIntegerv(GL_CURRENT_RASTER_POSITION,@Position);
  13.   if Position.X <> 0 then ShowMessage('Test bestanden');//Geht nicht
  14.   glColor3f(1,0,0);
  15.   glGetFloatv(GL_CURRENT_COLOR,@Color);
  16.   if Color.R = 1 then ShowMessage('Farb Test bestanden'); //Erscheint
  17.  
  18.   (*
  19.   glTranslatef(-0.5,-0.5,-1);
  20.   //glDrawBuffer(GL_AUX0);
  21.   glBegin(GL_QUADS);
  22.   glColor3f(1,0,0);
  23.     glColor3f(0,0,1);glVertex2f(0,0);
  24.     glColor3f(0,1,1);glVertex2f(0,1);
  25.     glColor3f(1,1,0);glVertex2f(1,1);
  26.     glColor3f(1,0,1);glVertex2f(1,0);
  27.   glEnd;
  28.  
  29.   glDrawPixels(10,10,GL_BLUE,GL_UNSIGNED_BYTE,@MyBitmap);
  30.   glBitmap(8,8,0,0,10,0,@Bitmap2);
  31.   glBitmap(8,8,0,0,10,0,@Bitmap2);
  32.   glBitmap(8,8,0,0,10,0,@Bitmap2);     *)
  33.  


Ach und noch etwas.
Was kann man sich eigentlich unter einer Rasterposition vorstellen?
(Beziehen die sich auf die Fenster-Koordinaten oder auf eine der Matrizen)

Und was meinen die in der Delphi-Hilfe damit wenn es heißt, die Funktion schreibt in den Frame Buffer?
Zitat:
The glDrawPixels function writes a block of pixels to the frame buffer.

MfG
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 31, 2004 21:23 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Mit glBitmap habe ich jetzt keine Problemme mehr.

Mit glRasterPos kann ich aber immer noch nichts anfangen.

Hat die Funktion etwa noch keiner benutzt oder habe ich etwas falsches gepostet?
MfG
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 03, 2004 19:05 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Hm, da keiner ne Antwort postet tu ichs mal, auch wenn ich glRasterPos nur sehr selten benutze : Im Endeffekt kannst du dir glRasterPosf als ein glTranslatef nur mit X/Y vorstellen, mit dem du die Basis des 2D-Koordinatensystems verschiebst. Wenn du also z.B. im Orthomodus Schrift ausgeben willst, dann kannst du diese mit glRasterPos ausrichten. In einem anderen Zusammenhang (also ausser Positionierung unter glOrtho) habe ich glRasterPos allerdings noch nicht benutzt. Hoffe die Erklärung hilft etwas weiter.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 03, 2004 20:26 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Weil das glRasterPos von der aktuellen Matrix abhängt gibt es da auch die Extension GL_ARB_window_pos mit der man die Position dann mit der Funktion glWindowPos direkt setzen kann.
Aber Bitmap Fonts soll man ja sowieso mit den neueren ATI Karten nicht mehr verwenden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Sep 04, 2004 13:13 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Ich hatte es letzens schon geschaft die Martix mit glRasterpos zu verschieben, hatte aber vergessen es neben dem Wiki:
http://wiki.delphigl.com/index.php/WglU ... s#Beispiel
Auch hier einzutragen.
Es hat nicht funktioniert da der Punkt (0,0,0) (aus welchen Grund auch immer)wenn man auf ihn die Indentitäts-Martix (Modelview-Matrix) anwendet, nicht sichtbar ist.

Wenn man nun einen negtiven Z Wert angiebt, so ist die neu zugewiesene Position sichtbar, und somit gültig.

Möchte man die Ratserposition also in die Mitte des Bildschirmes setzen so macht man das so:
Code:
  1.  
  2. glRasterpos3f(0,0,-1);
  3.  


Da man allerdings auf diese Weise keine so guten Positionierungs-Möglichkeiten hat,
werde ich mir die Erweiterung GL_ARB_window_pos mal anschauen.


Zitat:
Aber Bitmap Fonts soll man ja sowieso mit den neueren ATI Karten nicht mehr verwenden.

Im Wiki hattest du diese Zeile wieder gestrichen. Was ist nun damit?

MfG
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Sep 04, 2004 14:41 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Ich glaube das gehört da nicht unbedingt rein. Im ATI OpenGL SDK steht dazu folgendes:

Zitat:
While glBitmap is hardware accelerated on the Radeon 9500+ series, it is relatively performance intensive. Rendering bitmaps on a 3D scene may cause a noticeable slowdown. To get the best performance out of bitmaps, they should typically be compiled into a display list. For even better performance, a user should use textures for rendering widgets and text on top of their 3D screen.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 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.012s | 16 Queries | GZIP : On ]