Merhaba Arkadaşlar
Blog'um bir aradan sonra tekrar aktiftir.Bu aralar UD(Uzak Diyarlar) projesi süper bir hızla devam ederken zamanım kalınca kendi çapımda bir oyun yapmaya karar verdim ve herkezi eğlendiren bir oyun olmalı dedim.Fizik ! Oyuncular farklı bulmacalar çözsün kendi sahneleri yaratsın e karışık makineler yapsın dedim.Her kesimden ve her yaştan oyuncu ve yapmaya başladım ...
İlk olarak fizik üzerinde çalıştım bir kaç top üzerinde denemeler yaptım görüntüler ;
Blog'da Ara
23 Kasım 2010 Salı
2 Ekim 2010 Cumartesi
Direct3D Matematik - Matrisler
Matrisler Nedir ?
Matrisler sayıların , değişkenlerin veya parametlerin oluşturduğu dikdörtgen biçimindeki sayı tablosudur.
Biz matrisleri verileri tutması için kullanıcaz.
Örnek bir matris ; 3x2
[ 1 , 7 ]
[ 7 , 7 ]
[ 7 , 1 ]
Aklınızda birşeyler oluşmuştur.
DirectX'de matrisleri böyle tanımlıcaz ;
D3DMATRIX matrixim;
Şimdi matrixleri toplamaya geçelim.
[ 1 , 2 ] + [ 4 , 1 ] = ?
[ 2 , 3 ] [ 2 , 1 ]
Bu işlemi nasıl çözücez derseniz çok basit birbirlerinin yerlerini tutan sayıları toplucaz. Yani ilk matrisin 1x1'indeki sayıyı yani 1'i ikinci matrisin 1x1'indeki 4 ile topluyoruz.
Hemen çözelim ;
[ 1 , 2 ] + [ 4 , 1 ] = [ 5 , 3 ]
[ 2 , 3 ] [ 2 , 1 ] [ 4 , 4 ]
Eğer matriste -'li sayılar varsa yine toplayon ve işaretini şu tabloya göre ayarlayın.
+ - = -
+ + = +
- - = +
- + = -
Bu dersimizde bu kadar :) Bir dahaki dersimizde matrislerle çarpma ve bölmeleri görücez ...
Matrisler sayıların , değişkenlerin veya parametlerin oluşturduğu dikdörtgen biçimindeki sayı tablosudur.
Biz matrisleri verileri tutması için kullanıcaz.
Örnek bir matris ; 3x2
[ 1 , 7 ]
[ 7 , 7 ]
[ 7 , 1 ]
Aklınızda birşeyler oluşmuştur.
DirectX'de matrisleri böyle tanımlıcaz ;
D3DMATRIX matrixim;
Şimdi matrixleri toplamaya geçelim.
[ 1 , 2 ] + [ 4 , 1 ] = ?
[ 2 , 3 ] [ 2 , 1 ]
Bu işlemi nasıl çözücez derseniz çok basit birbirlerinin yerlerini tutan sayıları toplucaz. Yani ilk matrisin 1x1'indeki sayıyı yani 1'i ikinci matrisin 1x1'indeki 4 ile topluyoruz.
Hemen çözelim ;
[ 1 , 2 ] + [ 4 , 1 ] = [ 5 , 3 ]
[ 2 , 3 ] [ 2 , 1 ] [ 4 , 4 ]
Eğer matriste -'li sayılar varsa yine toplayon ve işaretini şu tabloya göre ayarlayın.
+ - = -
+ + = +
- - = +
- + = -
Bu dersimizde bu kadar :) Bir dahaki dersimizde matrislerle çarpma ve bölmeleri görücez ...
Artık DirectX ...
Evet arkadaşlar bi ara verdikten sonra DirectX ile kendimi geliştirmeye karar verdin öncedende çalışmışlığım vardı DirectX ile fakat pek birşeyler koyamamıştım ortaya :) .Öğrendikçe dersler ve örnekler burada olacaktır.
HLSL bıraktım değil HLSL devam.Umarım en iyisi bu olur :)
HLSL bıraktım değil HLSL devam.Umarım en iyisi bu olur :)
25 Eylül 2010 Cumartesi
Topik 1.0


Merhaba arkadaşlar Refleks Oyun Tasarım ekibine ben katılmadan önce yaptıkları eğlenceli bir minik oyunu sizlerle paylaşmak istedim.
Oyun Adı : Topik
Kullanılan Motor : 3D Game Studio A7
Download : http://www.refleks.org/Topik.rar
18 Eylül 2010 Cumartesi
HLSL (High Level Shader Language) - Ders 2 Kaplamalar
Merhaba arkadaşlar geçen dersimizde effectsiz bir HLSL kodu yazmıştık bu sefer bir kaç effect vericez objelerimize önce ilk dersimizi hatırlayalım ve ordaki kodumuzu alalım
.
Evet effectsiz kodumuz budur
.
Şimdi öncelikle kaplamanın verilerinin tutan yapı burada tex0'dır .
Ve bunun üzerinde oynucaz
. Öncelikle basitçe kaplama sayımızı 2 katına çıkaralım genellikle çim vs. gibi textureler çoğaltılır.
Ve kaplama verilerini attığımız koda dönelim ;
Ve şimdi kaplamayı 2 ile çarpalım
.
Basit
Şimdi bunu objeye uygulayıp çalıştırırsak iki kat texture çıkar ortaya şimdi ise daha çok işe yarar bir konuya gelelim ve objemizin kaplamasına renk verelim .
Renk vermek için RGBA (Red,Green,Blue,Alpha) kullanıcaz ve float4 ile tanımlıcaz.Renkleri kaplamaya atmak için renkleri RGBA'yı kaplamayla çarpıyoruz.
Ve bunuda objeye atarsak kaplama üzerine hafif şeffaf bir kırmızı renk gelir
.
Bir dahaki dersimizde zaman kavramını kullanıcaz
Emeğe saygı , anlatım bana aittir.

texture entSkin1; sampler Kaplama1 = sampler_state{ texture=<entSkin1>; }
float4 PikselShader(float2 tex0:TEXCOORD0):COLOR{
float4 Renkler; Renkler = tex2D(Kaplama1,tex0);
return Renkler;
}
technique Teknik1{
pass 0{PixelShader = compile ps_2_0 PikselShader();
}
}
Evet effectsiz kodumuz budur

Şimdi öncelikle kaplamanın verilerinin tutan yapı burada tex0'dır .
Ve bunun üzerinde oynucaz

Ve kaplama verilerini attığımız koda dönelim ;
Renkler = tex2D(Kaplama1,tex0);
Ve şimdi kaplamayı 2 ile çarpalım

Renkler = tex2D(Kaplama1,tex0*2);
Basit

Renk vermek için RGBA (Red,Green,Blue,Alpha) kullanıcaz ve float4 ile tanımlıcaz.Renkleri kaplamaya atmak için renkleri RGBA'yı kaplamayla çarpıyoruz.
Renkler = tex2D(Kaplama1,tex0)*float4(1,0,0,0);
Ve bunuda objeye atarsak kaplama üzerine hafif şeffaf bir kırmızı renk gelir

Bir dahaki dersimizde zaman kavramını kullanıcaz

Emeğe saygı , anlatım bana aittir.
15 Eylül 2010 Çarşamba
Başarılı bir Water Shader çalışması :)
Yapan arkadaş cidden süper yapmış :) . En yakın zamanda öğrenicem bunları öğrendiğim zaman oyunumuzda böyle bir deniz yaparız :) .
Modellemede yardım etmek ister misiniz :)
Merhaba arkadaşlar RPG oyunumda modellemeci arkadaşlara ihtiyacım var.İlgilenenler varsa bana ulaşırsa mutlu olurum .Eğer talep olmazsa hazır modeller kullanıcam.
İletişim : mert_atagul@mynet.com
İletişim : mert_atagul@mynet.com
HLSL Ders - 1 Basit bir giriş ...
Merhaba arkadaşlar oyunlarımızı daha iyi yapmak için oyunlarımızda daha iyi grafikler kullanırız.Farklı effectler ve shaderlar ilede oyunumuza hoş görüntüler ekliyebiliriz.Su yansımaları , kayan textureler , texture'lere netlik kazandırma vs. ve bunlar HLSL ile yazacağız 
Bu dersimizde hiçbir effect vermicez fakat temelimizi atıcaz.
.FX olarak yazıcaz kodlarımızı vede ben 3DGS moturunu ele alıcam kodlarımı yazarken küçük değişikler ile diğer motorlardada kullanılabilir.
Evet dersimize geçelim
Evet basit geldi değil mi
. Aslında kolay bir dil değil HLSL zordur fakat hoştur
. Bir texture tanımladık ve entSkin1'dedik entSkin1 dememizin nedeni ise effect'i kullanıcağımız modelin texture'unu kullan dememizdir.Yani bu texture obje'nin texture'dur.
Kaplamamızda effect yok ve Kaplama1 adı.
Şimdi ise sadece Pixsel Shader tanımlıcaz.Vertex kullanmıcaz.
Öncelikle bu kaplamımızın verilerini tutan bir yapı oluşturucaz.
Böylece Pixsel Shader açtık ve verileri tutan yapıyo tex0'ı tanımladık.
Şimdi ise bu verileri döndürelim
.
Verdiğimiz kaplamaları oyuna döndürcek float4.
Şimdi ise kaplamayı atalım.
Ve evet kaplamayı attık şimdi ise verileri döndürelim
.
Ve PikselShader tamam şimdi ise Shader versiyon ve derleme ayarlarını yapalım
.
Evet bu kadar
.
Peki bu shader'ı nasıl objeye atıcam derseniz 3DGS'de şöyledir ;
Buda bu kadardır
Emeğe saygı anlatım bana aittir
.

Bu dersimizde hiçbir effect vermicez fakat temelimizi atıcaz.
.FX olarak yazıcaz kodlarımızı vede ben 3DGS moturunu ele alıcam kodlarımı yazarken küçük değişikler ile diğer motorlardada kullanılabilir.
Evet dersimize geçelim

texture entSkin1;
Evet basit geldi değil mi


sampler Kaplama1 = sampler_state{ texture=<entSkin1>; }
Kaplamamızda effect yok ve Kaplama1 adı.
Şimdi ise sadece Pixsel Shader tanımlıcaz.Vertex kullanmıcaz.
Öncelikle bu kaplamımızın verilerini tutan bir yapı oluşturucaz.
float4 PikselShader(float2 tex0:TEXCOORD0):COLOR
Böylece Pixsel Shader açtık ve verileri tutan yapıyo tex0'ı tanımladık.
Şimdi ise bu verileri döndürelim

float4 Renkler;
Verdiğimiz kaplamaları oyuna döndürcek float4.
Şimdi ise kaplamayı atalım.
Renkler = tex2D(Kaplama1,tex0);
Ve evet kaplamayı attık şimdi ise verileri döndürelim

return Renkler;
}
Ve PikselShader tamam şimdi ise Shader versiyon ve derleme ayarlarını yapalım

technique Teknik1{
pass 0{PixelShader = compile ps_2_0 PikselShader();
}
}
Evet bu kadar

Peki bu shader'ı nasıl objeye atıcam derseniz 3DGS'de şöyledir ;
MATERIAL*Shader={effect="shader.fx";
}
ENTITY*obje;
obje.material=Shader;
Buda bu kadardır

Emeğe saygı anlatım bana aittir

14 Eylül 2010 Salı
RPG oyunumun camera sisteminin tamamlanmasına az kaldı :)
Evet hala adını vermediğim RPG oyunumun camera sistemi bitmek üzere .Kendime özgü bir teknik kullandım matematik gerektirmeye basit bir sistem.Belki sizinlede paylaşırım :) .
- Sağ mouse tuşuna basılı tutunca karakter etrafında camera'yı döndürebilirsiniz.
- W-S-A-D tuşları ile karakteri yürütürken camera sabit kalıyor.
- F1'e basınca camera tekrar karakterin arkasına geliyor.
Eğer camera hakkında bir fikriniz varsa burdan iletirseniz sevinirim :)
En yakın zamanda ekran görüntülerine hatta belki bir demo verebilirim :) .
- Sağ mouse tuşuna basılı tutunca karakter etrafında camera'yı döndürebilirsiniz.
- W-S-A-D tuşları ile karakteri yürütürken camera sabit kalıyor.
- F1'e basınca camera tekrar karakterin arkasına geliyor.
Eğer camera hakkında bir fikriniz varsa burdan iletirseniz sevinirim :)
En yakın zamanda ekran görüntülerine hatta belki bir demo verebilirim :) .
13 Eylül 2010 Pazartesi
Yeni Blog ve Merhaba :)
Merhaba arkadaşlar :)
Yeni bir blog açtım mutluyum.Blogda Uzak Diyarlar ve adını daha koymadığım RPG oyunumun gelişim sürecini sizlerle paylaşacağım ara sıra 3DGS ve HLSL dersleri vereceğim :) .Yani oyun geliştirici platformu gibi bir ortam yaratmak istiyorum :) . Oyun yapmak zor değil arkadaşlar herkez oyun yapabilir yeterki sabır ve emek verin :)
Bilgi isteyen bana ulaşabilir :)
Yeni bir blog açtım mutluyum.Blogda Uzak Diyarlar ve adını daha koymadığım RPG oyunumun gelişim sürecini sizlerle paylaşacağım ara sıra 3DGS ve HLSL dersleri vereceğim :) .Yani oyun geliştirici platformu gibi bir ortam yaratmak istiyorum :) . Oyun yapmak zor değil arkadaşlar herkez oyun yapabilir yeterki sabır ve emek verin :)
Bilgi isteyen bana ulaşabilir :)
Kaydol:
Kayıtlar (Atom)