AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia OpenGL - unterschiedliche Farbdarstellung
Thema durchsuchen
Ansicht
Themen-Optionen

OpenGL - unterschiedliche Farbdarstellung

Ein Thema von meme2822 · begonnen am 6. Jan 2012 · letzter Beitrag vom 11. Jan 2012
Antwort Antwort
Seite 1 von 2  1 2      
meme2822

Registriert seit: 6. Jan 2012
10 Beiträge
 
#1

OpenGL - unterschiedliche Farbdarstellung

  Alt 6. Jan 2012, 10:06
Hallo,

Habe folgendes Problem:

Möchte mit OpenGL Messergebnisse darstellen.
Klappt so weit ganz gut, nur mal werden die Farben so angezeigt, wie sie sollen und mal wesentlich dunkler.
Die eigentlichen Farben sind immer gleich (fülle mit den Werten auch eine Bitmap, sieht immer gleich aus).

Den Hintergrund setze ich mit glclearcolor(1,1,1,0.0) und benutze die 'Standardbeleuchtung' von OpenGL (spiele also nicht mit Licht).

Woran kann es liegen?

Melanie
Miniaturansicht angehängter Grafiken
bild-dunkel.jpg   bild-hell.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: OpenGL - unterschiedliche Farbdarstellung

  Alt 6. Jan 2012, 10:29
Schalt mal die Beleuchtung aus!
Ansonsten liegts eben daran, dass du die Flächennormalen nicht richtig setzt - und dadurch kommts eben zur falschen Beleuchtung!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
meme2822

Registriert seit: 6. Jan 2012
10 Beiträge
 
#3

AW: OpenGL - unterschiedliche Farbdarstellung

  Alt 6. Jan 2012, 10:38
Hallo,

Danke für die schnelle Anwort.

Aber ich schalte gar kein Licht an (oder muss ich es explizit ausschalten)?

Melanie
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#4

AW: OpenGL - unterschiedliche Farbdarstellung

  Alt 6. Jan 2012, 10:55
Das Stichwort ist glDisable(GL_LIGHTING). Damit wird jede Berechnung von Beleuchtungseffekten ausgeschaltet. Alle Elemente werden dann mit ihrer zugewiesenen Farbe dargestellt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
meme2822

Registriert seit: 6. Jan 2012
10 Beiträge
 
#5

AW: OpenGL - unterschiedliche Farbdarstellung

  Alt 6. Jan 2012, 11:05
Danke,

hatte es gar nicht 'enabled'.
Nun habe ich es aber trotzdem 'disabled' (wie gezeigt), aber der gleiche Effekt bleibt:

Mal hell, mal dunkel.

Melanie
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: OpenGL - unterschiedliche Farbdarstellung

  Alt 6. Jan 2012, 11:06
Achso...
Ja dann zeig mal die relevanten Codestellen bitte her!
Durchs Raten allein kann man ja nicht weit kommen
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
meme2822

Registriert seit: 6. Jan 2012
10 Beiträge
 
#7

AW: OpenGL - unterschiedliche Farbdarstellung

  Alt 6. Jan 2012, 11:28
Ist etwas verteilt, aber ich stückel mal die Teile etwas zusammen....

Delphi-Quellcode:
Procedure TdreiD.Render;
begin
  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity;
  gluPerspective(45.0,ClientWidth/ClientHeight,iNearClipping,iFarClipping);
  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity;
  glTranslatef(ITranslationX*SpaceNorm,ITranslationy*SpaceNorm*0.8,ITranslationZ*SpaceNorm);
  glTranslatef(0.5*SpaceNorm,0.5*SpaceNorm,0.5*SpaceNorm);
  glRotatef(IAngleX,1,0,0);
  glRotatef(IAngleY,0,1,0);
  glRotatef(IAngleZ,0,0,1);
  glTranslatef(-0.5*SpaceNorm,-0.5*SpaceNorm,-0.5*SpaceNorm);
  gldisable(GL_LIGHTING);
  if currentShowTyp <> nil then CurrentShowTyp.Plot;
  RenderAxis;
  SwapBuffers(DC);
end;
Zeichnen der Punkte bei 'Plot'..
Delphi-Quellcode:
 for i := 0 to NormedDataSet.Count - 1 do
    begin
      glBegin(GL_POINTS);
        P := NormedDataSet.Items[i];
        glcolor3f(ColoredSet[i,0]/255,ColoredSet[i,1]/255,ColoredSet[i,2]/255);
        glVertex3f(p^.X,P^.Y,p^.Z- SpaceNorm);
      glend;
    end;
Ansonsten noch viel verschieben und rotieren, um die Achsen zu zeichnen.
Wie gesagt, immer der gleiche Code, mal hell mal dunkel!

Melanie
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#8

AW: OpenGL - unterschiedliche Farbdarstellung

  Alt 6. Jan 2012, 11:32
Also auf Anhieb sehe ich keine Fehler.
(Außer das man die Farbe vorher - vorm glBegin() glEnd() Block - setzen sollte; weiß aber nicht, ob das nun etwas zur Sache tut)

Zeig mal deine glEnables() her.
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
meme2822

Registriert seit: 6. Jan 2012
10 Beiträge
 
#9

AW: OpenGL - unterschiedliche Farbdarstellung

  Alt 6. Jan 2012, 11:44
Viele benutze ich nicht...

Delphi-Quellcode:
Procedure TdreiD.SetupGl;
begin
  glClearColor(1,1,1,0.0);
  glenable(GL_DEPTH_TEST);
  glDisable(GL_CULL_FACE);

Delphi-Quellcode:
 glenable(GL_Blend);
  glBLendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
GL_Blend schalte ich allerdings wieder aus, bevor ich die Punkte zeichne..

Danke, Melanie
  Mit Zitat antworten Zitat
meme2822

Registriert seit: 6. Jan 2012
10 Beiträge
 
#10

AW: OpenGL - unterschiedliche Farbdarstellung

  Alt 6. Jan 2012, 11:44
Achso, Farbe vor das glBegin ziehen, bringt auch nichts, habe ich probiert...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz