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:

OpenGL - Licht / gluLookAt

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 16.06.2008, 09:41    Titel: OpenGL - Licht / gluLookAt Antworten mit Zitat

hi.
ich OpenGL kann man ja lichter im raum positionieren. Meine Frage ist: Wieviele Lichter kann man auf einmal verwenden bzw. hat jemand ein Beispiel in dem Mehrere Lichter verwendet werden?

Und hat vielleicht jemand ein Beispiel wie man gluLookAt benutzt?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 16.06.2008, 15:39    Titel: Antworten mit Zitat

Maximal neun Lichter nach Spezifikation, die meisten Grakas können mehr, die alten machen dann einen auf Software.

Rest siehe: http://wiki.delphigl.com/index.php/Tutorial_Lektion_8
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
marzec



Anmeldungsdatum: 13.10.2004
Beiträge: 267

BeitragVerfasst am: 17.06.2008, 10:08    Titel: Antworten mit Zitat

minimal 8 lichter laut specs ( siehe ogl 1.1 specs ). die meisten grakas unterstützen 8 und nicht mehr in hardware. es ist auch nicht zu empfehlen alle 8 lichter zu verwenden. fßr mehr lichter verwendest du einen vertexshader der das kann ( nicht lustg inen adaptiven zu schreiben ) im normalfall reichen 2 aus.

glulookat ist schnell erklärt:

glmatrixmode( gl_projection )
glloadidentity()
gluperspective( was auch immer du hier haben willst )
glmatrixmode( gl_mdelview )
glloadidentity()
glulookat( camposx, camposy, camposz, centrumx, centrumy, centrumz, upx, upy uz )

campos ist dabei die position der kamera, centrum ist der unkt auf den die amera schaut. up ist ein vektor mit länge 1 der nach oben schaut. bei einem menschen wär das im normalfall 0,1,0. hängst du verkehrt herum wärs 0,-1,0.

glulookat sollte im normalfall die erste matrix operation auf die modelview matrix sein. updatest du deine kamera in jedem frame mußt du die matrix zuerst immer auf identity setzen. gleiches gilt für die projektionsmatrix. der code oben ist für ein permanentes updaten beider matritzen ausgelegt.
_________________
Yagl - yet another gameprogramming library
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 17.06.2008, 10:27    Titel: Antworten mit Zitat

ok danke.
aber verwenden nicht viele 3D-games viel mehr Lichter? in 3D-gameStudio kann man auch sehr viele Lichter verwenden.
@marzec: hast du vielleicht auch ein Beispiel, in dem gluLookAt benutzt wird, um durch eine 3D-Welt zu laufen? das wär super. lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
marzec



Anmeldungsdatum: 13.10.2004
Beiträge: 267

BeitragVerfasst am: 17.06.2008, 17:44    Titel: Antworten mit Zitat

wie gesagt, mehr als 2 hardware lichter der fixed function pipeline verwendet kaum ein spiel. Alles was darüber hinaus geht wird über die programmable pipeline, sprich shadern erledigt da man hier gut optimieren kann. Normalerweise werden aber nach wievor Lightmaps verwendet, d.h. ein zweites set an texturen das auch die statische geometry der welt gelegt wird. dynamische dinge werden dann nach berechnung der occlusion mit fixed function pipeline lights oder eben shadern beleuchtet. Half life 2 verwendet z.B. nur zwei fixed function pipeline lights im maximal fall. der rest sind lightmaps die teilweise dynamisch errechnet werden.

zu glulookat: bewegen -> position verschieben, rotieren -> direction vektor anpassen ( rotieren ). entlang der sichtrichtung gehen -> position + direction

wenn du dafür beispiele suchst dann google einfach nach opengl + camera. auf flipcode und gamedev.net gibts einige tutorials zu dem thema. ich würde dir jedoch raten zu versuchen die mathematik dahinter zu verstehen.
_________________
Yagl - yet another gameprogramming library
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 18.06.2008, 07:41    Titel: Antworten mit Zitat

ok danke.
Ich hab mit google was gefunden, werd mir das mal durchlesen.
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 -> Bibliotheken 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