Registriert: Mi Jul 15, 2009 20:48 Beiträge: 111 Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
Hellosen,
Also, ich brauch schonwieder Hilfe :$
Ich hab vor kurzem Licht in mein Spielchen eingebaut, klappt gut. Ich kann meine Map mit tollen Bunten Lichtern füllen, speichern und laden.
Nun hab ich grade eine kleine Procedur zum Erstellen eines (ogl-)Lichtblitzes eingebaut, und siehe da, es funktioniert auf anhieb, allerdings nur 8 mal. Eine Map mit 6 Lichtquellen kann nur 2 mal aufblitzen (wenn ich nicht die alten Lichter wiederverwende; was ich zwar tun werde, aber ich möchte auch die Möglichkeit haben, mehr als 8 Lichter aufeinmal anschmeißen zu können). Ich habe wie im Licht-Tutorial jedes Licht mit GL_LIGHT0+i angesprochen, aber bei 8 ist einfach Schluss. Ich hab sogar versucht im Header ein paar Lichter dazu-zu-schummeln, natürlich Fail^^
Was muss ich tun um mehr als 8 Lichter erstellen zu können? Kann das Sytsemabhängig sein? im Tutorial wird behaubtet, auch das 9. Licht noch ansprechen zu können, und analog ging ich davon aus, es gibt keine oder eine höhere Grenze als 8 (irgendwas 2^n-mäßiges)... Ich hab ne Radeon HD4870 und nen Intelprozessor, falls dieser auf irgend eine wirre Art und Weise eine Rolle spielt.
Ich hatte so viel vor, haufenweise Raketen mit Dynamischem Licht, es muss eine Lösung geben! :S Kann mir jemand helfen? Muss ich irgendwas anschalten, oder hab ich vill im Tutorial irgendetwas übersehen?
Gruß, sirrk aka Robin
_________________ thanks to the internet we have rule 34, wich states that if something exists, theres a pornographic version of it,
Zuletzt geändert von sirrk am Mo Jan 04, 2010 20:19, insgesamt 1-mal geändert.
Du musst Lichter deaktivieren (und wieder verwenden), wenn sie außer Reichweite sind. Bei mehr als 8 Lichtern kann man die am weitesten entfernten fast weglassen, du wirst kaum einen Unterschied merken. Die feste Pipeline kann nicht mehr als 8 Lichter.
Anyway, mit Shadern kannst du natürlich beliebig viele Lichter verwenden. Trotzdem solltest du auch hier Lichter außer Reichweite deaktivieren.
Registriert: Mi Jul 15, 2009 20:48 Beiträge: 111 Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
danke für die antwort. leider weiß ich nicht ob ich dir oder dem tutorial trauen soll... wenn mehr als 8 lichter in meiner szene sichtbar sein sollen bin ich aufgeschmissen? oO habe ich das tutorial zum ogl licht falsch verstanden oder lügt es schlichtweg?
Zitat:
Zur Information: OpenGL Implementationen müssen 8 Lichter unterstützen. Es gibt aber Implementationen, die hier mehr zu bieten haben. Um Zugriff auf alle vorhandenen Lichter zu erhalten, genügt es zu GL_LIGHT0 einen entsprechenden Wert zu addieren. GL_LIGHT0+8 wäre dann z.B. das 9. Licht
Registriert: Sa Mär 14, 2009 17:48 Beiträge: 99
Programmiersprache: D, Java, C++
Es ist so wie's im Tutorial steht, 8 Lichter müssen von der festen Funktionspipeline unterstützt werden um OpenGL Konform zu sein, mehr Lichter _können_ unterstützt werden (Treiber/Hardware abhängig). Wieviele Lichter deine Grafikkarte (bzw. richtiger "OpenGL Implementierung") verwalten kann erfährst du mittels glGet mit dem Parameter GL_MAX_LIGHTS.
Registriert: Mi Jul 15, 2009 20:48 Beiträge: 111 Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
von spaß kann keine rede sein. hab durch zufall grade 3DMark rumgespielt, und siehe da, "Max Active Hardware Lights 8 " -___-
danke trozdem für die hilfe, ich werd jetzt tief enttäuscht delphi schließen und einen hinweis im tutorial erbitten, dass selbst relativ neue karten nur 8 lichter lieben können.
Mitglieder in diesem Forum: 0 Mitglieder und 24 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.