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

Aktuelle Zeit: Sa Jul 19, 2025 09:19

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



Ein neues Thema erstellen Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Farbverlauf..
BeitragVerfasst: So Dez 15, 2002 20:35 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich hab mal ne frage...
Wenn ich dieses 4-Eck zeichne:
Code:
  1.   glBegin(GL_QUADS);
  2.  
  3.     glColor3f(1,0,0);
  4.  
  5.     glVertex2f(0,0);
  6.  
  7.     glColor3f(0,1,0);
  8.  
  9.     glVertex2f(0,1);
  10.  
  11.     glColor3f(1,0,0);
  12.  
  13.     glVertex2f(1,1);
  14.  
  15.     glColor3f(0,1,0);
  16.  
  17.     glVertex2f(1,0);
  18.  
  19.   glEnd;


kommt dieses bei raus:
Bild

Meine Frage jetzt... Wieso ist das Rote Durchgehend??? Normalerweise müßten alle 4 ecken gleich verteilt sein, sind sie aber nicht...

Weiß jemand woran das liegt, oder ob ich etwas dagegen machen kann??

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 15, 2002 21:46 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Laut deiner Quelle sind die Farben genau andersrum also rot außen und grün innen. Aber was soll denn dort falsch sein? Erkläre mal bitte was du dort erwartet hättest!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 15, 2002 21:52 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

na ja...Die Farbverteilung sollte doch normalerweise in jeder Ecke gleich sein...

Beispiel:
Code:
  1.   glBegin(GL_QUADS);
  2.  
  3.     glColor3f(1,1,1);
  4.  
  5.     glVertex2f(0,0);
  6.  
  7.     glColor3f(1,1,1);
  8.  
  9.     glVertex2f(0,1);
  10.  
  11.     glColor3f(1,1,1);
  12.  
  13.     glVertex2f(1,1);
  14.  
  15.     glColor3f(1,0,0);
  16.  
  17.     glVertex2f(1,0);
  18.  
  19.   glEnd;

ergibt dieses Bild:
Bild

Code:
  1.   glBegin(GL_QUADS);
  2.  
  3.     glColor3f(1,1,1);
  4.  
  5.     glVertex2f(0,0);
  6.  
  7.     glColor3f(1,1,1);
  8.  
  9.     glVertex2f(0,1);
  10.  
  11.     glColor3f(1,0,0);
  12.  
  13.     glVertex2f(1,1);
  14.  
  15.     glColor3f(1,1,1);
  16.  
  17.     glVertex2f(1,0);
  18.  
  19.   glEnd;

ergibt dieses Bild:
Bild

Aber, müßte nich das 2te genau das gleich wie das erste ergeben, nur mit dem unterschied das es 90° gedreht ist???

Au'revoir,
Aya


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 15, 2002 21:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Schätze Aya meint, dass es so ungefähr aussehen müsste
Bild
(made by Paintshop)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 15, 2002 22:02 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Ja, oder zummindest so ähnlich... es müßen halt alle 4 ecken gleich aussehen.. :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 15, 2002 23:18 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 06, 2002 20:27
Beiträge: 479
Wohnort: Bremen
ein polygon ist über die eckpunkte definiert. ein quad also über die 4 ecken. jedem eckwert weißt du mit glColor3f(?,?,?) eine farbe zu. das erste ? steht für rot, das zweite für grün und das dritte für blau.

die farbe jedes pixel des polygons wird nun auß den eckfarben zusammengerechnet (interpoliert). dabei steuern die eckpunkten die am dichtesten drann sind am meisten zum ergebnis bei.

das erklärt auch warum dein ergebnis aussieht wie es aussieht.... oder?

_________________
Selber Denken macht klug!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 15, 2002 23:21 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
*grübel*
Das erklärt es vieleicht dir... :oops: Ich werd aus dem was du da schreibst nich schlau, zummindest sehe ich daran keinen grund warum es so ist wie es ist... :roll:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 15, 2002 23:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 06, 2002 20:27
Beiträge: 479
Wohnort: Bremen
Erklär am besten nochmal, was du mit "Normalerweise müßten alle 4 ecken gleich verteilt sein, sind sie aber nicht... " im 1. post meinst. Vielleicht seh ich dann ja wo's hakt...

_________________
Selber Denken macht klug!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 15, 2002 23:41 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Meiner Meinung nach müßte es so aussehen:
Bild und nicht so wie es OpenGL Zeichnet: Bild
<span style='font-size:16pt;line-height:100%'>(nur halt mit Grün/Rot)
Das Bild ist mit PaintShop gemacht</span>

Au'revoir,
Aya


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 15, 2002 23:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 06, 2002 20:27
Beiträge: 479
Wohnort: Bremen
nun sehe ich was du meinst....

dass leigt evtl daran, dass 3d-grafik mit dreiecken arbeitet und das quad erst in zwei dreiecke zerlegt wird. Damit geht dann die Farbinformation des 4 Vertex verloren...

_________________
Selber Denken macht klug!


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

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
mhh... hast du irgendne idee was ich dagegen machen könnte? :(


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 16, 2002 00:15 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Im Zweifelsfall evtl. mit Blending. Dann würdest Du zumindest ein ähnliches Ergenis erreichen wie mit deinem Photoshop-Bild. Zumal es mehre Effekte zulassen würde. Was genau versuchst Du den damit zu erreichen?

btw: Kreativer Thread, muss ich sagen und gut illustriert :)

_________________
"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 Dez 16, 2002 01:26 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
huhu,

wie genau meinst du denn das mit Blending???

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 16, 2002 02:08 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 06, 2002 20:27
Beiträge: 479
Wohnort: Bremen
Blending bedeutet, dass du mehrere Objekte übereinander renderst, wobei diese sich in irgendeiner Form überlagern. (nicht überdecken)

Für das Rot-Blau-Problem sähe eine evtl. Lösung folgendermaßen aus:

Code:
  1.  
  2.  
  3. glBegin(GL_QUADS);
  4.  
  5.  &nbsp; &nbsp;glColor3f(1,0,0);
  6.  
  7.  &nbsp; &nbsp;glVertex2f(0,1);
  8.  
  9.  &nbsp; &nbsp;glColor3f(0,0,0);
  10.  
  11.  &nbsp; &nbsp;glVertex2f(0,0);
  12.  
  13.  &nbsp; &nbsp;glColor3f(1,0,0);
  14.  
  15.  &nbsp; &nbsp;glVertex2f(1,0);
  16.  
  17.  &nbsp; &nbsp;glColor3f(0,0,0);
  18.  
  19.  &nbsp; &nbsp;glVertex2f(1,1);
  20.  
  21.  &nbsp;glEnd;
  22.  
  23.  &nbsp;
  24.  
  25.  &nbsp;glEnable(GL_BLEND);
  26.  
  27.  &nbsp;glBlendfunc(GL_SRC_ALPHA,GL_ONE);
  28.  
  29.  &nbsp;
  30.  
  31.  &nbsp;glBegin(GL_QUADS);
  32.  
  33.  &nbsp; &nbsp;glColor4f(0,0,1,1);
  34.  
  35.  &nbsp; &nbsp;glVertex2f(0,0);
  36.  
  37.  &nbsp; &nbsp;glColor4f(0,0,1,0);
  38.  
  39.  &nbsp; &nbsp;glVertex2f(0,1);
  40.  
  41.  &nbsp; &nbsp;glColor4f(0,0,1,1);
  42.  
  43.  &nbsp; &nbsp;glVertex2f(1,1);
  44.  
  45.  &nbsp; &nbsp;glColor4f(0,0,1,0);
  46.  
  47.  &nbsp; &nbsp;glVertex2f(1,0);
  48.  
  49.  &nbsp;glEnd;
  50.  
  51.  &nbsp;glDisable(GL_BLEND);
  52.  
  53.  


Allerdings ist das in der mitte jetzt ein schönes helles Rosa. Um das weiß zu machen, wie in deiner Fotoschop-Vorlage bräuchte man entweder eine bessere Blending-Methode als meine (die mir nicht einfällt), eine fertige Textur (was du nicht willst) oder man muss das Quad aus vier Dreiecken aufbauen.

Ich hoffe, das hilft dir. Ansonsten musst du dein Problem noch etwas genauer beschreiben... ;)

Und bei der Gelegenheit kann ich dir noch gleich zum Geburtstag gratulieren:

HERZLICHEN GLÜCKWUNSCH! :wink:

_________________
Selber Denken macht klug!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 16, 2002 08:13 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Zur Not kannst du das Quad (bzw. die beiden beim Blending) in 4 Dreiecke zerlegen und dann alle Punkte so definieren wie du willst.
So hast du dann auch noch die Kontrolle über den fünten Punkt (Die 4 Mittelpunkte).


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder 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.009s | 15 Queries | GZIP : On ]