PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : @Progger:



RTL-Kevin
29.11.2002, 15:43
Hat jemand ne Ahnung wie man diesen hübschen Verzerreffekt, der kommt wenn man geschlagen oder beschossen wird, programmieren kann?
Ich könnte es mir so vorstellen:
Man rendert die Szene ganz normal, dann nimmt man das entstandene Bild und zeigt es mehrmals an, jeweils leicht verdreht und verschoben. Wenn dann noch jedes dieser Bilder transparent ist dann könnte das so klappen.

Ist aba nur geraten, weiß jemand wie johnny c. das wirklich macht?

[ENTEN]Clean
29.11.2002, 17:15
Also......vieleicht suchst du mal nach Rat bei Q3 CPMA Sites, da dieser Ruckeleffekt bereits in diesem Quake Mod vorkommt und von Moddern gemacht ist ;)
Ca, der Saubermann [ENTEN]Clean :wink:

Onan
30.11.2002, 13:02
Hier eine erste Spur. Stammt aus der decal.mtr Datei im materials-verzeichnis.
//================================================== ===================
//
// player damage tunnel vision effect
//
// parm3 will range FROM 0.0 to 1.0 based on health, 1.0 is full health
// parm0 will be the time that damage was last taken, allowing an
// accentuation and fade out
//================================================== ===================


clampTable tunnelVisionSolidAlpha { 1, 0 }
// when health is near 0, the density will be greater


textures/decals/tunnel
{
noshadows
translucent

qer_editorimage textures/decals/tunnel.tga

{
alpha tunnelVisionSolidAlpha[ parm3 ] - (time-parm0)*0.25
blend blend
centerscale 0.65+0.05*sinTable[time], 0.65+0.05*sinTable[time]
rotate time * 0.07
map textures/decals/tunnel.tga
clamp
}

{
alpha tunnelVisionSolidAlpha[ parm3 ] - (time-parm0)*0.25
blend blend
centerscale 0.65+0.05*sinTable[time], 0.65+0.05*sinTable[time]
rotate time * -0.06
map textures/decals/tunnel.tga
clamp
}

}

[ENTEN]Clean
30.11.2002, 16:08
Genau das waren meine Worte ;)

Ca, der Saubermann ;-)

RTL-Kevin
30.11.2002, 17:31
Hmmm daraus kann ich nix lesen, das ist das (Carmack)Script, oder? Oder Konsolenbefehle? Auf jeden Fall total komische Syntax.

Fragpoint
30.11.2002, 19:39
Das scheint ein ganz "normaler" Shader zu sein, wenn ich das jetzt richtig erkenne.

Mit Shader kannst Du mehrere Texturschichten übereinanderlegen und jede mit einem Effekt (z.B. leuchten, Wellen, etc.) versehen. Dadurch kann man dann auch den von dir beschriebenen Effekt erreichen.

Onan
30.11.2002, 21:17
Das ist in der tat ein shader, wie schon die Endung .mtr verrät.

RTL-Kevin
30.11.2002, 21:22
Aha ist ja interessant. Und was für eine Sprache ist das? Ein Skript vom Carmack oder irgendeine HighLevel Shadersprache? Tut mir leid dass ich so blöd frag aber ich hab noch nix mit Shadern geprogrammiert :gaga:

Onan
01.12.2002, 16:29
Also es ist ein Script von id, und ich nehme an es ist ihre eigene High-level shader Sprache (Befehle wie qer_editorimage zum Definieren der textur im Editor...), aber wie genau die Schnittstelle zu OpenGl funktioniert, weiß ich leider noch nicht. Wird Zeit, dass ich endlich mal das buch lese, was Mastercoder mir vorgeschlagen hat.

Major Fleischer
01.12.2002, 17:43
Apropos MasterCoder. Was ist mit ihm, konntest Du ihn mal überreden hier vorbei zu schauen?

Onan
01.12.2002, 19:56
Also folgendes: es ist eine eigen HLSL von id, und OpenGL wird dabei gar nicht benutzt. In der engine ist ein Interpreter, der diese Befehle in den Assembler-code der GPU übersetzt.

MasterCoder
01.12.2002, 20:02
Jo, da bin ich schon :)

Also, es ist so!
Für solche Effekte wird meistens der Accumulation Buffer verwendet:

1. Du schreibst das originale Bild rein
2. Du schreibst es leicht rotiert und bewegt rein
3. Du schreibst noch ein paar Jitter-Matrizen rein... die sorgen für gleichmäßige unschärfe, und damit man die verschiebung des bildes nicht sieht
4. du kopierst den accumulation buffer in den darzustellenden color buffer

bei jeder write-aktion kannst du einstellen, zu wieviel prozent der jeweilige farbwert überschrieben wird.... eben um die transparenz zu erzeugen

Interessant an der in Doom verwendeten Technik (die ascheinend die register combiner der textureinheiten benutzen, als accumulation buffer), die Zeit einzubringen, was natürlich eine "animierte" Unschärfe gibt.
Wofür diese zusätzliche Textur da ist, weiß ich nicht

Major Fleischer
01.12.2002, 20:03
Hey, das ging ja schneller als gedacht :D Willkommen :wink:

DB.F4b14n
01.12.2002, 22:42
jo willkommen Prof. Dipl. Dr. Doz. Priv.med. MasterCoder der alles programmierer :lol: :ugly: :hammer: :para: :gaga:

Fragpoint
02.12.2002, 07:33
Auch von mir ein :wink:

MasterCoder
03.12.2002, 14:42
Hehe, jo, guten tach :wink:
bin grad noch ein bissel mit meinem computer im kampf aber werde bald auch hier regelmäßig mal reingucken :daumen:

coole smileys übrigens :) :lol:

[ENTEN]Clean
04.12.2002, 02:06
Hey hey, scheinst ja mal jemand zu sein, der direkt mit der Sprache rausrückt ! :daumen:

http://www.mani.de/WG/img/298.gif

Ca, der Saubermann [ENTEN]Clean :niko: