Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

18.12.2003, 01:29

Dynamische Lightmaps - aber wie?

Hallo,

ich möchte für dynamische Beleuchtung keinen Pixelshader oder Vertexshader verwenden.
Ältere Spiele wie Quake2 oder "Alien vs. Predator" berechnen dafür wohl dynamische Lightmaps -
weiss jemand, wie das genau gemacht wird?
--- Teamwork divides the task and multiplies the success ---

Das Leben ist voller Zufälle - Amber

2

18.12.2003, 13:56

dynamische lightmaps:? das wird deine perfomance aber schnell töten.

3

18.12.2003, 14:01

Aha?

Dann sag mir mal wie Quake2 dynamische Lichter berechnet - z.B. die Beleuchtung der Wände, wenn man die Waffen abschießt...

Pixel - und Vertexshader gab es zu der Zeit noch nicht...

Hast du irgendeine Idee, wie das gemacht werden kann?
--- Teamwork divides the task and multiplies the success ---

Das Leben ist voller Zufälle - Amber

4

18.12.2003, 14:14

dafür braucht man keine shader.

prinizpiell gehts so:

vertex-normale punkt-multipliziert mit dem einfalls-vektor der
zu berechnenden lichtquelle.
das resultat, sofern normalenvektor als auch einfallsvektor
normalisiert, sollte zwischen -1 und 1 liegen.
das nimmst du dann einfach als maßstab für die diffuse-color.

voilà gauroud-shading. simple aber funktioniert prima
alternativ kannst du auch einfach die dx-lights und materials benutzen.

lightmaps kannst du aber auch nehmen. dann aber wohl besser statisch.
sonst rechnet sich dein computer tod.

5

18.12.2003, 14:20

alternativ könntest du auch eine einzelne lightmap malen.
also irgend ein rundes teil das nach außen dunkler wird, weist
schwo wie ichs mein.

und dann legst du das halt als textur an der stelle über die wand,
an der die belichtung stattfindet. so ne mischung also aus
statischem und dynamischem lightmapping. die map is vorberechnet
nur die position eben nicht. aber keine ahnung ob das grade leicht ist
bzw. ob das gut aussieht vorallem in den ecken stell ich mir die berechnungen
kompliziert vor...war ja auch nur so ne idee

6

18.12.2003, 14:20

Das ist ja auch okay, aber:

Wenn ich eine gerade Wand habe, besteht diese aus 4 Vertices.
Das heisst, die Beleuchtung klappt nicht wirklich.

Ich habe noch etwas:
ich frage mich gerade wie man Decals am besten hinbekommt...
Also wenn ein ich auf eine Wand schieße, möchte ich am Einschlagspunkt ein Einschußloch darstellen.
Wie lässt sich das am Besten realisieren? Wie lässt sich der Einschlagspunkt feststellen?
Ist es besser ein Objekt mit Textur dort darzustellen oder eine Textur zu überblenden? Woher bekomme ich ggf. die Texturkoordinaten des Einschlagpunkts auf dem Objekt ?

Hoffentlich kann mir jemand helfen - im Internet ist man irgendwie verlassen...
--- Teamwork divides the task and multiplies the success ---

Das Leben ist voller Zufälle - Amber

7

18.12.2003, 14:23

Zitat von »"0x00000023"«

alternativ könntest du auch eine einzelne lightmap malen.
also irgend ein rundes teil das nach außen dunkler wird, weist
schwo wie ichs mein.

und dann legst du das halt als textur an der stelle über die wand,
an der die belichtung stattfindet. so ne mischung also aus
statischem und dynamischem lightmapping. die map is vorberechnet
nur die position eben nicht. aber keine ahnung ob das grade leicht ist
bzw. ob das gut aussieht vorallem in den ecken stell ich mir die berechnungen
kompliziert vor...war ja auch nur so ne idee


Die Idee hatte ich auch - deshalb meine Decal-Frage, aber wie komme ich an die Texturkoordinaten - bzw. an die Stelle ?
Ich muss ja die ganze Textur verschieben, wenn es eine sich bewegende Lichtquelle ist.
--- Teamwork divides the task and multiplies the success ---

Das Leben ist voller Zufälle - Amber

8

18.12.2003, 14:24

erhöh die polygonzahl deiner wand. *g*

is immer noch umn einiges schneller als dynamisches lightmapping.

decals:

leichter ist es wohl ein objekt an der stelle zu positionieren,
als mit texturkoordinaten zu arbeiten.
(was willst du z.b. machen wenn du auf einer deiner 4-vertices-riesenwände genau in die mitte schießt? da wirds etwas schwer das mit
tex-koords richtig hinzukriegen)

9

18.12.2003, 14:27

Ja stimmt.
Aber dennoch

a) wie bekomme ich die Position heraus, wo mein "Schuss" trifft?
b) kann ich die Texturkoordinaten berechnen ?
--- Teamwork divides the task and multiplies the success ---

Das Leben ist voller Zufälle - Amber

10

18.12.2003, 14:27

ja eben, das ist genau das problem. auch bei den decals.
hab mal irgendwo gelesen (es ging glaub ich um den lichtkegel einer taschenlampe)
das man für so kleinflächige beleuchtung durchaus doch auf
dynamisches litmapping zurückgreifen könnte. vielleicht sollte man besser
sagen wenn wenige polygone betroffen sind. normalerweise hängt der
aufwand ja nciht von der größe ab, da die lightmaps einheitliche größen haben.

Werbeanzeige