Sintaks Variabel Efek (Direct3D 10)
Variabel efek dideklarasikan dengan sintaks berikut.
Sintaks
DataTypeVariableName [ : SemanticName ] <Anotasi>;
Nama | Deskripsi |
---|---|
DataType | Jenis dasar atau tekstur apa pun. |
VariableName | String ASCII yang secara unik mengidentifikasi nama variabel efek. |
SemanticName | String ASCII yang menunjukkan informasi tambahan tentang bagaimana variabel harus digunakan. Semantik adalah string ASCII yang dapat berupa nilai sistem yang telah ditentukan sebelumnya atau string pengguna kustom. |
Anotasi | Satu atau beberapa bagian informasi yang disediakan pengguna (metadata) yang diabaikan oleh sistem efek. Untuk sintaks, lihat Sintaks Anotasi (Direct3D 10). |
Variabel efek yang dideklarasikan di luar semua fungsi, dianggap global dalam cakupan; variabel yang dideklarasikan dalam fungsi bersifat lokal untuk fungsi tersebut.
Contoh
Sampel BasicHLSL10 menggunakan variabel global tanpa semantik untuk warna material, properti cahaya, dan matriks transformasi.
Contoh ini menggambarkan variabel efek global.
float4 g_MaterialAmbientColor; // Material's ambient color
float4 g_MaterialDiffuseColor; // Material's diffuse color
float3 g_LightDir[3]; // Light's direction in world space
float4x4 g_mWorld; // World matrix for object
Contoh ini menggambarkan variabel efek yang lokal ke fungsi shader.
VS_OUTPUT RenderSceneVS( ... )
{
float3 vNormalWorldSpace;
float4 vAnimatedPos;
// shader body
}
Contoh ini menggambarkan parameter fungsi yang memiliki semantik.
VS_OUTPUT RenderSceneVS( float4 vPos : SV_POSITION,
float3 vNormal : NORMAL,
float2 vTexCoord0 : TEXCOORD0,
uniform int nNumLights,
uniform bool bTexture,
uniform bool bAnimate )
{
...
}
Contoh ini menggambarkan mendeklarasikan variabel tekstur.
Texture2D g_MeshTexture; // Color texture for mesh
Pengambilan sampel tekstur dilakukan dengan sampler tekstur. Untuk menyiapkan sampler yang berlaku, lihat jenis sampler.
Topik terkait