Shader API rehber

CLEO Shader API - HLSL shaderleri CLEO komut dosyalarıyla yazın ve kullanmaya başlayın, başka bir şeye gerek yok.
CLEO Shader API, Shader
sınıfını temel alır . Arayüzü bu yöntemlere sahip: Load("FileName%v") Dosyadan shaderi (efekt) yükler ve shaderin tanıtıcısını döndürür Draw("Shader%h" "Technique%v" "Left%f" "Top%f" "Right% f" "Bottom%f") shaderin tekniğiyle düz çizer DrawHudElement("Shader%h" "Technique%v" "Left%f" "Top%f" "Right%f" "Bottom%f") shaderin tekniğiyle dik çizer HUD oluşturma tekniği SetFloat("Shader%h" "ParamName%v" "Value%f") Kayan nokta parametresini ayarlar SetInt("Shader%h" "ParamName%v" "Value%i") Tamsayı parametresini ayarlar SetBool("Shader %h" "ParamName%v" "Value%b") Boolean parametresini ayarlar SetVector("Shader%h" "ParamName%v" "X%f" "Y%f" "Z%f" "W%f") Vektör parametresini ayarlar SetMatrix("Shader%h" "ParamName%v" "Matrix%h") Matris parametresini ayarlar. İkinci parametre D3DMATRIX yapısını gösteren bir işaretçidir. SetTexture("Shader%h" "ParamName%v" "TextureName%v") Doku parametresini ayarlar. İkinci parametre ise LoadTexture() metodu ile yüklenen doku adıdır. SetRwTexture("Shader%h" "ParamName%v" "Texture%h") Doku parametresini ayarlar. İkinci parametre RwTexture nesnesine bir işaretçidir. LoadTexture("Name%v" "FileName%v") Dokuyu dosyadan yükler UnloadTexture("Name%v") Dokuyu kaldırır Özellikler Anlambilim Bazı varsayılan parametreleri CLEO betiğine aktarmadan kullanabilirsiniz. Anlambilimle işaretlenirler . CLEO Shader API'si şu anlambilimi destekler: Tür SemanticName Açıklama doku SCREEN_TEX çerçeve arabellek dokusu doku DEPTH_TEX z-buffer doku float3 SUN_CORONA_COL güneşin korona rengi float3 SUN_CORE_COL güneşin çekirdek rengi float3 SKY_TOP_COL float3 SKY_BOTTOM_COL float3 AMBIENT_COL float2 SUN_POSN güneş konumu (ekran alanı koordinatları) float SUN_SIZE float DAYNIGHT_STATE float WEATHER_FOGGYNESS float WEATHER_CLOUD_COVERAGE float WEATHER_RAIN float WEATHER_UNDER_WATERNESS int MULTISAMPLE_LEVELS Oyun menüsünde AA seviyesi bool NIGHT_VISION bool INFRARED_VISION bool HEAT_VISUALS Böyle bir parametre için bir değişken tanımlarken,
Kod:
shared float2 sunPosn : SUN_POSN ;
Ekran boyutu sabitlerini
Tam/yarım ekran efekti çizmek istiyorsanız aşağıdaki parametreyi kullanın:
SCREEN_BASE_X
SCREEN_BASE_Y
SCREEN_SIZE_X
SCREEN_SIZE_Y
SCREEN_HALF_X
SCREEN_HALF_Y
Basit bulanıklık shaderi:
Kod:
shared texture screen : SCREEN_TEX;float dist; sampler2D screenSampler = sampler_state{    Texture = <screen>;}; float4 PS_screen(float2 tex: TEXCOORD0): COLOR{    float4 color;    color =  tex2D(screenSampler, tex);    color += tex2D(screenSampler, tex + dist);    color += tex2D(screenSampler, tex - dist);    return color / 3;} technique ShowScreen{    pass P0    {        PixelShader  = compile ps_2_0 PS_screen();    }}[size=4]
Bu shader için cleo scriptleri:
Kod:
{$CLEO}{$I shaderApi} var    0@: shaderend if    0@ = shader.Load("CLEO\blur.txt")then    while true        wait 0        068D: get_camera_position_to 4@ 5@ 6@        050A: 7@ = distance_between_XYZ 1@ 2@ 3@ and_XYZ 4@ 5@ 6@        7@ *= 0.0008        068D: get_camera_position_to 1@ 2@ 3@        0@.SetFloat("dist", 7@)        0@.Draw("ShowScreen", SCREEN_BASE_X, SCREEN_BASE_Y, SCREEN_SIZE_X, SCREEN_SIZE_Y)            endend0A93: end_custom_thread
 

Technopat Haberler

Yeni konular

Geri
Yukarı