Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Lichtmodell wird verfälscht

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Caran



Anmeldungsdatum: 11.03.2007
Beiträge: 290
Wohnort: Lörrach

BeitragVerfasst am: 22.05.2008, 23:24    Titel: Lichtmodell wird verfälscht Antworten mit Zitat

Hoi,
nachdem ich aufgrund von Depthbuffer-Problemen meine OpenGL-Szene skaliert habe, stimmt etwas mit der Beleuchtung der Szene nicht mehr. Warscheinlich liegt es daran, dass die Normalen der Dreiecke auch skaliert werden. Aber wie kann ich das verhindern? Hat OpenGL irgend eine Funktion auf Lager mit der man daws beheben kann?

MfG, Caran
_________________
Eine Erkenntnis von heute kann die Tochter eines Irrtums von gestern sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Caran



Anmeldungsdatum: 11.03.2007
Beiträge: 290
Wohnort: Lörrach

BeitragVerfasst am: 24.05.2008, 22:54    Titel: Antworten mit Zitat

Okey habs herausgefunden: glEnable(GL_NORMALIZE)
Das brint die Normalen die über glNormal* gesetzt wurden wieder auf ihre Ausgangsgröße vor der Skalierung.

MfG Caran
_________________
Eine Erkenntnis von heute kann die Tochter eines Irrtums von gestern sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 24.05.2008, 22:59    Titel: Antworten mit Zitat

Kostet aber mehr Rechenzeit (meines Wissens nach) zwinkern
Daher bei größeren Szenen evtl. doch eher den Viewport verkleinern, und den Framebuffer skalieren? (GPU seitig)
Ist dann garantiert schneller zwinkern

Und wo wir da gerade schon sind: ( zwinkern )
glNormal3f bzw. glNormal3fv sind auch einen kleinen Tick schneller als ihre Kollegen zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Caran



Anmeldungsdatum: 11.03.2007
Beiträge: 290
Wohnort: Lörrach

BeitragVerfasst am: 25.05.2008, 10:56    Titel: Antworten mit Zitat

Das stimmt es kostet wirklich mehr Rechenzeit....es gibt nich was anderes: glEnable(GL_RESCALE_NORMAL) oder so. Aber das macht meine Szene nur noch vehlerhafter.
Wie kann man den Framebuffer skalieren?

Grüße Caran
_________________
Eine Erkenntnis von heute kann die Tochter eines Irrtums von gestern sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 25.05.2008, 14:56    Titel: Antworten mit Zitat

Also wenn du SDL nutzt, liegt der Framebuffer da:
Code:
 PointeraufFB = MeinDisplaySurfacePointer -> pixels

Den kannst du dann lustig skalieren^^ , was dann also CPU seitig erfolgt -> langsam

Oder du renderst alles in eine Textur und skalierst die, das ist evtl. bei wirklich komplexen Szenen schneller... (da GPU seitig)

Da müsste man mal rumprobieren.

Ich hatte den Texturenrenderer-Ansatz genommen, um das (vll.) aus F.E.A.R. bekannte Feature "Pixel Doubling" nachzubilden. (Dort wird die Szene auf der halben Auflösung gerendert, skaliert, das HUD gezeichnet und Ausgegeben.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Caran



Anmeldungsdatum: 11.03.2007
Beiträge: 290
Wohnort: Lörrach

BeitragVerfasst am: 25.05.2008, 19:23    Titel: Antworten mit Zitat

28398 hat Folgendes geschrieben:

Ich hatte den Texturenrenderer-Ansatz genommen, um das (vll.) aus F.E.A.R. bekannte Feature "Pixel Doubling" nachzubilden. (Dort wird die Szene auf der halben Auflösung gerendert, skaliert, das HUD gezeichnet und Ausgegeben.)

Sowas wollt ich neulich auch mal machen habs aber dann doch bleiben lassen.

Grüßle, Caran
_________________
Eine Erkenntnis von heute kann die Tochter eines Irrtums von gestern sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz