Gamestudio Links
Zorro Links
Newest Posts
Change chart colours
by 7th_zorro. 05/11/24 09:25
Data from CSV not parsed correctly
by dr_panther. 05/06/24 18:50
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (Hanky27, AndrewAMD), 1,266 guests, and 1 spider.
Key: Admin, Global Mod, Mod
Newest Members
Hanky27, firatv, wandaluciaia, Mega_Rod, EternallyCurious
19051 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Shader Optimieren #35334
10/26/04 00:11
10/26/04 00:11
Joined: Jan 2004
Posts: 513
M
mpde Offline OP
User
mpde  Offline OP
User
M

Joined: Jan 2004
Posts: 513
Hallo!

eine kleine frage an die profis unter euch, nach dem ich es nun endlich doch geschafft habe einen dx9 shader auf die levelgeometrie zu legen wollte ich mal fragen ob es eine möglichkeit gibt, diesen zu opimieren in punkto framrate weil diese recht langsam ist.

mfg
mpde

Re: Shader Optimieren [Re: mpde] #35335
10/26/04 00:20
10/26/04 00:20
Joined: Jan 2003
Posts: 4,615
Cambridge
Joey Offline
Expert
Joey  Offline
Expert

Joined: Jan 2003
Posts: 4,615
Cambridge
du müsstest ihn wohl umschreiben!

desto weniger instruktionen er verwendet, desto schneller ist er auch.

joey.

Re: Shader Optimieren [Re: Joey] #35336
10/28/04 06:25
10/28/04 06:25
Joined: Jan 2004
Posts: 513
M
mpde Offline OP
User
mpde  Offline OP
User
M

Joined: Jan 2004
Posts: 513
ja danke dir aber bitte ein tip was sollt ich hier umschreiben damit die framrate nicht so absackt, funktioniert tuts ja auf levelblocks aber so langsam... wäre für tips dankbar

//**************************************************************//
// SpotlightWithBump
//--------------------------------------------------------------//
float4x4 matWorldViewProj : ViewProjection;//view_proj_matrix : ViewProjection;
float4 matWorld;//view_position : ViewPosition;
float4 lightDir = { 0.9f, 0.9f, 0.9f, 0.9f }; // Min/Max -10 <> 10 { 0.80f, -1.40f, 0.38f, 1.00f }
float spread = {25.00f}; // Min/Max 0.00 <> 100.00 default 23.00
float sharpness = {0.25f}; // Min/Max 0.00 <> 50.00 default 26.00

struct Lit_object_Vertex_Shader_VS_OUTPUT
{
float4 Pos: POSITION;
float2 texCoord: TEXCOORD0;
float3 lightVec: TEXCOORD1;
float3 lightDir: TEXCOORD2;
float3 viewVec: TEXCOORD3;
};

Lit_object_Vertex_Shader_VS_OUTPUT Lit_object_Vertex_Shader_main
(float4 Pos: POSITION,
float3 normal: NORMAL,
float2 texCoord: TEXCOORD0,
float3 binormal: BINORMAL,
float3 tangent: TANGENT)
{
Lit_object_Vertex_Shader_VS_OUTPUT Out;

Out.Pos = mul( Pos, matWorldViewProj);
Out.texCoord = texCoord;

float3 lightVec = lightDir - Pos.xyz;
// Transform light vector into tangent-space
Out.lightVec.x = dot(lightVec, tangent);
Out.lightVec.y = dot(lightVec, binormal);
Out.lightVec.z = dot(lightVec, normal);

// Transform light direction into tangent-space
Out.lightDir.x = dot(lightDir, tangent);
Out.lightDir.y = dot(lightDir, binormal);
Out.lightDir.z = dot(lightDir, normal);

float3 viewVec = matWorld - Pos;
// Transform view vector into tangent-space
Out.viewVec.x = dot(viewVec, tangent);
Out.viewVec.y = dot(viewVec, binormal);
Out.viewVec.z = dot(viewVec, normal);

return Out;
}

texture entSkin1;
sampler BaseMap = sampler_state
{
Texture = (entSkin1);
//// ADDRESSU = WRAP;
//// ADDRESSV = WRAP;
//// MAGFILTER = LINEAR;
//// MINFILTER = ANISOTROPIC;
//// MIPFILTER = LINEAR;
//// MAXANISOTROPY = 16;
};

texture mtlSkin1;
sampler BumpMap = sampler_state
{
Texture = (mtlSkin1);
//// ADDRESSU = WRAP;
//// ADDRESSV = WRAP;
//// MAGFILTER = LINEAR;
//// MINFILTER = ANISOTROPIC;
//// MIPFILTER = LINEAR;
//// MAXANISOTROPY = 16;
};
float4 Lit_object_Pixel_Shader_main
(float2 texCoord: TEXCOORD0,
float3 lightVec: TEXCOORD1,
float3 lightDir: TEXCOORD2,
float3 viewVec: TEXCOORD3) : COLOR
{
float4 base = tex2D(BaseMap, texCoord);
float3 bump = tex2D(BumpMap, texCoord) * 2 - 1;

// Standard lighting
float3 lVec = normalize(lightVec);
float diffuse = saturate(dot(lVec, bump));
float specular = pow(saturate(dot(reflect(normalize(-viewVec), bump), lVec)), 16);

// The angle between light vector and spotlight direction
// defines the spot.
float spot = saturate(sharpness * pow(saturate(dot(lVec, -lightDir)), spread));

return (diffuse * base + specular) * spot + 0.25 * base;
}

//--------------------------------------------------------------//
// Technique Section for HLSL Illumination Effects
//--------------------------------------------------------------//
technique SpotlightWithBump
{


pass Lit_object
{
VertexShader = compile vs_1_1 Lit_object_Vertex_Shader_main();
PixelShader = compile ps_2_0 Lit_object_Pixel_Shader_main();
}

}

mindestens shader 2.0

mfg

mpde

Re: Shader Optimieren [Re: mpde] #35337
10/28/04 23:25
10/28/04 23:25
Joined: Jan 2003
Posts: 4,615
Cambridge
Joey Offline
Expert
Joey  Offline
Expert

Joined: Jan 2003
Posts: 4,615
Cambridge
du benutzt sehr viel HLSL code... was macht dein shader denn überhaupt? wenn du nämlich z.b. nur detailmapping willst, such nach einem einfacheren (wurde vorher schon irgendwo angesprochen).

mfg, joey.

Re: Shader Optimieren [Re: Joey] #35338
10/29/04 00:13
10/29/04 00:13
Joined: Jan 2004
Posts: 513
M
mpde Offline OP
User
mpde  Offline OP
User
M

Joined: Jan 2004
Posts: 513
In Antwort auf:

... was macht dein shader denn überhaupt?




spotlicht das auf metalflächen einen richtig toole glanzeeffect zaubert, und dazu ganz normales bumpmapping... bei ganz normalen modellen geht es eigentlich noch mit der framerate aber auf levelblocks ist es einfach zu langsam... schade das keiner ne lösung weiss

mfg

mpde

Re: Shader Optimieren [Re: mpde] #35339
10/29/04 02:38
10/29/04 02:38
Joined: Jan 2003
Posts: 4,615
Cambridge
Joey Offline
Expert
Joey  Offline
Expert

Joined: Jan 2003
Posts: 4,615
Cambridge
ich denke dass es einfach zu viel ist für deine graka, models füllen z.b. ja nur 'nen teil von deinem bildschirm aus.
kommentier einfach mal teile von deinem shader aus, und schau welcher teil der langsamste ist.
mit dem ergebnis kann man dann schon mehr anfangen.

Re: Shader Optimieren [Re: mpde] #35340
10/29/04 12:09
10/29/04 12:09
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Pappenheimer Offline
Senior Expert
Pappenheimer  Offline
Senior Expert

Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Du könntest es auch auf ein paar kleine wenige Flächen in der Levelgeometrie beschränken, um einfach ein paar Highlightszu setzen, die den Eindruck gesamten Levels aufwerten.

Re: Shader Optimieren [Re: Joey] #35341
10/30/04 17:00
10/30/04 17:00
Joined: Nov 2003
Posts: 1,267
ef
C
Christoph_B Offline
Serious User
Christoph_B  Offline
Serious User
C

Joined: Nov 2003
Posts: 1,267
ef
In Antwort auf:

ich denke dass es einfach zu viel ist für deine graka, models füllen z.b. ja nur 'nen teil von deinem bildschirm aus.






jo, selbst auf meiner FX 5700 ULTRA nur 25 fps. Aber das bumpmapping an sich ist gar nicht sichtbar irgendwie, oder?


sef
Re: Shader Optimieren [Re: Christoph_B] #35342
10/30/04 17:28
10/30/04 17:28
Joined: Jan 2004
Posts: 513
M
mpde Offline OP
User
mpde  Offline OP
User
M

Joined: Jan 2004
Posts: 513
In Antwort auf:


Aber das bumpmapping an sich ist gar nicht sichtbar irgendwie, oder?




Hallo !

Stelle mal die textur im WED die Du dem block zugewiesen hast auf flat dann wirst Du es auch bumpen sehn.

Warum es nur dann funzt wäre meine nächste frage gewesen.

Ich habe auch noch andere Shader ausprobiert und irgendwie... bin mir jetzt nicht sicher sind nur die HLSL Shader so langsam. Die ASM Shader sind wesentlich schneller.

mfg

mpde


Moderated by  Blink, Hummel, Superku 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1