Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Etki durumları, köşe ve piksel işleme hazırlığında işlem hattı durumlarını başlatmak için kullanılır.
effect state [ [index] ] = expression;
Nerede:
- efekt durumu - Geleneksel sabit işlev işlem hattı durumlarına benzer. Durumların tam listesi aşağıda verilmiştir.
- [ [index] ] - İsteğe bağlı tamsayı dizini. Dizin, etki durumları dizisi içinde belirli bir durumu tanımlar. Dış köşeli ayraçlar bir dizinin isteğe bağlı olduğunu gösterir. Bir dizin kullanılıyorsa, iç köşeli ayraçları kullandığınızdan emin olun.
- expression - Durum atama ifadesi. bkz. İfadeleri (Direct3D 9).
Her durumun bir yerel veri türü vardır. Bu, etki bunları atadığında durumun değerlerin içinde olmasını beklediği veri türüdür. Her durumun beklediği veri türleri aşağıda listelenmiştir.
Etki arabiriminin değerleri uygun türe mümkün olan en erken şekilde atamaya çalışacağını unutmayın. Değişmez değerler derleme zamanında yayınlanabilir. Uygun Set yöntemleri çağrıldığında değişmez değer olmayanların (normal değişkenler gibi) yayınlanması gerekir. Örneğin, efekt arabirimi SetBool, SetValueve gerekirse diğer benzer işlevler kullanılarak ayarlanan değerleri dönüştürür. Daha iyi performans için efekt arabirimine geçirilen değerlerin zaten doğru türde olduğundan ve tür ataması gerekmediğinden emin olun. Çalışma zamanı bir değer oluşturamıyorsa bir hata döndürülür.
Efekt durumları aşağıdaki kategorilere ayrılabilir:
- Light States
- Malzeme Durumları
- İşleme Durumlarını
- Piksel Kanal İşleme Durumları
- Köşe Boru İşleme Durumlarını
- Örnekleyici Durumları
- Örnekleyici Aşama Durumları
- Gölgelendirici Durumlarını
- Gölgelendirici Sabit Durumları
- doku durumlarını
- doku aşama durumlarını
- Dönüşüm Durumlarını
Açık Durumlar
Efekti uygulamak için en iyi performansı sağlamak için, efekt dosyasında bir ışığın veya malzemenin tüm bileşenleri belirtilmelidir. Bildiremediğiniz durumlar, Direct3D'nin ışık durumlarını ayrı ayrı ayarlaması için bir varsayılan değere ayarlanır.
Açık Durum | Tür | Değer |
---|---|---|
LightAmbient[n] | float4 | bkz. D3DLIGHT9Ortam üyesi. |
LightAttenuation0[n] | yüzmek | bkz. D3DLIGHT9'nin Attenuation0 üyesi. |
LightAttenuation1[n] | yüzmek | bkz. D3DLIGHT9'nin Attenuation1 üyesi. |
LightAttenuation2[n] | yüzmek | D3DLIGHT9'in Attenuation2 üyesine bakın. |
LightDiffuse[n] | float4 | D3DLIGHT9'in Diffuse üyesine bakın. |
LightDirection[n] | float3 | bkz. D3DLIGHT9Direction üyesi. |
LightEnable[n] | Bool | TRUE veya FALSE. LightEnableiçinde bEnable bağımsız değişkenine bakın. |
LightFalloff[n] | yüzmek | D3DCOLORVALUE. D3DLIGHT9Falloff üyesine bakın. |
LightPhi[n] | yüzmek | D3DLIGHT9Phi üyesine bakın. |
LightPosition[n] | float3 | D3DLIGHT9'nin Konum üyesine bakın. |
LightRange[n] | yüzmek | bkz. D3DLIGHT9Range üyesi. |
LightSpecular[n] | float4 | D3DLIGHT9Specular üyesine bakın. |
LightTheta[n] | yüzmek | D3DLIGHT9Theta üyesine bakın. |
LightType[n] | dword | D3DLIGHT_ öneki olmayan en fazla n D3DLIGHTTYPE değer dizisiyle aynı değer. |
Örnek:
LightEnable[0] = TRUE;
LightType[0] = POINT;
LightPosition[0] = float3<10.0f, 1.0f, 23.0f>;
LightAmbient[0] = float4<0.7f, 0.0f, 0.0f, 1.0f>;
Bu, aydınlatmayı etkinleştirir, nokta aydınlatma türünü yapar, ışık konumunu float3<10.0f, 1.0f, 23.0f>olarak ayarlar ve ortam rengini float4<0.7f, 0.0f, 0.0f, 1.0f>olarak ayarlar.
Malzeme Durumları
Bildiremediğiniz durumlar, Direct3D'nin malzeme durumlarını ayrı ayrı ayarlamanın bir yolu olmadığından bazı varsayılan değerlere ayarlanır.
Malzeme Durumu | Tür | Değer |
---|---|---|
MaterialAmbient | float4 | Ortam ile aynı değer |
MaterialDiffuse | float4 | Diffuse ile aynı değer |
MaterialEmissive | float4 | Emissive ile aynı değer |
MaterialPower | yüzmek | Power ile aynı değer |
MaterialSpecular | float4 | Specular ile aynı değer |
Örnek:
MaterialDiffuse = float4<0.7f, 0.0f, 0.0f, 1.0f>;
MaterialPower = 3.0f;
Bu, yayma rengini float4<0.7f, 0.0f, 0.0f, 1.0f> olarak ayarlayacak ve malzemenin gücünü 3.0f yapacaktır.
İşleme Durumları
İki tür işleme durumu vardır:
- Piksel Kanal İşleme Durumları
- Köşe Boru İşleme Durumlarını
Piksel Kanal İşleme Durumları
Efekt dosyası işleme durumlarının adları sabit işlev işlem hattı durumlarına benzer ve genellikle ön eki kaldırılmıştır.
İşleme Durumu | Tür | Değer |
---|---|---|
AlphaBlendEnable | Bool | True veya False. D3DRENDERSTATETYPEiçindeki D3DRS_ALPHABLENDENABLE aynı değerler. |
AlphaFunc | dword | D3DCMP_ ön eki olmayan D3DCMPFUNC değerleriyle aynı değerler. Bkz. D3DRS_ALPHAFUNC. |
AlphaRef | dword | D3DRS_ALPHAREF ile aynı değerler. |
AlphaTestEnable | dword | True veya False. Bkz. D3DRS_ALPHATESTENABLE. |
BlendOp | dword | D3DBLENDOP_ ön eki olmadan D3DBLENDOP değerleriyle aynı değerler. |
ColorWriteEnable | dword | RED, GREEN, BLUE ve ALPHA'nın bit düzeyinde birleşimi. Bkz. D3DRS_COLORWRITEENABLE. |
DerinlikBias | yüzmek | D3DRS_DEPTHBIAS ile aynı değerler. |
DestBlend | dword | D3DBLEND_ ön eki olmayan D3DBLEND değerleriyle aynı değerler. |
DitherEnable | Bool | True veya False. D3DRS_DITHERENABLE ile aynı değerler. |
FillMode | dword | D3DFILL_ ön eki olmadan D3DFILLMODE değerleriyle aynı değerler. |
LastPixel | dword | True veya False. bkz. D3DRS_LASTPIXEL. |
ShadeMode | dword | D3DSHADE_ ön eki olmadan D3DSHADEMODE ile aynı değerler. |
SlopeScaleDepthBias | yüzmek | D3DRS_SLOPESCALEDEPTHBIAS ile aynı değerler. |
SrcBlend | dword | D3DBLEND_ ön eki olmayan D3DBLEND değerleriyle aynı değerler. |
SRGBWriteEnable | Bool | True veya False. D3DRS_SRGBWRITEENABLE ile aynı değerler. |
KalıpEnable | Bool | True veya False. D3DRS_STENCILENABLE ile aynı değerler. |
StencilFail | dword | D3DSTENCILCAP_ ön eki olmayan D3DSTENCILCAPS ile aynı değerler. Bkz. D3DRS_STENCILFAIL. |
StencilFunc | dword | D3DCMP_ ön eki olmayan D3DCMPFUNC değerleriyle aynı değerler. bkz. D3DRS_STENCILFUNC. |
KalıpMask | dword | D3DRS_STENCILMASK ile aynı değerler. |
StencilPass | dword | D3DSTENCILCAP_ ön eki olmayan D3DSTENCILCAPS ile aynı değerler. Bkz. D3DRS_STENCILPASS. |
StencilRef | Int | D3DRS_STENCILREF ile aynı değerler. |
KalıpWriteMask | dword | D3DRS_STENCILWRITEMASK ile aynı değerler. |
StencilZFail | dword | D3DSTENCILCAP_ ön eki olmayan D3DSTENCILCAPS ile aynı değerler. Bkz. D3DRS_STENCILZFAIL. |
TextureFactor | dword | D3DCOLORile aynı değerler. D3DRS_TEXTUREFACTOR ile aynı değerler. |
Sarmalama0 - Sarmalama15 | dword | Değerler, D3DRS_WRAP0 tarafından kullanılan değerlerle aynıdır. Geçerli değerler şunlardır:
|
ZEnable | dword | D3DZB_ ön eki olmadan D3DZBUFFERTYPE değerleriyle aynı değerler. |
ZFunc | dword | D3DCMP_ ön eki olmayan D3DCMPFUNC değerleriyle aynı değerler. Bkz. D3DRS_ZFUNC. |
ZWriteEnable | Bool | True veya False. bkz. D3DRS_ZWRITEENABLE. |
Örnek:
AlphaBlendEnable = TRUE;
FillMode = WIREFRAME;
Bu, alfa karıştırmayı etkinleştirir ve tüm geometrilerin tel çerçevede işlenmesini sağlar.
Köşe Boru İşleme Durumları
Efekt dosyası işleme durumlarının adları sabit işlev işlem hattı durumlarına benzer ve genellikle ön eki kaldırılmıştır.
İşleme Durumu | Tür | Değer |
---|---|---|
Ortam | float4 | D3DRS_AMBIENT ile aynı değerler. |
AmbientMaterialSource | dword | D3DMCS_ ön eki olmadan D3DMATERIALCOLORSOURCE değerleriyle aynı değerler. Bkz. D3DRS_AMBIENTMATERIALSOURCE. |
Kırpma | Bool | True veya False. D3DRS_CLIPPING ile aynı değerler. |
ClipPlaneEnable | dword | D3DCLIPPLANE0 bit düzeyinde birleşim - D3DCLIPPLANE5 makrolar. Bkz. D3DCLIPPLANEn ve D3DRS_CLIPPLANEENABLE. |
ColorVertex | Bool | True veya False. D3DRS_COLORVERTEX ile aynı değerler. |
CullMode | dword | D3DCULL_ ön eki olmayan D3DCULL değerleriyle aynı değerler. |
DiffuseMaterialSource | dword | D3DMCS_ ön eki olmadan D3DMATERIALCOLORSOURCE değerleriyle aynı değerler. Bkz. D3DRS_DIFFUSEMATERIALSOURCE. |
EmissiveMaterialSource | dword | D3DMCS_ ön eki olmadan D3DMATERIALCOLORSOURCE değerleriyle aynı değerler. Bkz. D3DRS_EMISSIVEMATERIALSOURCE. |
FogColor | dword | D3DCOLORile aynı değerler. Bkz. D3DRS_FOGCOLOR. |
FogDensity | yüzmek | D3DRS_FOGDENSITY ile aynı değerler. |
FogEnable | Bool | True veya False. D3DRS_FOGENABLE ile aynı değerler. |
FogEnd | yüzmek | D3DRS_FOGEND ile aynı değerler. |
FogStart | yüzmek | D3DRS_FOGSTART ile aynı değerler. |
FogTableMode | dword | D3DFOGMODEile aynı değerler. bkz. D3DRENDERSTATETYPED3DRS_FOGTABLEMODE. |
FogVertexMode | dword | D3DFOG_ ön eki olmayan D3DFOGMODE değerleriyle aynı değerler. |
IndexedVertexBlendEnable | Bool | True veya False. D3DRS_INDEXEDVERTEXBLENDENABLE ile aynı değerler. |
Aydınlatma | Bool | True veya False. D3DRS_LIGHTING ile aynı değerler. |
LocalViewer | Bool | True veya False. D3DRS_LOCALVIEWER ile aynı değerler. |
MultiSampleAntialias | Bool | D3DRS_MULTISAMPLEANTIALIAS ile aynı değerler. |
MultiSampleMask | dword | D3DRS_MULTISAMPLEMASK ile aynı değerler. |
NormalizeNormals | Bool | True veya False. D3DRS_NORMALIZENORMALS ile aynı değerler. |
PatchSegments | yüzmek | SetNPatchModeiçindeki nSegments ile aynı değerler. |
PointScale_A | yüzmek | D3DRS_POINTSCALE_A ile aynı değerler. |
PointScale_B | yüzmek | D3DRS_POINTSCALE_B ile aynı değerler. |
PointScale_C | yüzmek | D3DRS_POINTSCALE_C ile aynı değerler. |
PointScaleEnable | Bool | D3DRS_POINTSCALEENABLE ile aynı değerler. |
İşaretle | yüzmek | D3DRS_POINTSIZE ile aynı değerler. |
PointSize_Min | yüzmek | D3DRS_POINTSIZE_MIN ile aynı değerler. |
PointSize_Max | yüzmek | D3DRS_ ön eki olmadan D3DRS_POINTSIZE_MAX değerleriyle aynı değerler. |
PointSpriteEnable | Bool | True veya False. D3DRS_POINTSPRITEENABLE ile aynı değerler. |
RangeFogEnable | Bool | True veya False. D3DRS_RANGEFOGENABLE ile aynı değerler. |
SpecularEnable | Bool | True veya False. D3DRS_SPECULARENABLE ile aynı değerler. |
SpecularMaterialSource | dword | D3DMCS_ ön eki olmadan D3DMATERIALCOLORSOURCE değerleriyle aynı değerler. Bkz. D3DRS_SPECULARMATERIALSOURCE. |
TweenFactor | yüzmek | D3DRS_TWEENFACTOR ile aynı değerler. |
VertexBlend | dword | D3DVBF_ ön eki olmayan D3DVERTEXBLENDFLAGS değerleriyle aynı değerler. Bkz. D3DRS_VERTEXBLEND. |
Örnek:
Ambient = float4<0.7f, 0.0f, 0.0f, 1.0f>;
CullMode = CCW;
FogColor = 0xff0000;
Bu, ortam rengini float4<0,7f, 0,0f, 0,0f, 1,0f>yapar, arka yüz kümeleme modunu saat yönünün tersine ayarlar ve sis rengini kırmızıya ayarlar.
Örnekleyici Durumları
Örnekleyici durumu bir örnekleyici nesnesini temsil eder.
Devlet | Tür | Değer |
---|---|---|
Örnekleyici | Örnekleyici | NULLveya örnekleyici durum bloğu. |
Örnekleyici Aşama Durumları
Örnekleyici aşama durumları dokuları örneklemek için kullanılır. Örnekleyici durumu, filtreleme türlerini ve doku adresleme modlarını belirler.
Örnekleyici Durumu | Tür | Değer |
---|---|---|
AddressU[16] | dword | D3DTADDRESS_ ön eki olmayan D3DTEXTUREADDRESS değerleriyle aynı değerler. Bkz. D3DSAMP_ADDRESSU. |
AddressV[16] | dword | D3DTADDRESS_ ön eki olmayan D3DTEXTUREADDRESS değerleriyle aynı değerler. bkz. D3DSAMP_ADDRESSV. |
AdresW[16] | dword | D3DTADDRESS_ ön eki olmayan D3DTEXTUREADDRESS değerleriyle aynı değerler. Bkz. D3DSAMP_ADDRESSW. |
BorderColor[16] | D3DCOLOR | D3DTEXF_ ön eki olmadan D3DTEXTUREFILTERTYPE aynı değerler. Bkz. D3DSAMP_BORDERCOLOR. |
MagFilter[16] | dword | D3DTEXF_ ön eki olmadan D3DTEXTUREFILTERTYPE aynı değerler. Bkz. D3DSAMP_MAGFILTER. |
MaxAnisotropy[16] | dword | D3DSAMP_ ön eki olmadan D3DSAMP_MAXANISOTROPY ile aynı değerler. |
MaxMipLevel[16] | Int | D3DSAMP_ ön eki olmayan D3DSAMP_MAXMIPLEVEL değerleri. |
MinFilter[16] | dword | D3DSAMP_ ön eki olmayan D3DSAMP_MINFILTER değerleriyle aynı değerler. |
MipFilter[16] | dword | D3DSAMP_ ön eki olmayan D3DSAMP_MIPFILTER değerleriyle aynı değerler. |
MipMapLodBias[16] | yüzmek | D3DSAMP_ ön eki olmadan D3DSAMP_MIPMAPLODBIAS değerleriyle aynı değerler. |
SRGBTexture | Bool | D3DSAMP_ ön eki olmayan D3DSAMP_SRGBTEXTURE ile aynı değer. |
Örnek:
AddressU[0] = CLAMP;
AddressV[0] = CLAMP;
AddressW[0] = CLAMP;
Bu, UVW değerlerini 0 ile 1 arasında olacak şekilde sıkıştırıyor.
Gölgelendirici Durumları
Yalnızca iki efekt gölgelendirici durumu vardır: biri köşe gölgelendirici nesnesiyle, diğeri de piksel gölgelendirici nesnesiyle ilişkilendirilmiş.
Gölgelendirici Durumu | Tür | Değer |
---|---|---|
PixelShader | piksel gölgeleleyici | NULL , derleme bloğu, derleme hedefi veya piksel gölgelendirici parametresi. |
VertexShader | köşeshader | NULL , derleme bloğu, derleme hedefi veya piksel gölgelendirici parametresi. |
Örnek:
VertexShader = compile vs_1_1 VSTexture();
PixelShader = NULL;
Bu, .fx dosyasında daha önce tanımlanmış bir köşe gölgelendiricisi olan VSTexture'ı köşe gölgelendiricisi sürüm 1.1'e derler ve sonra bu derlenmiş gölgelendiriciyi köşe gölgelendiricisi olarak ayarlar. Piksel gölgelendiricisi NULLatanır.
Gölgelendirici Sabit Durumları
Gölgelendirici sabit durumları gölgelendirici sabit parametrelerine erişmek için kullanılır.
Gölgelendirici Sabit Durumu | Tür | Değer |
---|---|---|
PixelShaderConstant | float[m[n]] | m x n kayanlar dizisi; m ve n isteğe bağlıdır. |
PixelShaderConstant1 | float4 | Bir adet 4D şamandıra. |
PixelShaderConstant2 | float4x2 | İki 4D kayan. |
PixelShaderConstant3 | float4x3 | Üç 4D kayan. |
PixelShaderConstant4 | float4x4 | Dört 4D kayan. |
PixelShaderConstantB | bool[m[n]] | m x n bools dizisi; m ve n isteğe bağlıdır. |
PixelShaderConstantI | int[m[n]] | m x n int dizisi. m ve n isteğe bağlıdır. |
PixelShaderConstantF | float[m[n]] | m x n kayanlar dizisi. m ve n isteğe bağlıdır. |
VertexShaderConstant | float[m[n]] | m x n kayanlar dizisi. m ve n isteğe bağlıdır. |
VertexShaderConstant1 | float4 | Bir adet 4D şamandıra. |
VertexShaderConstant2 | float4x2 | İki 4D kayan. |
VertexShaderConstant3 | float4x3 | Üç 4D kayan. |
VertexShaderConstant4 | float4x4 | Dört 4D kayan. |
VertexShaderConstantB | bool[m[n]] | m x n bools dizisi. m ve n isteğe bağlıdır. |
VertexShaderConstantI | int[m[n]] | m x n int dizisi. m ve n isteğe bağlıdır. |
VertexShaderConstantF | float[m[n]] | m x n kayanlar dizisi. m ve n isteğe bağlıdır. |
Doku Durumları
Doku durumları, multitexture blender tarafından kullanılan dokuları başlatır.
Doku Durumu | Tür | Değer |
---|---|---|
Doku[8] | doku | NULL veya doku parametresi. |
Doku Aşaması Durumları
Doku aşama durumları, dokuları ve doku aşamalarını çokmetinli blender'da ayarlar.
Doku Aşaması Durumu | Tür | Değer |
---|---|---|
AlphaOp[8] | dword | D3DTOP_ ön eki olmayan D3DTEXTUREOP ile aynıdır. Bkz. D3DTSS_ALPHAOP. |
AlphaArg0[8] | dword | D3DTA_ ön eki olmayan D3DTA aynıdır. Bkz. D3DTSS_ALPHAARG0. |
AlphaArg1[8] | dword | D3DTA_ ön eki olmayan D3DTA aynıdır. bkz. D3DTSS_ALPHAARG1. |
AlphaArg2[8] | dword | D3DTA_ ön eki olmayan D3DTA aynıdır. bkz. D3DTSS_ALPHAARG2. |
ColorArg0[8] | dword | D3DTA_ ön eki olmayan D3DTA aynıdır. bkz. D3DTSS_COLORARG0. |
ColorArg1[8] | dword | D3DTA_ ön eki olmayan D3DTA aynıdır. Bkz. D3DTSS_COLORARG1. |
ColorArg2[8] | dword | D3DTA_ ön eki olmayan D3DTA aynıdır. Bkz. D3DTSS_COLORARG2. |
ColorOp[8] | dword | D3DTOP_ ön eki olmayan D3DTEXTUREOP ile aynıdır. bkz. D3DTSS_COLOROP. |
BumpEnvLScale[8] | yüzmek | D3DTSS_TCI öneki olmayan D3DTSS_BUMPENVLSCALE değerleri. |
BumpEnvLOffset[8] | yüzmek | D3DTSS_TCI ön eki olmadan D3DTSS_BUMPENVLOFFSET değerleriyle aynı değerler. |
BumpEnvMat00[8] | yüzmek | D3DTSS_BUMPENVMAT00 ile aynı değerler. |
BumpEnvMat01[8] | yüzmek | D3DTSS_BUMPENVMAT01 ile aynı değerler. |
BumpEnvMat10[8] | yüzmek | D3DTSS_BUMPENVMAT10 ile aynı değerler. |
BumpEnvMat11[8] | yüzmek | D3DTSS_BUMPENVMAT11 ile aynı değerler. |
ResultArg[8] | dword | D3DTA_ ön eki olmayan D3DTA aynıdır. bkz. D3DTSS_RESULTARG. |
TexCoordIndex[8] | dword | D3DTSS_TCI ön eki olmayan D3DTSS_TEXCOORDINDEX değerleriyle aynı değerler. |
TextureTransformFlags[8] | dword | D3DTTFF_ ön eki olmayan D3DTEXTURETRANSFORMFLAGS değerlerle aynı değerler. bkz. D3DTSS_TEXTURETRANSFORMFLAGS. |
Dönüşüm Durumları
Dönüştürme matrislerini başlatmak için dönüştürme durumlarını ayarlayın. Efektler, verimlilik için devrilmiş matrisler kullanır. Bir efekte çevrilmiş matrisler sağlayabilirsiniz veya bir efekt, kullanmadan önce matrisleri otomatik olarak tersine çevirir.
Dönüşüm Durumu | Tür | Değer |
---|---|---|
ProjectionTransform | float4x4 | 4x4 kayanlar matrisi. D3DTS_ ön eki olmadan D3DTS_PROJECTION aynı değerler. |
TextureTransform[8] | float4x4 | 4x4 kayanlar matrisi. D3DTS_ ön eki olmayan D3DTRANSFORMSTATETYPE değerleriyle aynı değerler. |
ViewTransform | float4x4 | 4x4 kayanlar matrisi. D3DTS_ ön eki olmayan D3DTS_VIEW değerleriyle aynı değerler. |
WorldTransform | float4x4 | 4x4 kayanlar matrisi. |