Ich weiß nicht, wer von euch Alone In The Dark 4 gespielt hat:

Das sehr tolle daran ist dieses dynamische Vertexbeleuchtung-Spotlight für die Taschenlampe. Es ist ein sehr simples Vertexlicht (also beleuchtet auch nur pro 3DDreieck was bei zu starkem Lowpoly auffällt, ich denke, ihr wisst, was ich meine), ohne Schattenwurf, es scheint auch durch Wände durch etc., eben ein Standard-OpenGL/DirectX dynamisches hardwareberechnetes Licht.
Nun ist meine Frage, wie man das am Besten realisiert. Ich möchte ein wenig meine Gedankengänge notieren, um euch eine Basis zu bieten von dem, das ich schon erarbeitet habe.
Ein 2DHintergrund hat ja erstmal keine Tiefeninformation. Auch mit Vorne-/Hintendranlayer wie AGS kann man ja erstmal nicht sehr viel mehr machen als Dinge vorne oder hintendran anzuzeigen, für Lighting reicht das nicht. Außerdem: das Licht wird wohl kaum anders zu realisieren sein, als eben genau ein solches in einer echten 3DSzene zu realisieren.
Meine Idee war daraufhin, die Szene, die aus einem Mix aus 3DModellen (für das Haus) und Fotomontagen (eigentlich für alles sonst: Wiesen, Bäume, Gegenstände (bis auf vllt. Dinge wie ein Tisch, aber die Stühle werd ich wahrscheins auch "reinkleben") besteht, als stark vereinfachtes 3DModell anzufertigen, oder eher: Erst das simple 3DModell zu machen, dann einen Screenshot im Modeler in der Perspektive, die ich will, und das dann als Mal-/Montiervorlage nehmen.
Das entstandene 2DBild könnte ich auf das Model genau so draufspannen, dass man aus genau dem ausgewählten Winkel keinen Unterschied sieht. Dieser Punkt ist etwas schwer verständlich, und zugleich der Knackpunkt: Ich will das UV-Mapping also so haben, dass man genau aus dem richtigen Winkel das selbe Bild sieht, wie als ob es einfach als 2D angezeigt würde. Nur dass es eben eine genial texturierte 3DSzene ist.
Wings3D bietet eine sehr tolle Texturierfunktion: Man selektiert alle gewünschten Flächen, dreht die Kamera entsprechend, und kann dann halbtransparent die Textur gekachelt über den ganzen Schirm anzeigen. Sie lässt sich dann bequem passend hinschieben, und mit einem Klick landet sie wie draufgepresst genau so auf allen selektierten Flächen.
Ich hoffe, ihr könnt mir in der Technik folgen: Man geht in den richtigen Winkel, die Textur wird wie auf den Bildschirm gespannt ganz 2Dplatt angezeigt, und per Klick landet sie so auf den selektierten 3DFlächen, dass genau aus dem Winkel das ganze eben so aussieht wie die über den Bildschirm gespannte Textur.
Das wäre ja schon alles, aber der Teufel steckt im Detail:
Dieser Vorgang in Wings3D geschieht freihand. Und die 2DTextur muss pixelgenau sitzen. Denn wenn eine Kante des 2DBildes nicht exakt auf der Kante des 3DModelles liegt, dann ist alles falsch: Die Beleuchtung, die Kollision und das Clipping (wenn die 3DEcke ein Stück weiter links ist, würde natürlich als Folge früher geklippt werden, wenn die Figur hinter die Ecke läuft, sodass sie praktisch ein paar Pixel zu früh abgeschnitten wird).
Und pixelgenau ist kaum möglich, es wird immer minimal danebenlanden (ich hab schon genug Probleme, beim Erstellen eines Hauses in 3D die Backsteine an zusammentreffenden Textur"nahtstellen" ungefähr plausibel auf die passende Höhe zu kriegen, damit kein zu sichtbarer Schnitt da ist).
Was ich mir als Antwort vorstellen würde: Die Lösung für das obige Problem gibt es vielleicht nicht (oder doch?), mich würde vorrangig als Antwort interessieren, wie ihr das umsetzen würdet. Also dass ihr meinen Ansatz vllt. auch erstmal liegen lasst und ausführt, wie ihr euch das vorstellt, wie so ein Taschenlampenlicht in der Szene möglich ist.
Oder am Ende weiß jemand, wie das in Alone in the dark realisiert wurde, das wäre auch sehr spannend zu wissen.
Letztendlich gibt es vielleicht eine Lösung für meine Sache: Die Backgrounds in viel höherer Auflösung erstellen und runterrechnen. Dank dem natürlichen Antialiasing werden die Kanten so "ungenau", dass eine minimal falsche Platzierung nicht auffallen würde. Aber ich würde vor allem gerne wissen, ob es denn dazu noch eine Alternative gibt.