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

Aktuelle Zeit: Mi Jul 09, 2025 08:11

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



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa Mär 27, 2004 11:18 
Offline
DGL Member

Registriert: Sa Mär 13, 2004 13:12
Beiträge: 12
Hallo NG,

mit folgenden Befehlen versuche ich beim Zeichnen die Punktsträrke und Linienstärke einzustellen:

Code:
  1.  
  2. Proce... DrawScene
  3. Var       lwd   : array[0..1] of GLFloat;
  4.  
  5.   begin
  6.     glGetFloatv(GL_POINT_SIZE_RANGE,@lwd);
  7.     ....
  8.     glLineWidth(LWD[1]*0.03);
  9.     glcolor3f(0.2,0.2,0.2);
  10.  
  11.     glbegin(gl_line_loop);
  12.     glvertex3f(PX[lauf1+1,lauf5],PY[lauf1+1,lauf5],PZ[lauf1+1,lauf5]);
  13.     glvertex3f(PX[lauf1+1,lauf5+1],PY[lauf1+1,lauf5+1],PZ
  14.                                                   [lauf1+1,lauf5+1]);
  15.     glvertex3f(PX[lauf1,lauf4+1],PY[lauf1,lauf4+1],PZ[lauf1,lauf4+1]);
  16.     glend;
  17.  
  18.     glPointSize(lwd[1]*0.2);
  19.     glColor3f(1,0,0);
  20.  
  21.     glBegin(GL_POINTS);
  22.     glvertex3f(PX[BLI[lauf3],BLMPI[lauf3]],PY[BLI[lauf3],BLMPI[lauf3]]
  23.                        ,PZ[BLI[lauf3],BLMPI[lauf3]]);
  24.     glend;
  25.    ......
  26.  


Auf Geforce Karten funktioniert das recht gut, nicht aber auf ATI Raedon Karten. Obwohl ich den neusten Treiber aufspiele etc. werden die Linien am Bildschirm ca. 0.5 cm dick eingezeichnet. Punkte füllen fast den ganzen Bildschirm aus. Es scheint so zu sein, dass die Pixelgrösse nicht rchtig gelesen wird .... oder so ??? :(

Kann mir jemand einen Rat geben ?


Gruss

Markus


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

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Welche Werte stehen denn in LWD? Ich hatte bisher weder mit Linenbreite noch Punktgröße auf meiner Radeon Probleme, und beide Verhalten sich so wie sie sollen. Aber ich glaube mich erinnern zu können das NVidia im Bezug auf diese zwei Dinge nicht korrekt interpretiert, weshalb du also evtl. komplett falsche Werte nutzt, die nur auf NV-Karten korrekt erscheinen.

P.S. : Du aktivierst doch auch mit glEnable(GL_POINT_SMOOTH) das Smoothing von GL_POINT-Primitiven, oder? Ansonsten werden die nämlich nicht rund, sondern als einfache Quads gezeichnet.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mär 27, 2004 13:25 
Offline
DGL Member

Registriert: Sa Mär 13, 2004 13:12
Beiträge: 12
Hallo SOS,

vielen Dank für Deine Antwort.

In LWD steht auf meiner Geforce (1,63,375) - GL_Line und GL_Point SMOOTH sind aktiviert.

Gruss


Markus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mär 27, 2004 14:06 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wie, stehen in deinem zwei-Werte-Array drei Werte drin, oder was? Aber 63 und besonders 375 sind viel zu groß, da solltest du mal kleinere Werte nehmen. Ansonsten evtl. mal auch auf der Radeon den neusten Treiber nutzen oder mal ne Demo hochladen, dann kann ich mir das auch mal angucken. Hatte wie gesagt auf meiner 9700 bisher mit beiden Sachen noch keine Probleme.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mär 27, 2004 14:22 
Offline
DGL Member

Registriert: Sa Mär 13, 2004 13:12
Beiträge: 12
Hallo SOS,

Demo hochladen geht nicht da das Programm zu gross ist.

In LWD stehen nur 2 Werte, ich habe das nur raus kopiert:

1 und 63,375

Kannst Du damit was anfangen ?

Gruss


Markus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mär 27, 2004 14:40 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Stimmt, GL_POINT_SIZE_RANGE gibt dir ja ein Zwei-Werte-Array zurück in dem die minimale bzw. maximale Punktgröße drinne steht. Aber erstmal kleiner Hinweis : Es kann gut sein das sich GL_POINT_SIZE_RANGE und GL_LINE_WIDTH_RANGE voneinander unterscheiden, weshalb du bei Linewidth nicht einfach die maximale POINT_SIZE angeben solltes.

Ausserdem gehst du ja einfach hin und renderst Punkte/Linien mit der maximal von der GL-Implementation her möglichen Punktgröße/Linienbreite. Wenn also ein Treiber dir maximal ne Punktgröße von 512 anbietet, dann ists klar dass dein Punkt dort viel größer erscheint.
Von daher ists eine sehr schlechte Idee immernur die maximale Größe zu nutzen. Besser wäre hier halt du gibst einen festen Wert (z.B. 32) an, den du dann immer verwendest. Das müsste dann immer funktionieren, ausser auf Karten deren GL-Implementation diese Größe nicht unterstützt (z.B. der Kyro, bei dem Min=1.0=Max ist).

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mär 27, 2004 15:05 
Offline
DGL Member

Registriert: Sa Mär 13, 2004 13:12
Beiträge: 12
Hallo SOS,

vielen Dank - ich werde mal die LineWidthRange testen.

Gruss und Danke


Markus


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 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.007s | 14 Queries | GZIP : On ]