Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 14.12.2006, 16:37 Titel: Renderstates aus HLSL |
|
|
Hi, kennt jemand eine gute Möglichkeit aus HLSL Datein die RenderStates auszulesen?
Aus dieser Datei möchte ich zB auslesen ob im Pass "p0" das RenderState "AlphaBlendEnable" auf true gesetzt ist.
CPP: | float4x4 matWorldViewProj : WorldViewProjection;
texture myTexture : Diffuse;
struct vertexStream {
float3 position : POSITION;
float2 UV : TEXCOORD0;
};
vertexOutput VS_11(vertexStream IN)
{
vertexStream OUT;
OUT.position = mul( float4(IN.position.xyz , 1.0) , matWorldViewProj);
OUT.UV = IN.UV;
return OUT;
}
sampler2D TextureSampler = sampler_state
{
texture = <myTexture>;
MinFilter = Linear;
MagFilter = Linear;
MipFilter = None;
AddressU = Clamp;
AddressV = Clamp;
AddressW = Clamp;
};
float4 PS_20( vertexStream IN): COLOR
{
return tex2D( TextureSampler, IN.UV0);
}
technique T01
{
pass p0
{
VertexShader = compile vs_1_1 VS_11();
PixelShader = compile ps_2_0 PS_20();
AlphaBlendEnable = True;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
}
} |
In der DX Doku oder beim suchen im Netz habe ich leider nichts gefunden, evtl auch nur die falschen Suchbegriffe benutzt.
Ich würde es übrigens gerne vermeiden die Datei per hand auszulesen, also wenn möglich suche ich eine buildin Möglichkeit oder zumindest etwas was das gleiche kann was ich suche.
Bin für Hilfe dankbar.
mfg Mark _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
Tobias Mini JLI'ler

Alter: 34 Anmeldedatum: 20.02.2003 Beiträge: 13
Medaillen: Keine
|
Verfasst am: 25.12.2006, 19:17 Titel: |
|
|
Hi,
ich hab noch wenig mit FX Files gemacht, hab jetzt aber mal spontan in der DX Doku in der Klasse ID3DXBaseEffect nachgeschaut - damit scheint man recht gut auf FX Files Zugriff zu haben.
Was ich gefunden habe: ID3DXBaseEffect::GetTechnique -> ID3DXBaseEffect::GetPass -> ID3DXBaseEffect::GetParameter -> D3DXBaseEffect::GetBool etc.
Es gibt da auch immer die entsprechenden Ergänzungen aka "Get...ByName". Sollte also dem entsprechen, was du suchst (so wie ich das jetzt in der Kürze gefunden habe). |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 26.12.2006, 23:54 Titel: |
|
|
Die Funktionen hatte ich als erstes versucht zu benutzen, leider habend die keinerlei Bewandniss für die RenderStates.
mfg Mark _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
Tobias Mini JLI'ler

Alter: 34 Anmeldedatum: 20.02.2003 Beiträge: 13
Medaillen: Keine
|
Verfasst am: 27.12.2006, 20:19 Titel: |
|
|
Hm, in diesem Fall fällt mir nur noch die Möglichkeit ein, dass du den ID3DXEffectStateManager mit Methoden ausfüllst, dann BeginPass des Effekts aufrufst und dann schaust, was du alles an RenderStates bekommst. Du bekommst das Zeug dann allerdings in Form von RenderState-Konstanten, nicht mehr als String über ID3DXEffectStateManager::SetRenderState. _________________ http://www.alphanew.net/ (Last update: 10.12.2006)
 |
|
Nach oben |
|
 |
Christian Rousselle Site Admin

Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 27.12.2006, 23:12 Titel: |
|
|
Sehe auch nur die Chance eine Klasse für den StateManager zu implementieren. Damit wird eine Funktion von dir für jeden Renderstate aufgerufen. Ist aber eigentlich keine schlechte Möglichkeit. |
|
Nach oben |
|
 |
|