Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
darkinsanity aka sts
Anmeldungsdatum: 01.11.2006 Beiträge: 456
|
Verfasst am: 16.06.2008, 10:41 Titel: OpenGL - Licht / gluLookAt |
|
|
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 |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
|
Nach oben |
|
|
marzec
Anmeldungsdatum: 13.10.2004 Beiträge: 267
|
Verfasst am: 17.06.2008, 11:08 Titel: |
|
|
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 |
|
|
darkinsanity aka sts
Anmeldungsdatum: 01.11.2006 Beiträge: 456
|
Verfasst am: 17.06.2008, 11:27 Titel: |
|
|
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. |
|
Nach oben |
|
|
marzec
Anmeldungsdatum: 13.10.2004 Beiträge: 267
|
Verfasst am: 17.06.2008, 18:44 Titel: |
|
|
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 |
|
|
darkinsanity aka sts
Anmeldungsdatum: 01.11.2006 Beiträge: 456
|
Verfasst am: 18.06.2008, 08:41 Titel: |
|
|
ok danke.
Ich hab mit google was gefunden, werd mir das mal durchlesen. |
|
Nach oben |
|
|
|