glanzeffekt auf autos wie in NFSU

Posted By: zSteam_

glanzeffekt auf autos wie in NFSU - 08/01/04 19:16

HAllo
wie bekomm ich den glanzeffekt auf einem auto wie in Need For Speed Underground hin ???
Posted By: Christoph_B

Re: glanzeffekt auf autos wie in NFSU - 08/01/04 19:49

ich weiß ned, wie der da aussieht, der effekt, aber im direkt x 9 sdk is auch n sehr schöner glanzeffekt(MetallicFlakes.fx). such mal da.
Posted By: XeXeS

Re: glanzeffekt auf autos wie in NFSU - 08/03/04 04:38

Der Glanzeffekt in Need for Speed ist relativ simple gemacht.

Das erste müsste eine Environmentmap sein für die Reflektion. Und das andere ist warscheins ein spezieller Lighting Term der das Autodynamisch beleuchtet.

In den NFS Teilen 3 und 4 war es auch nur eine ENV MAP sieht man sehr schön an der übertriebenen Reflektion im vierten Teil ansonsten.

Soviel ich weiß hat ATI einen Shader der Autolack extrem geil darstellt. Der Shader ist im Buch:

ShaderX2 - Tips and Tricks with DirectX 9

auch erklkärt und beschrieben
Posted By: JRAV

Re: glanzeffekt auf autos wie in NFSU - 08/03/04 19:08

Funktionieren Directx 9 Shader in 3DGS?
Posted By: mk_1

Re: glanzeffekt auf autos wie in NFSU - 08/03/04 20:34

3dgs ist eine DX8-Engine, kurz: nein.
Posted By: Stefan

Re: glanzeffekt auf autos wie in NFSU - 08/03/04 20:34

Soweit ich weiß, ist die Engine noch net für DX9 ausgelegt, was bedeutet, dass diese Shader noch nicht funktionieren!

Die Reflektionen bei NfSU sind meines Wissens nach nich mit einer Environment Cube gemacht, sondern per Pixelshader!

Stefan
Posted By: Tobias_Runde

Re: glanzeffekt auf autos wie in NFSU - 08/03/04 23:31

DX9 wird erst später unterstützt, aber für einen Glanzeffekt benötigt man auch höchstens DX8.
Man benötigt noch nicht einmal unbedingt einen Shader. In der Regel reicht es, wenn man eine zweite Textur mit Reflexionen über das Auto bewegt. Das ist natürlich nicht besonders realistisch, aber wenn das Spiel rasant ist, dann kann man den Unterschied eh nicht sehen. Wenn das Spiel nicht rasant ist, dann brauch man auch keinen tollen Shader, weil Autorennen ohne Tempo irgendwie sein Ziel verfehlt.
Posted By: Phantom88

Re: glanzeffekt auf autos wie in NFSU - 08/03/04 23:49

Das problem ist aber, dass in NFSU es wirklich alles ganz genau reflektiert(Lichter, Werbungen...) es ist nicht einfach eine 2 reflections-textur.

~Phantom88~
Posted By: JRAV

Re: glanzeffekt auf autos wie in NFSU - 08/04/04 01:02

Macht NFS das auf allen Autos oder nur auf dem Auto des Spielers?

Hatte zumindest bei Gotham Racing II den Eindruck, daß die Spieglungen nur beim Spielerauto sind.

Wie kann man eigentlich einen Mirror erzeugen, ohne die Mirror Flag zu benutzen?
(Ja, ich hab die Pro version).

Da kann man doch vermutlich irgendwie einen Cameraview mappen, oder?

Das Help-File ist hier leider ein wenig dürftig
Posted By: XeXeS

Re: glanzeffekt auf autos wie in NFSU - 08/04/04 03:36

Wie gesagt liegt auf dem Autor kein Spiegel sondern eine Environment Map auf Deutsch heißt das Umgebungsmap.

Um eine Environment Map dynamisch zu erzeugen muss du einen View von 6 Seiten mit einem Blickwinkel von 90 Grad in eine Texture zeichen. Alle Texturen zu einer Cubemap machen und diese dann per Material an deine Karre binden


Posted By: JRAV

Re: glanzeffekt auf autos wie in NFSU - 08/04/04 06:44

Klar, die Environment Map ist im Prinzip nicht schwer, sieht auch nett aus, aber trotzdem könnte es ja noch einen Tick realistischer sein, nicht wahr

Abgesehen davon gibt es das Problem, daß ich ein Auto mit einer Skin habe, die einige Details zeigt, und darauf die Environment Map packe, dann aber zusätzlich noch die Grundfarbe ändern möchte.

Wird die Environment Map während des Spiels eigentlich vom Shader ständig komplett neu berechnet oder ist es im Prinzip nur eine initialisierungs routine?

Bzw: kann ich in ein Material für verschiedene Objekte verschiedene Bitmaps reintun, oder muß ich für jedes Object einen seperaten Shader vorhalten? (z.B. einen für rote Autos, einen für grüne Autos, etc)
Posted By: Christoph_B

Re: glanzeffekt auf autos wie in NFSU - 08/04/04 16:36

In Antwort auf:

Alle Texturen zu einer Cubemap machen und diese dann per Material an deine Karre binden





In Antwort auf:

Wird die Environment Map während des Spiels eigentlich vom Shader ständig komplett neu berechnet oder ist es im Prinzip nur eine initialisierungs routine?







wenn es eine cubemap wird am ende, wie crash override schreibt, dann: Nein.
cubemaps werden einmal berechnet. sie werden auch oft für wasser eingesetzt um sich shader zu sparen und auch ältere karten zu unterstützen.
Posted By: XeXeS

Re: glanzeffekt auf autos wie in NFSU - 08/06/04 02:14

CHB2 -> So wie du das sagst stimmt das nicht ganz.

Environment Map heißt nur Umgebungstextur oder einfahc Umgebungsmap. Wenn sie einmal prop Frame neu berechnen lässt ( Was natürlich nicht der Shader macht kann er auch gar nicht ) wirkt sie wie ein Spiegel. Siehe DirectX Beispiel mit dem Teapot und dem Flugzeug. Wenn die Env Map nicht neu gezeichnit wird ist sie statisch was Leistung spart. Sieht aber weniger Realistischg aus.

Stellt euch das ganze einfach so vor:

Ihr zeichnet einmal pro Frame die Envmap ( Cube Map ) aus der aktuellen Sicht des Autos. Mit einem Blickfeld von 90 Grad damit wirklich genau eine Würfelseite drauf ist. Dann erhältet ihr 6 Texturen welche ihr zu einer Cubemap macht. Und die neue Cubemap legt ihr dann in dem Frame über das auto. Ist also nichts anderes wie ein Spiegel nur eben mit Einer Environment Map welche dynamisch ist weil sie in jedem Frame neu gezeichnet wird.
Posted By: Christoph_B

Re: glanzeffekt auf autos wie in NFSU - 08/06/04 17:59

dann kann man ja mit cube maps, die neu berechnet werden, eigentlich stencil mirrors ersetzen, oder?
Posted By: XeXeS

Re: glanzeffekt auf autos wie in NFSU - 08/09/04 06:28

@ CHB2:

Das ist korekt mit neu berechneteten Cubemaps kann man Spiegel machen bzw. Komplett spiegelende Objekte.
Posted By: kopitzki

Re: glanzeffekt auf autos wie in NFSU - 08/09/04 06:58

In Antwort auf:


...muss du einen View von 6 Seiten mit einem Blickwinkel von 90 Grad in eine Texture zeichen. Alle Texturen zu einer Cubemap machen





Habe den ganzen Tag versucht, auch nur einen der 6 Views auf das +6.tga des Reflektionsshaders in effects.wdl zu rendern. (mit dem Player als Modell)
1. Der bmap_for entity Befehl braucht eine Entity-Angabe und akzeptiert nicht:

Code:
  

bmap bmp_envcube =<blood_gsmall+6.tga>;//CODE AUS EFFECTS.WDL

////////////////////////////////////////////////////////////////////////////////

function mtl_envmirror_view()
{
mat_set(mtl.matrix,matViewInv);
// reset the translation part of the matrix
mtl.matrix41 = 0;
mtl.matrix42 = 0;
mtl.matrix43 = 0;
// mirror the matrix in y direction (= screen plane normal),
mat_scale(mtl.matrix,1,-1,1);
}


function mtl_envmirror_init()
{
bmap_to_cubemap(bmp_envcube);//mtl.skin1);
mtl.event = mtl_envmirror_view;
mtl.enable_view = on;
}


material mtl_envmirror // environment cube
{
skin1 = bmp_envcube;
event = mtl_envmirror_init;
effect = "
// usw
}



//EIGENER CODE
//"REFLEKTMAP" pro frame einmal aufgerufen
view mirror1

{
layer=-1;
flags=visible;
}



function reflektMap()
{

while(!player){wait(1);}

mirror1.size_x=bmap_height (bmp_envcube);
mirror1.size_y=bmap_height (bmp_envcube);
mirror1.ambient = camera.ambient;
mirror1.fog=camera.fog;
mirror1.bmap = bmap_for_entity(bmp_envcube,0); // KLAPPT NICHT!!


//Bei vorher definierter entity type=...+6.tga geht der
//bmap_for_entity(entity ...usw Befehl,
//das Bild zum Test ins Level gestellt, zeigt den View,
//aber die reflektierte Map im Testmodell (Player) ändert sich nicht.

mirror1.visible = on;

while (1)
{
mirror1.genius = player;
mirror1.aspect = camera.aspect;
mirror1.arc = 90;//camera.arc;
mirror1.fog_start = camera.fog_start;
mirror1.fog_end = camera.fog_end;
mirror1.x = player.x;
mirror1.y = player.y;
mirror1.z = player.z;
mirror1.pan = player.pan;//-camera.pan;
mirror1.tilt = player.tilt;//camera.tilt;

//bmap_to_cubemap(bmp_envcube);
//mtl_envmirror_init();
//player.material=mtl_envmirror;
wait(1);
}

}





2. Wie macht man aus der (falls das überhaupt geht) neugerenderten +6.tga eine Cubemap, die dann im Material als neue Basis für die Environment Map gilt?
//bmap_to_cubemap(bmp_envcube);
//mtl_envmirror_init();
//player.material=mtl_envmirror;
//KLAPPT NICHT!
© 2024 lite-C Forums