Her zamanki klasik laflardan olacak ama isteyen arkadaşlara Pixel,Vertex veya Quake shaders hakkında geniş bilgi sunabilirim. Pixel shader nedir, nasıl kullanılır gibisinden veya örnek kodlarla zenginleştirilmiş bir şekilde. Fakat bunun içinde bir şartım olacak. Önemli birşey, fakat bunu şimdi açıklamak yersiz olur.
Örnek olarak açıklayacak olursam, Shader'ın genel anlamı bilinen 2D textureyi standart görünüm dışında editleyerek çok daha değişik bir görünüm vermek. örneğin multitexture ve bumpmapping kullanarak bir su efekti hazırlamak (rüzgar yönüne göre şekillenen dalga efekti). Veya env mapping kullanarak ayna oluşturmak vs..
Daha kısa bir açıklama üretmek gerekirse şöyle olur;
Bir texturenin vector ve matrix yapısını "dinamik" olarak değiştirerek sizin oyununuz veya yazılımınıza ekliyor.
[ Bu mesajı düzenleyen: chfbat _FIL 24-04-2004 12:39 ]
//hatavarsa devam etme
if ((FAILED(hRes)) && (lpErrorMsgs != NULL))
{
unsigned char* message = (unsigned char*)pErrorMsgs->GetBufferPointer();
// Diğer hata tanımalamaları.
}
//şimdide pixelshader'ı 3DDevice için tanımlayacağız
hRes = g_lpDevice->CreatePixelShader((DWORD*)pCode->GetBufferPointer(),
&lpPixelShader);
if (FAILED(hRes)) return false; //hata varsa geri
//ve uygulayacağız
hRes = g_lpDevice->SetPixelShader(lpPixelShader);
if (FAILED(hRes)) return false;
bu kadar...
ilkshader.txt içeriği
; versiyon 2.0 olduğunu belirtiyoruz (bu şart)
ps_2_0
;
; s0 kaydedicisini 2D texture kullanımı için tanımlıyoruz
dcl_2d s0
; t0'ı 2D texture koordinantlarını belirlemek için anımlıyoruz
; t0'daki "sıfır" programda texture'ye atadığımız numara
; yani o texture üzerinde işlem yapacağız
dcl t0.xy
bunu foruma postalamak iyi güzel.. ama forumda mesajlar arasında kaybolup gidecek.. bir döküman haline getirseniz de , sitede yayınlasak.. daha güzel olmaz mı?
Bu forumda yeni konular açamazsınız Bu forumdaki mesajlara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız