Decals - Wie macht man diese?
Übersicht

![]() |
Lord_VaderBetreff: Decals - Wie macht man diese? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi hab mit 3D ja noch recht wenig gemacht.
Also die sache ist die: Ich weis wie ich es realisiere, jedoch sind diese Decals nicht so wie ich es möchte. Man siehe Half-Life. Da kann man die Decals an einer kante machen und sie werden um die Kante gefaltet. Genauso möchte ich das auch haben, aber wenn ich dort ein sprite hinplatziere, dann ist es halt nicht geknickt ![]() WiE gEhT dAs ? Edit: Bräuchte das ganze auch wie so ne art Projektor. zB Lichtflecken auf einem Terrain, Artillerie einschusslöcher usw! MfG Lord_Vader |
||
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hier mal ein Stückchen Theorie:
Nehmen wir mal die Idee mit dem Scheinwerfer (verhält sich ja ähnlich wie ein Decal). Man schaue mal aus exakt der Sicht des scheinwerfers auf die Szene. Dann erscheint der Lichtkegel unverzehrt. Betrachter seitlich davon würden den Kegel über die Geometrie gestreckt und verzerrt sehen. Man nehme nun alle Polys die von dem Lichtkegel betroffen sind und kopiert sie. Dann dehnt man sie winzig leicht über die Normal aus (damit die kopierten Faces vor der Orginalgeometrie sitzen). Nun schauen wir durch die Lampe. Man mappe nun die UV Koordinaten entsprechend der Projektion von der Lampe aus gesehen. Das ganze mal einfacher ausgedrückt mit dem Beispiel des Kameramapping. Man nehme jeden Vertex eines Objekts, mit Cameraproject bekommt man die x und y koordinate aus Sicht des Kamera. Nun rechnet man x-Koordinate durch Screenbreite und y-Koordinate durch Screenhöhe. Diese Werte nimmt man als U bzw. V koordinate. nun hat man ein Kameramapping. Packt man nun eine Textur drauf wirkt sie "unverzerrt" (natürlich nicht perfekt). Aus einem anderen Blickwinkel jedoch verzerrt. Problem dabei: Finde einen schnellen Algorythmus welche Faces alle vom Lichtkegel betroffen sind. keine Garantie .. nur eine Idee und noch nie ausprobiert |
||
![]() |
Lord_Vader |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi. Mhh darauf wäre ich nie gekommen aber gute idee!
Vielleicht geht das ja hiermit relativ schnell: Index=PICKEDTRIANGLE () Naja mal sehn wenn ich zeit hab probier ichs ![]() Dankeschön MfG Lord_Vader |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group