1 registered members (TipmyPip),
18,574
guests, and 6
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: Texturteilabschnitte "leuchten" lassen.
[Re: Rei_Ayanami]
#331692
07/05/10 18:56
07/05/10 18:56
|
Joined: Jul 2009
Posts: 1,198 Berlin, Germany
Liamissimo
Serious User
|
Serious User
Joined: Jul 2009
Posts: 1,198
Berlin, Germany
|
Menno...Muss ich echt erst 180€ sammeln^^
"Ich weiss nicht genau, was Sie vorhaben, aber Sie können keine Triggerzonen durch Ihr Level kullern lassen." -JCL, 2011
|
|
|
Re: Texturteilabschnitte "leuchten" lassen.
[Re: miez]
#331722
07/05/10 22:14
07/05/10 22:14
|
Joined: Apr 2010
Posts: 172
wdlmaster
Member
|
Member
Joined: Apr 2010
Posts: 172
|
Shader 3.0\2.0 Funktioniert auch trotz schalten von sunlight auf 0 nicht. Versteh ich nicht. Bei mir funktioniert der einwandfrei. Dann teste mal, ob der selbe Shader - nur mit Vertex lighting - funktioniert (der braucht auch "nur" shader model 2.0):
#define sat saturate
#define dst distance
#define nrm normalize
#define vlc vecLightColor
#define vlp vecLightPos
float4x4 matWorldViewProj;
float4x4 matWorld;
float4 vecLightColor[8];
float4 vecLightPos[8];
int iLights;
texture entSkin1;
texture entSkin2;
sampler SKIN = sampler_state { texture = <entSkin1>;};
sampler LIGHT = sampler_state { texture = <entSkin2>;};
float4 VS ( in float4 P : position,
in float2 T1 : texcoord0,
in float2 T2 : texcoord1,
in float3 N : normal,
out float4 tex : texcoord0,
out float4 L : texcoord1) : position {
L = 0;
tex.xy = T1;
tex.zw = T2;
float4 pos = mul(P,matWorld);
float3 normal = mul(N,matWorld);
for (int i=0; max(0,i<iLights-1); i++)
L += vlc[i] * sat((vlp[i].w - dst(vlp[i].xyz,pos)) / vlp[i].w)
* sat(dot(nrm(vlp[i].xyz - pos.xyz),normal));
return mul(P,matWorldViewProj);}
float4 PS ( in float4 tex : texcoord0,
in float4 L : texcoord1) : color {
float4 color = tex2D(SKIN,tex.xy);
color = lerp (color,color * (tex2D(LIGHT,tex.zw) + L),color.a);
return color;}
technique t{ pass p{
zWriteEnable = 1;
AlphaBlendEnable = 0;
VertexShader = compile vs_2_0 VS();
PixelShader = compile ps_2_0 PS(); }}
also zumindest hier läuft der Shader so wie er soll (sun_light wird diesmal nicht beachtet, dadurch gehen auch nur 7 Lichter) Wobei ich zugeben muss, dass diese Version nicht gerade das Gelbe vom Ei is!
|
|
|
Re: Texturteilabschnitte "leuchten" lassen.
[Re: Slin]
#331818
07/06/10 13:30
07/06/10 13:30
|
Joined: Nov 2005
Posts: 112
miez
OP
Member
|
OP
Member
Joined: Nov 2005
Posts: 112
|
GRINZZ... Es funktioniert mit deinem 2.0 Code, WdlMaster! Freude, Joy (hüpf, spring... ok, so übertrieben nun doch nicht.) Das dynamische Licht funktioniert und das Sonnenlicht möchte ich ohnehin nicht einsetzen.
Also ist diese Kleinigkeit nicht schlimm. Nur warum ist der Shader nicht das gelbe vom Ei?
ATI kann natürlich doof sein. Gibt es denn öfters Ärger mit Shadern unter Radeonkarten? Bei kommerziellen Games ist mir dergleichen noch nie aufgefallen. Bislang kam das nur bei einigen wenigen GameStudio Demos vor, dass Shader nicht oder falsch dargestellt wurden.
Last edited by miez; 07/06/10 13:32.
|
|
|
Re: Texturteilabschnitte "leuchten" lassen.
[Re: miez]
#331819
07/06/10 13:36
07/06/10 13:36
|
Joined: May 2005
Posts: 2,713 Lübeck
Slin
Expert
|
Expert
Joined: May 2005
Posts: 2,713
Lübeck
|
Ich sag nur GTA 4  Und zu dem Shader... Warum die Defines? Die machen es für meinen Geschmack jedenfalls eher schwieriger zu lesen. Lineare Attenuation ist auch nicht so dolle und habe ich etwas übersehen, oder sind bei dir auch der Lichtquelle abgewandte Seiten Hell?
Last edited by Slin; 07/06/10 13:42.
|
|
|
Re: Texturteilabschnitte "leuchten" lassen.
[Re: miez]
#331820
07/06/10 13:45
07/06/10 13:45
|
Joined: Apr 2010
Posts: 172
wdlmaster
Member
|
Member
Joined: Apr 2010
Posts: 172
|
Nur warum ist der Shader nicht das gelbe vom Ei? weil's nur Vertex lighting is, und das sun_light mit nem billigen Trick umgangen wurde. Lineare Attenuation ist auch nicht so dolle und habe ich etwas übersehen, oder sind bei dir auch der Lichtquelle abgewandte Seiten Hell?
...jetzt wo du es sagst, stimmt! Hab ja total vergessen die Normalen mit einzubeziehen  . Du kannst das gerne noch hinzufügen.EDIT: hab den letzten code geupdated...
|
|
|
Re: Texturteilabschnitte "leuchten" lassen.
[Re: miez]
#331941
07/06/10 19:57
07/06/10 19:57
|
Joined: Apr 2010
Posts: 172
wdlmaster
Member
|
Member
Joined: Apr 2010
Posts: 172
|
Was ist denn jetzt eigentlich der Unterschied... Der alte code hatte die Oberflächenrichtung komplett ignoriert. Lichter wären also auch von "hinter der Wand" sichtbar gewesen. Und was ist das Problem, dass es nur Vertexlightning ist... Beziehungsweise was wäre denn, wenn Pixellightning auch drin wäre?
Die Positionsaufösung ist mies, weil sie von der "Dichte" des Meshs bestimmt wird. Ist der Abstand zw. 2 Vertices zu groß, kann es sein, dass das Licht kaum oder garnicht mehr sichtbar ist. Aber ich glaube, für deine Zwecke reichts...
|
|
|
|