Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » OpenGL » Nebel unter Opengl

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
01.01.2004, 14:03 Uhr
PacMan



Hallo allerseits

Bin gerade dran mich in Sachen OpenGL schlau zu machen, bin dabei aber auf folgendes Problem gestossen: wenn ich einen Nebel definiere mittels GL_FOG_MODE(linear), GL_FOG_START und GL_FOG_END, dann wird mir zwar ein Nebel erzeugt, jedoch wenn ich in den GL_PROJECTION Modus wechsle und die Ansicht verändere, um das ganze von einer anderen Position anzuschauen, so bleibt der Nebelrand einfach "stehen", statt das er sich mit der Kamera mitbewegt. Wie kann ich erreichen, das der Nebelrand sich mit der Kamera fortbewegt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.01.2004, 15:34 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


wie drehst du den die kamera? am besten ein stück quellcode und dann vielleicht ein screenshot indem man sieht was du mit nebelkante meinst
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
01.01.2004, 17:18 Uhr
PacMan



Hallo Flo

Unter http://pubwww.fhzh.ch/~abianchi/bild.jpg findest Du einen Screenshot.
Wie Du siehst, verläuft der sichtbare Bereich in den Bildschirm hinein, imhoho sollte der doch eigentlich parallel zur Ansicht verlaufen. Also, sozusagen mit der Kamera mitlaufen, aber der sichtbare Streifen bleibt, wo er ist.

Hier ein Ausschnitt aus der Zeichnungsroutine:

C++:
        glClearColor(0.5f, 0.5f, 0.5f, 0.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    
    glMatrixMode(GL_MODELVIEW);
     glLoadIdentity();
    landscape->callCallList();
    glMatrixMode(GL_PROJECTION);
    glRotatef(mxangle, 0.0f, 1.0f, 0.0f);               // <-- Hiermit drehe ich die Kamera
    glTranslatef(currentX, currentY, currentZ);   // <-- und verschiebe sie hier
    glFinish();



Der Nebel wird einmal bei der Initialisierung eingestellt.


C++:
    GLfloat fogCol[] = {0.5f, 0.5f, 0.5f, 1.0f};
    
    glFogf(GL_FOG_MODE, GL_LINEAR);
    glFogf(GL_FOG_START, 0.0);
    glFogf(GL_FOG_END, 10.0);
    glFogfv(GL_FOG_COLOR, fogCol);
    glEnable(GL_FOG);


Dieser Post wurde am 01.01.2004 um 17:19 Uhr von PacMan editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
01.01.2004, 19:18 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Probier mal folgendes aus:

Füge folgendes zu deiner Initialisierung hinzu:

C++:
glShadeModel(GL_SMOOTH);



Vielleicht bewirkt das einen "angenehmeren" Rand

Ansonsten könnte es sein das du aus dem sichtbaren bereich "rausgedreht" hast, also das er den rest abschneidet
--
class God : public ChuckNorris { };

Dieser Post wurde am 01.01.2004 um 19:19 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.01.2004, 11:33 Uhr
PacMan



...leider auch nicht. Habs gestern noch mit der Extension GL_EXT_fog_coord versucht. Leider ist dies an der Funktion glXGetProcAddress() gescheitert, die mir immer wieder einen dynamischen Fehler "relocation error undefined symbol" ausgab. Jääää nü
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
02.01.2004, 14:39 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


vielleicht resized du die Szene falsch? Sodass dann eben die Projektion falsch wird.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
02.01.2004, 17:02 Uhr
PacMan



jo, habs rausgefunden! Den sichtbaren Teil kann man im GL_MODELVIEW Modus mit glTranslatef und glRotatef herumschieben.

Screenshot: http://pubwww.fhzh.ch/~abianchi/sosollessein.jpg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ OpenGL ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: