PÜRÜZLÜ YÜZEY ÜRETİMİ

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "PÜRÜZLÜ YÜZEY ÜRETİMİ"

Transkript

1 KARADENİZ TEKNİK ÜNİVERSİTESİ Bilgisayar Mühendisliği Bölümü Bilgisayar Grafikleri Laboratuarı PÜRÜZLÜ YÜZEY ÜRETİMİ 1. Giriş Cisimlerin yüzey görüntülerindeki parlaklık değişimi iki nedene dayanır. Birincisi yüzey dokusu (texture), ikincisi ise yüzeydeki pürüzlülüktür. Yüzey pürüzlülüğü, yüzey görüntüsü doku elemanı kabul edilerek izdüşüm tekniğiyle gerçek anlamda üretilemez. Çünkü doku elemanı olarak kullanılan resim dosyası sabittir. Yüzeyin pürüzlü görünümü ise o yüzeyi aydınlatan ışık kaynağının konumuna bağlıdır ve ışık kaynağı konum değiştirdikçe pürüzlü görünüm de değişmektedir. Yani yüzeyin herhangi bir noktasının çukur/tümsek görünmesi o noktanın ışık kaynağı tarafından aydınlatılıp/aydınlatılmadığına bağlıdır. Pürüzlü yüzey üretme yöntemi ( Bump Mapping ) ilk olarak 1978 yılında Jim Blinn tarafından kullanıldı. Bu yönteme göre klasik doku kaplamada kullanılan resim dosyasındaki renk değişimlerinden faydalanılarak o resim dosyasının kaplanacağı yüzeyin normali değiştirilir. Herhangi bir yüzeyin ışık kaynağının konumuna göre rengi belirlenirken normale bağlı hesaplama yapıldığından kullanılan doku sayesinde değişen normalle birlikte yüzey üzerinde tümsekler/çukurlar varmış gibi bir görüntü ortaya çıkar. Örneğin taşlardan örülmüş bir duvar dokusu kullanılsın. Bu doku düzlemsel bir yüzey üzerine bump mapping yöntemine göre kaplandığında gerçekte yüzey düzlemsel olduğu halde pürüzlü görünecektir. Bu deneyde bump mapping yöntemine göre pürüzlü yüzeyler üretilecektir. Programlama dili olarak Visual C , grafik programlama API si olarak da DirectX kullanılacaktır. Visual C++ da DirectX kodu yazabilmek için Microsoft un sitesinden DirectX SDK indirilip kurulur. C:\Program Files\Microsoft DirectX SDK altındaki include ve lib klasörleri Visual C++ ın C:\Program Files\Microsoft Visual Studio.NET 2003\Vc7\PlatformSDK altındaki include ve lib klasörlerine kopyalanır. DirectX tek başına pürüzlü yüzey üretmek için yeterli değildir. Çünkü DirectX te herhangi bir poligon boyanırken ışık kaynağına bağlı olarak sadece köşe noktaları (vertex) için renk değeri hesaplanır. Poligonun içinde kalan noktaların rengi interpolasyonla bulunur. Dolayısıyla DirectX te boyama poligon mertebesinde yapılır. Halbuki bump mapping yönteminde doku kaplamada kullanılacak resim dosyasındaki renk değişimi hesaplanırken piksel mertebesinde çalışılmaktadır. Ekran kartlarında 2 temel işlemci vardır: Vertex İşlemci Fragment (Pixel) İşlemci Vertex işlemci adından da anlaşılacağı üzere vertexler üzerinde, dünya koordinatlarından ekran koordinatlarına izdüşüm, backface culling, clipping, z-buffering ve doku koordinatı hesabı yapar. Fragment işlemci de teker teker piksellerin son renk değerini hesaplar. DirectX, OpenGL gibi API ler ekran kartlarının sadece vertex işlemcisini programlayabilir. Ekran kartlarının her iki işlemsini programlayabilmek için geliştirilmiş dillere genel olarak shading language denir. Bu dillerin vertex işlemciyi programlayan kodlarına vertex shader ; fragment işlmeciyi programlayan kodlarına da fragment (pixel) shader denir. DirectX in shading dili HLSL (High Level Shading Language), OpengL in ise GLSL dir. HLSL de yazılan kod D3DXCreateEffectFromFile komutuyla DirectX ortamında yüklenir ve çalıştırılır (benzeri GLSL ve OpenGL için yapılır). Dolayısıyla bump mapping için hem DirectX hem de HLSL kodu yazılacaktır. Öncelikle HLSL dili hakkında genel bilgiler verilecek ardından HLSL de bump mapping programının nasıl yazılacağı anlatılacaktır.

2 2. HLSL Dili Hakkında Genel Bilgiler HLSL dili syntax yapısı olarak C++ diline oldukça benzemektedir. HLSL dilinde yazılan kodlara effect kodu denir ve.fx uzantılı dosyaya kaydedilir. İlk olarak Şekil-1 deki gibi küpü mavi renge boyayacak color.fx adlı HLSL vertex shader kodu incelenecektir. color.fx Şekil-1: Küp Örneği uniform extern float4x4 gwvp; struct OutputVS float4 posh : POSITION0; float4 color : COLOR0; ; OutputVS ColorVS(float3 posl : POSITION0, float4 c : COLOR0) OutputVS outvs = (OutputVS)0; outvs.posh = mul(float4(posl, 1.0f), gwvp); outvs.color = c; return outvs; technique ColorTech pass P0 vertexshader = compile vs_2_0 ColorVS(); uniform extern float4x4 gwvp; Burada uniform biz C++ kodunda değişiklik yapmadıkça değişkenin sabit olduğunu gösterir. extern ifadesi C++ kodunun bu değişkene dışardan erişebildiğini gösterir. float4x4 ifadesi de 4X4 boyutunda matris olduğunu gösterir. Burada tanımlanan gwvp adlı değişken world, view ve projection matrislerinin bir araya getirilmiş halidir. Yani dünya koordinatlarından ekran koordinatlarına izdüşüm yapar. Bu matris C++ kodunda hesaplandığından extern olarak tanımlandı. 2

3 struct OutputVS float4 posh : POSITION0; float4 color : COLOR0; ; Burada tanımlanan structure ColorVS adlı vertex shaderın döndürdüğü değerdir. Structure ın 2 değişkene sahip olduğu görülür: float4 posh : POSITION0; / / vertex koordinatlarını gösterir. float4 color : COLOR0; / / vertexin rengini gösterir. Burada :POSITION0 ve :COLOR0 şeklindeki ifadelere semantic denir. Dikkat edilirse her iki değişken de float4 türündendir. Yalnız biri koordinat diğeri ise renk bilgisi tutmaktadır. Ekran kartında koordinatlar ve renkler farklı registerlarda tutulurlar. Dolayısıyla :POSITION0 ve :COLOR0 semanticleri değişkenin hangi registerda tutulacağını gösterir. OutputVS ColorVS(float3 posl : POSITION0, float4 c : COLOR0)... ColorVS vertex shaderın ismidir. Dikkat edilirse vertexlerin koordinatlarını ve rengini parametre olarak almakta ve OutputVS türünden değer döndürmektedir. Bu örnekte ColorVS adlı vertex shader küpe ait üçgenlerin içini boyayacaktır. Bunun için üçgenlerin koordinatlarına ve rengine ihtiyaç duymaktadır. OutputVS outvs = (OutputVS)0; outvs.posh = mul(float4(posl, 1.0f), gwvp); outvs.color = c; return outvs; Yukarıdaki kodda öncelikle outvs adlı struct değişken OutputVS türünden tanımlanmaktadır. Daha sonra outvs nin posh ve color değişkenleri setlenmektedir. posh setlenirken posl değişkeniyle dünya koordinatlarına sahip üçgenler alınıp gwvp matrisiyle çarpılarak ekran koordinatlarına izdüşüm yapılmaktadır. technique ColorTech pass P0 vertexshader = compile vs_2_0 ColorVS(); technique ve pass ekran kartının özelliklerine bağlı olarak vertex shaderın türünü belirlemede kullanılır. Örneğin burada compile vs_2_0 ile ekran kartına vertex shader 2.0 desteği ile derlenmesi söylenmiştir. Ekran kartını yeteneklerin bağlı olarak 3.0 hatta 4.0 olabilir. Örneğin GeForce 7 serisi 3.0 ı, GeForce 8 serisi 4.0 ı desteklemektedir. Kodda küpün koordinatları ve rengi C++ kodundan alınmaktadır. Dolayısıyla HLSL de yazılan vertex shader küpün koordinatları ve renginde bir değişiklik yapmamaktadır. Eğer küpün rengi vertex shaderda değiştirilmek istenirse örneğin rengi kırmızı olsun denirse kod şu şekilde değiştirebilir: OutputVS ColorVS(float3 posl : POSITION0) OutputVS outvs; outvs.posh = mul(float4(posl, 1.0f), gwvp); outvs.color = float4(1, 0, 0, 1); //(R,G,B,A):Reg,Gren,Blue,Alpha return outvs; 3

4 Programın Visual C++ ortamında yüklenmesi şu şekildedir: IDirect3DDevice9* gd3ddevice; ID3DXEffect* mfx; D3DXCreateEffectFromFile(gd3dDevice,"color.fx",0,0,D3DXSHADER_DEBUG,0,&mFX,&errors) D3DXCreateEffectFromFile komutunda gd3ddevice DirectX device ını temsil eder. DirectX te kod yazmak için öncelikle bir device tanımlamak şarttır. "color.fx" effect kodunu adını gösterir. mfx de effect e pointerdır. Nasıl DirectX için device gerekiyorsa HLSL için de mfx tanımlamak şarttır. Yüklenen HLSL effectinin koşulması şu şekildedir: mhtech = mfx->gettechniquebyname("colortech"); mhwvp = mfx->getparameterbyname(0, "gwvp"); gd3ddevice-clear(0,0,d3dclear_target D3DCLEAR_ZBUFFER,0xffeeeeee,1.0f, 0); gd3ddevice->beginscene(); gd3ddevice->setstreamsource(0, mvb, 0, sizeof(vertexcol)); gd3ddevice->setindices(mib); gd3ddevice->setvertexdeclaration(vertexcol::decl); mfx->settechnique(mhtech); mfx->setmatrix(mhwvp, &(mview*mproj)); unsigned int numpasses = 0; mfx->begin(&numpasses, 0); for(unsigned int i = 0; i < numpasses; ++i) mfx->beginpass(i); gd3ddevice->drawindexedprimitive(d3dpt_trianglelist, 0, 0, 8, 0, 12); mfx->endpass(); mfx->end(); gd3ddevice->endscene(); DirectX te çizim gd3ddevice->beginscene() ile gd3ddevice->endscene() komutları arasında; HLSL de ise mfx->begin() ile mfx->end() komutları arasında olur. for()döngüsü içinde mfx->beginpass(i)ile effect dosyasındaki bütün pass lar işlenir. Bizim kodumuzda tek pass var. Dolayısıyla for() döngüsü bir kez dönecektir. mfx->beginpass(i) ile mfx->endpass() arasında DrawIndexedPrimitive komutuyla küpe ait üçgenlerin çizimi yapılmaktadır. mhtech = GetTechniqueByName("ColorTech") ile effect dosyasından technique ismi alınır. Daha sonra mfx->settechnique(mhtech) ile technique setlenir. Benzeri şekilde "gwvp" parametresi mhwvp = mfx->getparameterbyname(0, "gwvp") ile alınır ve mfx- >SetMatrix(mhWVP, &(mview*mproj)) ile setlenir. Kodda geçen aşağıdaki 3 satır küp için gerekli index ve vertex buffer setlemeleri içindir. gd3ddevice->setstreamsource(0, mvb, 0, sizeof(vertexcol)); gd3ddevice->setindices(mib); gd3ddevice->setvertexdeclaration(vertexcol::decl); 4

5 Bu vertex shader örneği adından da anlaşılacağı gibi ekran kartının sadece vertex işlemcisini programlayan bir örnek oldu. HLSL nin asıl avantajı pixel işlemciyi de programlayabilmesidir. Bunun için yazılan koda pixel shader denir. Genelde pixel shader tek başına yazılmaz, vertex shaderla birlikte yazılır. Vertex shaderın çıktısı olan koordinatlar pixel shadera girdi olur ve pixel shader da bu koordinatlar için son renk değerini hesaplar. Dolayısıyla pixel shaderın vertex shadera göre avantajını gösteren en iyi örnek boyama örneğidir. Burada yazılacak olan pixel shaderla bir çaydanlık (teapot) Phong yöntemine göre boyanacaktır. Yani her bir pixel için Phong a göre ambient, diffuse ve specular bileşenler hesaplanacaktır. Pixel shaderın, vertex shadera göre avantajını göstermek açısından önce tek vertex shader sonra da hem vertex hem de pixel shader birlikte yazılacak (çünkü pixel shader tek başına yazılmıyordu) ve bu kodların çıktıları karşılaştırılacaktır. Programı yazmadan önce Phong boyama yönteminden bahsedelim. Phong a göre herhangi bir pixelin rengi onun ambient, diffuse ve specular bileşenlerinin toplamıdır. Bu bileşenler hesaplanırken bakış noktasının, ışık kaynağının konumu ve boyanacak cismin yüzey normali kullanılır. Ambient bileşen bütün pixeller için başlangıçta belirlenmiş default bir renktir. Genelde beyazın tonları seçilir. Işık kaynağı tarafından direkt aydınlatılmayan nesneler siyah görünmezler çünkü dolaylı olarak yani başka nesnelerden yansıyan ışınlar sayesinde kısmen de olsa aydınlatılırlar. Bu özelliği boyamada hesaba katmak için ambient bileşen kullanılır. Diffuse bileşen hesaplanırken ışık kaynağının konumu ve yüzey normali gereklidir. Diffuse bileşen ışık kaynağına olan vektör ile yüzey normali arasındaki açıdır. Her iki vektör de birim vektör olduğu durum için açı, bu vektörlerin skaler çarpımıyla bulunur. HLSL de skaler çarpım θ=dot(l,n) komutuyla yapılır. Şekil-2 de diffuse bileşen gösterilmiştir: Şekil-2: Diffuse Bileşen Specular bileşen hesaplanırken bakış noktasının, ışık kaynağının konumu ve yüzey normali gereklidir. Specular bileşen ışık kaynağına olan L vektörünün yüzey normali N den aynasal yansıması R vektörü ile bakış noktasına olan C vektörü arasındaki açıdır. Yani β=dot(r,c) ile hesaplanır. Burada R vektörü R = L - (2L*N)N ile hesaplanır. Specular bileşen Şekil-3 te gösterilmiştir. Şekil-3: Specular Bileşen 5

6 Phong boyama yapan vertex shader aşağıdaki gibidir: uniform extern float4x4 gworld; uniform extern float4x4 gworldinversetranspose; uniform extern float4x4 gwvp; uniform extern float4 gambientmtrl; uniform extern float4 gambientlight; uniform extern float4 gdiffusemtrl; uniform extern float4 gdiffuselight; uniform extern float4 gspecularmtrl; uniform extern float4 gspecularlight; uniform extern float gspecularpower; uniform extern float3 glightvecw; uniform extern float3 geyeposw; struct OutputVS float4 posh : POSITION0; float4 color : COLOR0; ; OutputVS AmbientDiffuseSpecVS(float3 posl : POSITION0, float3 normall : NORMAL0) OutputVS outvs = (OutputVS)0; float3 normalw = mul(float4(normall, 0.0f), gworldinversetranspose).xyz; normalw = normalize(normalw); float3 posw = mul(float4(posl, 1.0f), gworld).xyz; float3 toeye = normalize(geyeposw - posw); float3 r = reflect(-glightvecw, normalw); float t = pow(max(dot(r, toeye), 0.0f), gspecularpower); float s = max(dot(glightvecw, normalw), 0.0f); float3 spec = t*(gspecularmtrl*gspecularlight).rgb; float3 diffuse = s*(gdiffusemtrl*gdiffuselight).rgb; float3 ambient = gambientmtrl*gambientlight; outvs.color.rgb = ambient + diffuse + spec; outvs.color.a = gdiffusemtrl.a; outvs.posh = mul(float4(posl, 1.0f), gwvp); return outvs; technique AmbientDiffuseSpecTech pass P0 vertexshader = compile vs_2_0 AmbientDiffuseSpecVS(); 6

7 Programın başında tanımlanan ilk 3 değişken koordinat sistemleri asındaki dönüşüm işlemini yapmaktadır. Sonra gelen değişkenlerin değerleri şöyledir: mlightvecw = D3DXVECTOR3(0.0, 0.0f, -1.0f); mdiffusemtrl = D3DXCOLOR(0.0f, 0.0f, 1.0f, 1.0f); mdiffuselight = D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f); mambientmtrl = D3DXCOLOR(0.0f, 0.0f, 1.0f, 1.0f); mambientlight = D3DXCOLOR(0.4f, 0.4f, 0.4f, 1.0f); mspecularmtrl = D3DXCOLOR(0.8f, 0.8f, 0.8f, 1.0f); mspecularlight = D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f); mspecularpower = 8.0f; AmbientDiffuseSpecVS vertex shaderınını başında gerekli koordinat dönüşümleri yapıldıktan sonra: float3 toeye = normalize(geyeposw - posw) ile bakış noktasına olan vektör hesaplanır float3 r = reflect(-glightvecw, normalw) ile normalden yansıyan vektör hesaplanır float t = pow(max(dot(r, toeye), 0.0f), gspecularpower) ile specular bileşen hesaplanır. Burada gspecularpower specular highlightın yarıçapını belirler. Küçük gspecularpower değerleri için yarıçap büyük; büyük gspecularpower değerleri için de küçüktür. float s = max(dot(glightvecw, normalw), 0.0f) ile diffuse bileşen hesaplanır. float3 spec = t*(gspecularmtrl*gspecularlight).rgb; float3 diffuse = s*(gdiffusemtrl*gdiffuselight).rgb; float3 ambient = gambientmtrl*gambientlight; Yukarıdaki 3 satır ile son ambient, diffuse ve specular renk değerleri hesaplanır ve outvs.color.rgb = ambient + diffuse + spec; outvs.color.a = gdiffusemtrl.a; ile bu değerler toplanıp, alpha (parlaklık) değeri de eklenerek çaydanlığın son renk bulunur. Programın ekran görüntüsü aşağıda verilmiştir. Dikkat edilirse henüz hala vertexler üzerinde işlem yapıldığından görüntüdeki vertexler seçilebilmektedir. Bu programın pixel shader versiyonununda pixel mertebesinde hesap yapılacağından çok daha yumuşak (smooth) bir görüntü elde edilecektir. Yani vertexler görünmeyecektir. 7

8 Bu örenğin pixel shader versiyonunda da benzeri bir kod yazılacaktır. Daha önce de bahsedildiği gibi pixel shader kodu tek başına yazılmayacak, vertex shaderla birlikte yazılacaktır. Buna vertex shader kodu koordinatlarla ilgili işlemleri yapacak; pixel shader da renk hesabı yapacaktır. Dolayısıyla ambient, diffuse ve specular bileşenler pixel shaderda hesaplanıp son renk değeri bulunacaktır. Pixel shader ve ekran görüntüsü aşağıdaki gibidir. struct OutputVS float4 posh : POSITION0; float3 normalw : TEXCOORD0; float3 posw : TEXCOORD1; ; OutputVS AmbientDiffuseSpecVS(float3 posl : POSITION0, float3 normall : NORMAL0) OutputVS outvs = (OutputVS)0; outvs.normalw = mul(float4(normall, 0.0f), gworldinversetranspose).xyz; outvs.normalw = normalize(outvs.normalw); outvs.posw = mul(float4(posl, 1.0f), gworld).xyz; outvs.posh = mul(float4(posl, 1.0f), gwvp); return outvs; float4 AmbientDiffuseSpecPS(float3 posw : TEXCOORD1, float3 normalw : TEXCOORD0) : COLOR BURADA ANBIENT, DIFFUSE, SPECULAR, RENK HESAPLANIR VE COLOR OLARAK DÖNDÜRÜLÜR technique AmbientDiffuseSpecTech pass P0 vertexshader = compile vs_2_0 AmbientDiffuseSpecVS(); pixelshader = compile ps_2_0 AmbientDiffuseSpecPS(); 8

9 3. Bump Mapping Bump mapping yöntemi daha önce de bahsettiğimiz gibi doku olarak kullanılan resim dosyasındaki renk değişimlerine bağlı olarak bu dokuyu üzerine kaplayacağımız yüzeyin normalini pixel pixel değiştirerek tümsekler/çukurlar varmış izlenimi verir. Çünkü yüzey normali değiştiği için Phong yöntemiyle hesaplanan diffuse ve specular bileşen de değişecektir. Burada iki türlü doku söz konusudur. Birincisi doku kaplamada kullanılacak resim dosyası; ikincisi de bu resim dosyasından elde edilecek normal map dosyası. Her iki dosya da resim dosyası (örneğin.bmp) formatındadır. Yalnız birincisi kaplanacak doku ikincisi ise yüzey normalini değiştirecek dokudur. Şekil-4 te örnek bir doku ve bu dokudan elde dilmiş normal map dokusu verilmiştir. Şekil-4: Solda doku, sağda da bu dokudan elde edilen normal map Normal map dokusuna dikkat edilirse R,G,B (Red, Gren, Blue) renklerinden oluştuğu görülür. Yatayda (x-ekseni) değişim varsa Red, düşeyde (y-ekseni) değişim varsa Gren, değişim yoksa da Blue renge boyanmıştır. Herhangi bir h(x j,y i ) pikseli için değişim olup olmadığı aşağıdaki ifadelerle hesaplanır: δh δx = h( x j + Δx, y ) h( x i 2Δx j Δx, y ) i δh = δy h( x, y j i + Δx) h( x, y 2Δy j i Δx) 9

10 Bump Mapping pixel shader kodu aşağıda verilmiştir: float4 NormalMapPS(float3 toeyet : TEXCOORD0, float3 lightdirt : TEXCOORD1, float2 tex0 : TEXCOORD2) : COLOR toeyet = normalize(toeyet); lightdirt = normalize(lightdirt); float3 lightvect = -lightdirt; float3 normalt = tex2d(normalmaps, tex0); normalt = 2.0f*normalT - 1.0f; normalt = normalize(normalt); float3 r = reflect(-lightvect, normalt); float t = pow(max(dot(r, toeyet), 0.0f), gmtrl.specpower); float s = max(dot(lightvect, normalt), 0.0f); if(s <= 0.0f) t = 0.0f; float3 spec = t*(gmtrl.spec*glight.spec).rgb; float3 diffuse = s*(gmtrl.diffuse*glight.diffuse).rgb; float3 ambient = gmtrl.ambient*glight.ambient; float4 texcolor = tex2d(texs, tex0); float3 color = (ambient + diffuse)*texcolor.rgb + spec; return float4(color, gmtrl.diffuse.a*texcolor.a); float3 normalt = tex2d(normalmaps, tex0) ile normal map dokusundan normal alınmaktadır. Dokudan alınan normal değerleri [0,1] arasına değişmektedir. [-1,1] aralığına ötelemek için normalt = 2.0f*normalT - 1.0f yapılmıştır. Elde edilen normal değeri ile diffuse ve specular bileşenler hesaplanmıştır. Şekil-5 te bump mapping ile üretilmiş bir görüntü verilmiştir: 10

11 Şekil-5: Bump mapping ile üretilmiş bir görüntü 4. Deneye Hazırlık Örnek programları adresinden indirip çalıştırınız. Programlar üzerinde değişiklikler yaparak sonuçlarını gözlemleyiniz. Örneğin specular bileşen olarak Jim Bliin in farklı bir yaklaşımı vardır. Burada R yansıma vektörü yerine N + C H = half vektörü kullanılır. Vertex/pixel shader kodlarını buna değiştiriniz. 2 Bump Mapping yönteminin Environment bump mapping, Reflection Bump Mapping gibi türevleri vardır. Bu yöntemler hakkında araştırma yapınız. 11

PÜRÜZLÜ YÜZEY ÜRETİMİ

PÜRÜZLÜ YÜZEY ÜRETİMİ KARADENİZ TEKNİK ÜNİVERSİTESİ Bilgisayar Mühendisliği Bölümü Bilgisayar Grafikleri Laboratuarı PÜRÜZLÜ YÜZEY ÜRETİMİ 1. Giriş Pürüzlü yüzey üretiminde, yüzeye kaplanacak dokudan yararlanarak yüzeyin normalini

Detaylı

Pürüzlü Yüzey Üretimi

Pürüzlü Yüzey Üretimi KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR GRAFİKLERİ LABORATUARI Pürüzlü Yüzey Üretimi 1. Giriş Yüzeylerin özel bir doku kaplama yapılarak pürüzlü görünmesini sağlayan 2 temel

Detaylı

DIRECTX 10 ve SHADER PROGRAMLAMA

DIRECTX 10 ve SHADER PROGRAMLAMA KARADENİZ TEKNİK ÜNİVERSİTESİ Bilgisayar Mühendisliği Bölümü Bilgisayar Grafikleri Laboratuarı DIRECTX 10 ve SHADER PROGRAMLAMA 1. Giriş Bilgisayar donanımının en önemli parçalarından biri olan ekran kartı

Detaylı

Görünmeyen Yüzey ve Arkayüz Kaldırma

Görünmeyen Yüzey ve Arkayüz Kaldırma KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR GRAFİKLERİ LABORATUARI Görünmeyen Yüzey ve Arkayüz Kaldırma 1. Giriş Bilgisayar grafiklerinin en önemli problemlerinden biri katı

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Grafik Programlama Bilgisayar kullanılırken monitörlerde iki tür ekran moduyla karşılaşılır. Bu ekran modları Text modu ve Grafik modu dur. Text modunda ekran 25 satır ve 80 sütundan

Detaylı

DirectX ile FPS Oyunu

DirectX ile FPS Oyunu KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR GRAFİKLERİ LABORATUARI DirectX ile FPS Oyunu 1. Giriş Oyunlar, Bilgisayar Grafiklerinin en popüler uygulama alanlarından biridir

Detaylı

Object-oriented Graphics Rendering Engine (OGRE)

Object-oriented Graphics Rendering Engine (OGRE) Object-oriented Graphics Rendering Engine (OGRE) Uluslararası Bilgisayar Enstitüsü Ege Üniversitesi Ahmet Bilgili & Serkan Ergun Ogre Kolay kullanılabilir nesne yönelimli Direct3D/OpenGL bağımsız tasarım.

Detaylı

COM337 Bilgisayar Grafiği. OpenGL ile Grafik Programlama. Dr. Erkan Bostancı

COM337 Bilgisayar Grafiği. OpenGL ile Grafik Programlama. Dr. Erkan Bostancı COM337 Bilgisayar Grafiği OpenGL ile Grafik Programlama Dr. Erkan Bostancı İçerik Işık Resim ve Metin Görüntüleme Texture-mapping Işık (1/3) OpenGL de bir sahne 8 farklı ışık kaynağı kullanabilir. İlk

Detaylı

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. PROGRAMLAMAYA GİRİŞ Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. C de yazılan bir programın çalışması için çoğunlukla aşağıdaki

Detaylı

FONKSİYONLARIN TABLO ŞEKLİNDE HESAPLANMASI

FONKSİYONLARIN TABLO ŞEKLİNDE HESAPLANMASI FONKSİYONLARIN TABLO ŞEKLİNDE HESAPLANMASI Bu kısımda bir fonksiyon değerlerinin tablo şeklinde hesaplanması incelenecektir. İncelenecek fonksiyon y=f(x) şeklinde bir değişenli veya z=f(x,y) şeklinde iki

Detaylı

Bilgisayar Grafikleri

Bilgisayar Grafikleri Bilgisayar Grafikleri Konular: Cismin Tanımlanması Bilindiği gibi iki boyutta noktalar x ve y olmak üzere iki boyutun koordinatları şeklinde ifade edilirler. Üç boyutta da üçüncü boyut olan z ekseni üçücü

Detaylı

BÖLÜM 17 17. ÜÇ BOYUTLU NESNELERİ KAPLAMA VE GÖLGELENDİRME

BÖLÜM 17 17. ÜÇ BOYUTLU NESNELERİ KAPLAMA VE GÖLGELENDİRME BÖLÜM 17 17. ÜÇ BOYUTLU NESNELERİ KAPLAMA VE GÖLGELENDİRME 17.1. HİDE Üç boyutlu katı modelleme ve yüzey modellemede Wireframe yapılarının görünmemesi için çizgileri saklama görevi yapar. HİDE komutuna

Detaylı

Sınav tarihi : Süre : 60 dak.

Sınav tarihi : Süre : 60 dak. Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Final Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 31.05.2016 Süre : 60 dak. 1. Ekranda ne görüntülenir? int i =

Detaylı

Yüzey Doldurma Teknikleri

Yüzey Doldurma Teknikleri KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR GRAFİKLERİ LABORATUARI Yüzey Doldurma Teknikleri 1. Giriş Bu deneyde dolu alan tarama dönüşümünün nasıl yapıldığı anlatılacaktır.

Detaylı

www.elektrikogretmenleri.com

www.elektrikogretmenleri.com FIREWORKS (MENU OLUŞ TURMA) 1 Önce Başlat menüsü Programlar Adobe Web Premium CS3 Adobe Fireworks CS3 kısayol simgesi ile Fireworks programı açılır. 2 Fireworks programı açıldığında Karşımıza gelen Yeni

Detaylı

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ ( BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi 2018-19 Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (e-mail: [email protected] ) 04.10.2018 1 MATLAB da Workspace ve Workspace

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

OPTİK Işık Nedir? Işık Kaynakları Işık Nasıl Yayılır? Tam Gölge - Yarı Gölge güneş tutulması

OPTİK Işık Nedir? Işık Kaynakları Işık Nasıl Yayılır? Tam Gölge - Yarı Gölge güneş tutulması OPTİK Işık Nedir? Işığı yaptığı davranışlarla tanırız. Işık saydam ortamlarda yayılır. Işık foton denilen taneciklerden oluşur. Fotonların belirli bir dalga boyu vardır. Bazı fiziksel olaylarda tanecik,

Detaylı

24 Mart 2011. İlgili Modül/ler : Transfer. İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL

24 Mart 2011. İlgili Modül/ler : Transfer. İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL 24 Mart 2011 İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL İlgili Modül/ler : Transfer ETA:V.8-SQL ve ETA:SQL ile HUGIN POS CİHAZI ARASINDA VERİ TRANSFERİ Süpermarket, benzin istasyonu, market ve çeşitli

Detaylı

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü MATLAB a GİRİŞ Doç. Dr. Mehmet İTİK Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü İçerik: MATLAB nedir? MATLAB arayüzü ve Bileşenleri (Toolbox) Değişkenler, Matris ve Vektörler Aritmetik işlemler

Detaylı

Tanımlar, Geometrik ve Matemetiksel Temeller. Yrd. Doç. Dr. Saygın ABDİKAN Yrd. Doç. Dr. Aycan M. MARANGOZ. JDF329 Fotogrametri I Ders Notu

Tanımlar, Geometrik ve Matemetiksel Temeller. Yrd. Doç. Dr. Saygın ABDİKAN Yrd. Doç. Dr. Aycan M. MARANGOZ. JDF329 Fotogrametri I Ders Notu FOTOGRAMETRİ I Tanımlar, Geometrik ve Matemetiksel Temeller Yrd. Doç. Dr. Saygın ABDİKAN Yrd. Doç. Dr. Aycan M. MARANGOZ JDF329 Fotogrametri I Ders Notu 2015-2016 Öğretim Yılı Güz Dönemi İzdüşüm merkezi(o):

Detaylı

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları Sayfa1 NESNE TABANLI PROGRAMLAMA 25.01.2011 Final Sınavı Cevapları CEVAPLAR 1. A ve C 3x3 boyutlu kare matrislerdir. Bu matrisler için, iken, işlemini gerçekleştirerek C matrisini oluşturan bir C++ programı

Detaylı

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 2

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 2 BTP 207 İNTERNET PROGRAMCILIĞI I Ders 2 HTML 2 Hyper Text Markup Language = Yüksek/İleri Metin İşaretleme Dili Web sayfaları oluşturmak için kullanılan içerik biçimlendirme dilidir. Yüksek/ileri metin

Detaylı

Data Structures Lab 1 2012-Güz

Data Structures Lab 1 2012-Güz Data Structures Lab 1 2012-Güz C# Ortamı Tanıtımı ve Uygulama Geliştirilmesi Visual Studio 2010 Ortamının Temini -NYG'ndan MSDN üyeliği için başvuru dilekçesi alınıp doldurulmalı ve yine NYG'ye teslim

Detaylı

Eln 1001 Bilgisayar Programlama I

Eln 1001 Bilgisayar Programlama I Eln 1001 Bilgisayar Programlama I GiriŞ / ǹk¹Ş Fonksiyonlar¹ Ne ÖĆreneceĆiz? Temel Giriş/Çıkış Yapısı Giriş Fonksiyonları Karakterler için giriş fonksiyonları Scanf fonksiyonu Formatlı giriş Çıkış Fonksiyonları

Detaylı

KARADENİZ TEKNİK ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI YEREL AĞDAKİ KİŞİSEL BİLGİSAYARLARLA PARALEL IŞIN İZLEME

KARADENİZ TEKNİK ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI YEREL AĞDAKİ KİŞİSEL BİLGİSAYARLARLA PARALEL IŞIN İZLEME KARADENİZ TEKNİK ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI YEREL AĞDAKİ KİŞİSEL BİLGİSAYARLARLA PARALEL IŞIN İZLEME Bilgisayar Mühendisi Ömer ÇAKIR Karadeniz Teknik Üniversitesi

Detaylı

Dijital (Sayısal) Fotogrametri

Dijital (Sayısal) Fotogrametri Dijital (Sayısal) Fotogrametri Dijital fotogrametri, cisimlere ait iki boyutlu görüntü ortamından üç boyutlu bilgi sağlayan, sayısal resim veya görüntü ile çalışan fotogrametri bilimidir. Girdi olarak

Detaylı

Fonksiyonlar (Altprogram)

Fonksiyonlar (Altprogram) Fonksiyonlar (Altprogram) C Programlama Dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya gelmesi ile oluşur.

Detaylı

OpenGL Uygulamaları. 1. Giriş. 2. OpenGL. Deney 2

OpenGL Uygulamaları. 1. Giriş. 2. OpenGL. Deney 2 Deney 2 OpenGL Uygulamaları 1. Giriş Günümüzde yazılım ve donanımın gelişmesi ile birlikte bilgisayar grafikleri alanında oldukça önemli gelişmeler kaydedilmektedir. Bu gelişmelere paralel olarak yazılım

Detaylı

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Algoritma ve Programlama: Karar Yapıları ve Döngüler Algoritma ve Programlama: Karar Yapıları ve Döngüler Bir algoritma, herhangi bir programlama dili (C, C++, Pascal, Visual Basic, Java gibi) ile kodlandığında program haline gelir. Algoritmada yer alan

Detaylı

KDV kısım numaraları Pos cihazındaki KDV departman numaralarına göre tanımlandıktan sonra F2-Kaydet butonu ile bu bölüm kayıt edilir.

KDV kısım numaraları Pos cihazındaki KDV departman numaralarına göre tanımlandıktan sonra F2-Kaydet butonu ile bu bölüm kayıt edilir. 18 Kasım 2009 Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL Đlgili Modül/ler : Transfer ETA:V.8-SQL ve ETA:SQL ile ĐNTER-POS CĐHAZI ARASINDA VERĐ TRANSFERĐ Süpermarket, benzin istasyonu shop/market ve çeşitli

Detaylı

GÖRÜNTÜ İŞLEME HAFTA 2 SAYISAL GÖRÜNTÜ TEMELLERİ

GÖRÜNTÜ İŞLEME HAFTA 2 SAYISAL GÖRÜNTÜ TEMELLERİ GÖRÜNTÜ İŞLEME HAFTA 2 SAYISAL GÖRÜNTÜ TEMELLERİ GÖRÜNTÜ ALGILAMA Üç temel zar ile kaplıdır. 1- Dış Zar(kornea ve Sklera) 2- Koroid 3- Retina GÖRÜNTÜ ALGILAMA ---Dış Zar İki kısımdan oluşur. Kornea ve

Detaylı

Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ DÖNEM SONU SINAVI GÜZ 2009-2010 13 Ocak 2010, Sınav Süresi: 120 dakika. İsim

Detaylı

12 TBT / WEB TASARIM ve PROGRAMLAMA ( Not 3 )

12 TBT / WEB TASARIM ve PROGRAMLAMA ( Not 3 ) 12 TBT / WEB TASARIM ve PROGRAMLAMA ( Not 3 ) 25.09.2017 METİN VE GÖRÜNÜM DÜZENLEME ETİKETLERİ : etiketleri dökümana başlık eklemek için kullanılır. etiketinde ki x ifadesi 1 den 6 ya kadar

Detaylı

ÖĞRENME ALANI : FİZİKSEL OLAYLAR ÜNİTE 5 : IŞIK

ÖĞRENME ALANI : FİZİKSEL OLAYLAR ÜNİTE 5 : IŞIK ÖĞRENME ALANI : FİZİKSEL OLAYLAR ÜNİTE 5 : IŞIK C IŞIĞIN KIRILMASI (4 SAAT) 1 Kırılma 2 Kırılma Kanunları 3 Ortamların Yoğunlukları 4 Işık Işınlarının Az Yoğun Ortamdan Çok Yoğun Ortama Geçişi 5 Işık Işınlarının

Detaylı

LIGHTWORKS İLE GÖRSELLEŞTİRME

LIGHTWORKS İLE GÖRSELLEŞTİRME LIGHTWORKS İLE GÖRSELLEŞTİRME GRAPHISOFT ARCHICAD DERS NOTLARI LightWorks (LW), ArchiCAD de model üzerinde ışığın etkisini daha doğru hesaplayarak ArchiCAD in kendi Dahili Motor aracına göre daha fotogerçekçi

Detaylı

Robot İzleme (Robot Tracing)

Robot İzleme (Robot Tracing) SORU : 1 DEĞERİ : 100 PUAN HAZIRLAYAN : Öğr.Gör. Ömer ÇAKIR Robot İzleme (Robot Tracing) Önüne çıkan engelleri aşağıda anlatılan algoritmaya göre aşıp çıkış noktasına ulaşan bir robotun başlangıç noktasından

Detaylı

Ürün Profil ve Yapılandırma Kodu Tanımlama

Ürün Profil ve Yapılandırma Kodu Tanımlama ESNEK YAPILANDIRMA YENİLİKLERİ Amaç ve Fayda Yayın Tarihi Stoğa ait profil tanımının ve yapılandırma kodlarının tek bir ekrandan tanımlanıp ilişkilendirilebilmesi amacı ile geliştirilmiştir. 22/03/2005

Detaylı

Ekran 1 : Font Komutları Dosyası ekranı

Ekran 1 : Font Komutları Dosyası ekranı 27 Ekim 2010 Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL Đlgili Modül/ler : ETASQLFORM DĐZAYNLARDA FARKLI FONT LU YAZI TĐPĐ KULLANIMI ETASQL Doküman Düzenleyicisi olan ETASQLFORM.EXE ile Fatura, Sipariş,

Detaylı

Bölüm 3: Vektörler. Kavrama Soruları. Konu İçeriği. Sunuş. 3-1 Koordinat Sistemleri

Bölüm 3: Vektörler. Kavrama Soruları. Konu İçeriği. Sunuş. 3-1 Koordinat Sistemleri ölüm 3: Vektörler Kavrama Soruları 1- Neden vektörlere ihtiyaç duyarız? - Vektör ve skaler arasındaki fark nedir? 3- Neden vektörel bölme işlemi yapılamaz? 4- π sayısı vektörel mi yoksa skaler bir nicelik

Detaylı

Ege Üniversitesi Elektrik Elektronik Mühendisliği Bölümü Kontrol Sistemleri II Dersi

Ege Üniversitesi Elektrik Elektronik Mühendisliği Bölümü Kontrol Sistemleri II Dersi 1) Giriş Ege Üniversitesi Elektrik Elektronik Mühendisliği Bölümü Kontrol Sistemleri II Dersi Pendulum Deneyi.../../2018 Bu deneyde amaç Linear Quadratic Regulator (LQR) ile döner ters sarkaç (rotary inverted

Detaylı

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir. MATRİS TRANSPOZU: Bir matrisin satırlarını sütun, sütunlarınıda satır yaparak elde edilen matrise transpoz matris denilir. Diğer bir değişle, eğer A matrisi aşağıdaki gibi tanımlandıysa bu matrisin transpoz

Detaylı

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu. Javascript Html sayfalarının içine yazılarak, sayfayı daha etkileşimli hale getirir. click olayları, uyarı mesajları gibi hareketlerle sayfayı daha dinamik hale getirir. Javascript olmadan yazılan html

Detaylı

Dijital (Sayısal) Fotogrametri

Dijital (Sayısal) Fotogrametri Dijital (Sayısal) Fotogrametri Dijital fotogrametri, cisimlere ait iki boyutlu görüntü ortamından üç boyutlu bilgi sağlayan, sayısal resim veya görüntü ile çalışan fotogrametri bilimidir. Girdi olarak

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

BÖLÜM 1: MADDESEL NOKTANIN KİNEMATİĞİ

BÖLÜM 1: MADDESEL NOKTANIN KİNEMATİĞİ BÖLÜM 1: MADDESEL NOKTANIN KİNEMATİĞİ 1.1. Giriş Kinematik, daha öncede vurgulandığı üzere, harekete sebep olan veya hareketin bir sonucu olarak ortaya çıkan kuvvetleri dikkate almadan cisimlerin hareketini

Detaylı

Fen ve Mühendislik Uygulamalarında MATLAB

Fen ve Mühendislik Uygulamalarında MATLAB Fen ve Mühendislik Uygulamalarında MATLAB Dosya Yönetimi Fonksiyon Yapısı Doç. Dr. İrfan KAYMAZ MATLAB Ders Notları DOSYA YÖNETİMİ Şu ana kadar bir programda hesaplanan veya elde edilen veriler RAM de

Detaylı

OPTİK. Işık Nedir? Işık Kaynakları

OPTİK. Işık Nedir? Işık Kaynakları OPTİK Işık Nedir? Işığı yaptığı davranışlarla tanırız. Işık saydam ortamlarda yayılır. Işık foton denilen taneciklerden oluşur. Fotonların belirli bir dalga boyu vardır. Bazı fiziksel olaylarda tanecik,

Detaylı

Tanımlar, Geometrik ve Matemetiksel Temeller. Yrd. Doç. Dr. Saygın ABDİKAN Yrd. Doç. Dr. Aycan M. MARANGOZ. JDF329 Fotogrametri I Ders Notu

Tanımlar, Geometrik ve Matemetiksel Temeller. Yrd. Doç. Dr. Saygın ABDİKAN Yrd. Doç. Dr. Aycan M. MARANGOZ. JDF329 Fotogrametri I Ders Notu FOTOGRAMETRİ I Tanımlar, Geometrik ve Matemetiksel Temeller Yrd. Doç. Dr. Saygın ABDİKAN Yrd. Doç. Dr. Aycan M. MARANGOZ JDF329 Fotogrametri I Ders Notu 2015-2016 Öğretim Yılı Güz Dönemi İçerik Tanımlar

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon

Detaylı

MAYA ile 3D Modelleme

MAYA ile 3D Modelleme KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR GRAFİKLERİ LABORATUARI MAYA ile 3D Modelleme 1. Giriş 3D oyunlar ve animasyonlar Bilgisayar Grafiklerinin günümüzde en yaygın uygulama

Detaylı

Teknoloji Kullanımı. Oyun Motorları

Teknoloji Kullanımı. Oyun Motorları Ders 3 Teknoloji Kullanımı Oyun Motorları Oyun - Donanım Pompası Daha güçlü donanım -> Daha so stike oyun Daha so stike oyun -> Daha güçlü donanım Simülasyon FPS Action-RPG Oyun Motorunun Parçaları Oyun

Detaylı

Görüntü İyileştirme Teknikleri. Hafta-8

Görüntü İyileştirme Teknikleri. Hafta-8 Görüntü İyileştirme Teknikleri Hafta-8 1 Spektral İyileştirme PCA (Principal Component Analysis) Dönüşümü. Türkçesi Ana Bileşenler Dönüşümü Decorrelation Germe Tasseled Cap RGB den IHS ye dönüşüm IHS den

Detaylı

http://www.microsoft.com/visualstudio/eng/downloads

http://www.microsoft.com/visualstudio/eng/downloads Visual Studio 2012'nin kurulumunu, Visual Studio'nun kullanımını ve Windows Store'da basit bir proje hazırlanmasını anlatacağım. Hepsinden önce Visual Studio ortamından biraz bahsedelim. Visual Studio

Detaylı

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

enum bolumler{elektronik, insaat, bilgisayar, makine, gida}; BÖLÜM 12: Giriş C programlama dilinde programcı kendi veri tipini tanımlayabilir. enum Deyimi (Enumeration Constants) Bu tip, değişkenin alabileceği değerlerin belli (sabit) olduğu durumlarda programı

Detaylı

SIMAN KULLANIM KILAVUZU

SIMAN KULLANIM KILAVUZU SIMAN KULLANIM KILAVUZU Önder Öndemir SIMAN Simülasyon programı Model Çatı ve Deneysel Çatı olmak üzere iki kısımdan oluşur. Model çatı genel itibariyle modullerin ve işlem bloklarının yazıldığı kısımdır.

Detaylı

Dijital Kontrol Sistemleri Prof.Dr. Ayhan Özdemir. Dengede bulunan kütle-yay sistemine uygulanan kuvvetin zamana göre değişimi aşağıda verilmiştir.

Dijital Kontrol Sistemleri Prof.Dr. Ayhan Özdemir. Dengede bulunan kütle-yay sistemine uygulanan kuvvetin zamana göre değişimi aşağıda verilmiştir. Dengede bulunan kütle-yay sistemine uygulanan kuvvetin zamana göre değişimi aşağıda verilmiştir. u(t):kuvvet u(t) F yay F sönm Yay k:yay sabiti m kütle Sönümlirici b:ösnümlirme sabiti y(t):konum 1 1 3

Detaylı

BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI. Kafkas Üniversitesi Mühendislik Fakültesi

BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI. Kafkas Üniversitesi Mühendislik Fakültesi BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi Bu hafta? Dosya Yönetimi Veri Giriş-Çıkış İşlemleri fopen fclose fprintf fscanf Dosya Yönetimi Şu ana kadar bir

Detaylı

NACA PROFİL AİLE GEOMETRİSİ HESAP PROGRAMI KULLANMA KILAVUZU

NACA PROFİL AİLE GEOMETRİSİ HESAP PROGRAMI KULLANMA KILAVUZU NACA PROFİL AİLE GEOMETRİSİ HESAP PROGRAMI KULLANMA KILAVUZU NACA kesit programı çizim programı Visual Basic V5.0 dilinde yazılmıştır. Programın amacı, kullanıcının istediği NACA kesitinin çizimini çok

Detaylı

Koordinat Dönüşümleri (V )

Koordinat Dönüşümleri (V ) KOORDİNAT DÖNÜŞÜMLERİ ve FARKLI KOORDİNAT SİSTEMLERİ İLE ÇALIŞMA FieldGenius ile birden fazla koordinat sistemi arasında geçiş yaparak çalışmak mümkündür. Yaygın olarak kullanılan masaüstü harita ve CAD

Detaylı

4. Bölüm Programlamaya Giriş

4. Bölüm Programlamaya Giriş 4. Bölüm Programlamaya Giriş Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 4.1. C# ile Program Geliştirme Net Framework, Microsoft firması tarafından açık internet protokolleri ve standartları

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Kodlarına Yorum Satırı Eklemek Java Paket Kavramı Java Kütüphane Kavramı Konsoldan Veri Çıkışı ve JOPtionPane Kütüphanesi JOptionPane Kütüphanesi Kullanarak

Detaylı

Görüntü İşleme. Dijital Görüntü Tanımları. Dijital görüntü ise sayısal değerlerden oluşur.

Görüntü İşleme. Dijital Görüntü Tanımları. Dijital görüntü ise sayısal değerlerden oluşur. Görüntü İşleme Görüntü işleme, dijital bir resim haline getirilmiş olan gerçek yaşamdaki görüntülerin bir girdi resim olarak işlenerek, o resmin özelliklerinin ve görüntüsünün değiştirilmesidir. Resimler

Detaylı

Viyana İmam Hatip Lisesi Öğrenci Seçme Sınavı - Matematik

Viyana İmam Hatip Lisesi Öğrenci Seçme Sınavı - Matematik Viyana İmam Hatip Lisesi Öğrenci Seçme Sınavı - Matematik 1. Ünite: Geometriden Olasılığa 1. Bölüm: Yansıyan ve Dönen Şekiller, Fraktallar Yansıma, Öteleme, Dönme Fraktallar 2. Bölüm: Üslü Sayılar Tam

Detaylı

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik. ASP.NET DERS 1 Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik. Gelen ekranda Visual C# seçildikten

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 [email protected] www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 [email protected] www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)

Detaylı

Docmage.exe dosyasını çalıştırılır ve karşımıza Şekil-1 deki ekran gelecektir.

Docmage.exe dosyasını çalıştırılır ve karşımıza Şekil-1 deki ekran gelecektir. 22 Haziran 2007 Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL Đlgili Modül/ler : Etiket Yazdırma ETĐKET YAZDIRMA MODÜLÜNDE DOCMAGE DĐZAYNI (BARKOD) Doküman sihirbazı DocMage den görsel açıdan zengin form

Detaylı

CCL-S / CCT / CCL-P ÖZEL TASARIM RGB LCD DISPLAY KARTI PROGRAMLAMA VE MONTAJ KILAVUZU SÜRÜM: 1.2

CCL-S / CCT / CCL-P ÖZEL TASARIM RGB LCD DISPLAY KARTI PROGRAMLAMA VE MONTAJ KILAVUZU SÜRÜM: 1.2 -S / CCT / -P ÖZEL TASARIM RGB LCD DISPLAY KARTI PROGRAMLAMA VE MONTAJ KILAVUZU SÜRÜM: 1.2 AYBEY ELEKTRONİK SAN. TİC. A.Ş. Sanayi Mah. Hızır Reis Cad. No:26 34906 Pendik İstanbul / Türkiye Tel: (90) (216)

Detaylı

Bilgisayar Grafikleri

Bilgisayar Grafikleri Bilgisayar Grafikleri Kaynak Kitaplar : Mathematical Elements for Computer Graphics David F.Rogers, J.Alan Adams McGraw-Hill Publishing Company Procedural Elements for Computer Graphics David F.Rogers

Detaylı

MAK 210 SAYISAL ANALİZ

MAK 210 SAYISAL ANALİZ MAK 210 SAYISAL ANALİZ BÖLÜM 5- SONLU FARKLAR VE İNTERPOLASYON TEKNİKLERİ Doç. Dr. Ali Rıza YILDIZ MAK 210 - Sayısal Analiz 1 İNTERPOLASYON Tablo halinde verilen hassas sayısal değerler veya ayrık noktalardan

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini

Detaylı

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon

Detaylı

Dijital (Sayısal) Fotogrametri

Dijital (Sayısal) Fotogrametri Dijital (Sayısal) Fotogrametri Dijital fotogrametri, cisimlere ait iki boyutlu görüntü ortamından üç boyutlu bilgi sağlayan, sayısal resim veya görüntü ile çalışan fotogrametri bilimidir. Girdi olarak

Detaylı

13 Aralık 2007. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

13 Aralık 2007. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz 13 Aralık 2007 Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL Đlgili Modül/ler : Raporlar KULLANICI TANIMLI RAPORLAR Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz Kendi isteklerinize özel rapor tasarımları

Detaylı

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders02/ 1 Değişkenler, Sabitler ve Operatörler Değişkenler (variables) bellekte bilginin saklandığı gözlere verilen simgesel isimlerdir. Sabitler (constants)

Detaylı

3D Bilgisayar Grafikleri

3D Bilgisayar Grafikleri 3D Bilgisayar Grafikleri "3D" (Three Dimension = Üç Boyut) terimi, birçoğumuza yabancı gelmemektedir. 3D bilgisayar grafikleriyle yaratılmış video, her gün TV programlarında, reklamlarda ve filmlerde görülebilir.

Detaylı

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) BBS-515 Nesneye Yönelik Programlama Ders #9 (16 Aralık 2009) Geçen ders: Java Applet lerde bileşen yerleştirme türleri ( applet layouts

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 2 C# Programlama Dili Örnekler 2 Örnek1:

Detaylı

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü ra Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :13.04.2017 60 dak. Dikkat!!! Soru kitapçığında ve cevap

Detaylı

3. Metin ve Görünüm Etiketleri

3. Metin ve Görünüm Etiketleri 3. Metin ve Görünüm Etiketleri Bu bölümü bitirdiğinizde, Metin biçimlendirme etiketlerinin neler olduğunu ve nasıl kullanıldığını, Yatay çizginin nasıl çizildiğini ve özelliklerinin neler olduğunu, Satır

Detaylı

SYC / SYT / SYP ÖZEL TASARIM RGB LCD DISPLAY KARTI PROGRAMLAMA VE MONTAJ KILAVUZU SÜRÜM: 1.1

SYC / SYT / SYP ÖZEL TASARIM RGB LCD DISPLAY KARTI PROGRAMLAMA VE MONTAJ KILAVUZU SÜRÜM: 1.1 SYC / SYT / SYP ÖZEL TASARIM RGB LCD DISPLAY KARTI PROGRAMLAMA VE MONTAJ KILAVUZU SÜRÜM: 1.1 AYBEY ELEKTRONİK SAN. TİC. A.Ş. Sanayi Mah. Hızır Reis Cad. No:26 34906 Pendik İstanbul / Türkiye Tel: (90)

Detaylı

DESTEK DOKÜMANI. Ürün : UNITY2 / TIGER2 / GO Bölüm : Finans BANKA VE KASA KUR FARKI HESAPLAMASI

DESTEK DOKÜMANI. Ürün : UNITY2 / TIGER2 / GO Bölüm : Finans BANKA VE KASA KUR FARKI HESAPLAMASI BANKA VE KASA KUR FARKI HESAPLAMASI Kasa Kartı Öndeğer Döviz Türü Özelliği: 1.80.00.00 versiyonuyla birlikte Dövizli kasa takibinin sağlanmasına yönelik olarak kasa kartlarına Döviz türü, Kur türü ve Hareketlerde

Detaylı

Bölüm 7 Renkli Görüntü İşleme

Bölüm 7 Renkli Görüntü İşleme BLM429 Görüntü İşlemeye Giriş Bölüm 7 Renkli Görüntü İşleme Dr. Öğr. Üyesi Caner ÖZCAN Genç sanatçının, rengin sadece tanımlayıcı değil aynı zamanda kişisel ifade anlamına geldiğini anlaması renge dokunmasından

Detaylı

Ege Üniversitesi Elektrik Elektronik Mühendisliği Bölümü Kontrol Sistemleri II Dersi

Ege Üniversitesi Elektrik Elektronik Mühendisliği Bölümü Kontrol Sistemleri II Dersi 1) Giriş Ege Üniversitesi Elektrik Elektronik Mühendisliği Bölümü Kontrol Sistemleri II Dersi Pendulum Deneyi.../../2015 Bu deneyde amaç Linear Quadratic Regulator (LQR) ile döner ters sarkaç (rotary inverted

Detaylı

Çözüm :RadioButtonList1 kontrolunuekliyoruz.enableautopostback iaktifleştiriyoruz..

Çözüm :RadioButtonList1 kontrolunuekliyoruz.enableautopostback iaktifleştiriyoruz.. 3 Kasım 2011 / Perşembe Örnek : Button a tıklamadan seçim yapınca işlem yapılsın. Çözüm :RadioButtonList1 kontrolunuekliyoruz.enableautopostback iaktifleştiriyoruz.. RadioButtonList1 e tek tıklayıp sağdan

Detaylı

VERİ TABANI ve YÖNETİMİ

VERİ TABANI ve YÖNETİMİ VERİ TABANI ve YÖNETİMİ Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü 2 BÖLÜM -10- FONKSİYONLAR 3 Giriş Geçen haftaki derslerimizde Görünümleri (View) ve Stored Procedure (SP) leri öğrendik. Bu hafta

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ [email protected] YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Dosya İşlemleri (Rastgele Erişim)

Detaylı

7- Turbo Pascal Programlamada Alt Programlar (Procedure)

7- Turbo Pascal Programlamada Alt Programlar (Procedure) 7- Turbo Pascal Programlamada Alt Programlar (Procedure) Alt programların ana programda yapacağımız ek işlevleri üstlendiğinden daha önceki bölümde bahsetmiştik. Alt programlar genelde ana program bloğu

Detaylı

Grafik Komutları. Grafik Türleri plot: çizgisel grafikler bar: sütun bar şeklindeki grafikler stem: sütun çizgisel grafikler pie: pasta grafikleri

Grafik Komutları. Grafik Türleri plot: çizgisel grafikler bar: sütun bar şeklindeki grafikler stem: sütun çizgisel grafikler pie: pasta grafikleri Matlab Grafikler Grafik Türleri Grafik Komutları Grafik Türleri plot: çizgisel grafikler bar: sütun bar şeklindeki grafikler stem: sütun çizgisel grafikler pie: pasta grafikleri Yardımcı Komutlar hold

Detaylı

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 11. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Fonksiyonlar Yük. Müh. Köksal Gündoğdu 2 C++ Hazır Fonksiyonlar Yük. Müh. Köksal Gündoğdu 3 C++ Hazır Fonksiyonlar 1. Matematiksel

Detaylı

C# Form Uygulamaları. Nesne Tabanlı Programlama I (C#) Ders Notu. S.Ü.Akören A.R.E. Meslek Yüksekokulu C.ÖZCAN- F.SARAY

C# Form Uygulamaları. Nesne Tabanlı Programlama I (C#) Ders Notu. S.Ü.Akören A.R.E. Meslek Yüksekokulu C.ÖZCAN- F.SARAY Nesne Tabanlı Programlama I (C#) Ders Notu S.Ü.Akören A.R.E. Meslek Yüksekokulu C.ÖZCAN- F.SARAY C# Form Uygulamaları C# da yeni bir uygulama açmak için File>New>Project seçilir. Daha sonra açılan pencerede

Detaylı

Her Select Case bloğu, mutlaka End Select ile bitmek zorundadır.

Her Select Case bloğu, mutlaka End Select ile bitmek zorundadır. Select Case Komutu: VB de karar sürecinde kullanılan komutlardandır. Bu yapı ile sadece bir değişkenin durum kontrolü yapılır. Kontrolü yapılacak değişkenin genel olarak alabileceği değerler belirli ise

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

CAEeda ÇÖZÜMÜ YAPILMIŞ NACA 0012 KANADI İÇİN 2B ÇİZİM EĞİTİM NOTU. EDA Tasarım Analiz Mühendislik

CAEeda ÇÖZÜMÜ YAPILMIŞ NACA 0012 KANADI İÇİN 2B ÇİZİM EĞİTİM NOTU. EDA Tasarım Analiz Mühendislik CAEeda TM ÇÖZÜMÜ YAPILMIŞ NACA 0012 KANADI İÇİN 2B ÇİZİM EĞİTİM NOTU EDA Tasarım Analiz Mühendislik 1. Kapsam Çözümü yapılmış *.pos.edf dosyasında bulunan çözümağını al. Sonlu eleman modeli üzerinde bulunan

Detaylı

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0 Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden

Detaylı

BCA611 Video Oyunları için 3B Grafik. Zümra Kavafoğlu

BCA611 Video Oyunları için 3B Grafik. Zümra Kavafoğlu BCA611 Video Oyunları için 3B Grafik Ders 1 Zümra Kavafoğlu Hakkımda 2007-2010 Yüksek Lisans : Hesaplamalı Geometri, 3B Modelleme ve Görselleştirme Algoritmaları Proje: Madencilik Otomasyon Tasarımı ve

Detaylı

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ GİRİŞ AKIŞ ŞEMASI Bir önceki ünitede algoritma, bilgisayarda herhangi bir işlem gerçekleştirmeden ya da program yazmaya başlamadan önce gerçekleştirilmesi düşünülen işlemlerin belirli bir mantık ve plan

Detaylı

Dinamik Kodlama. [X] Fusion@6. [X] Yeni Fonksiyon

Dinamik Kodlama. [X] Fusion@6. [X] Yeni Fonksiyon Dinamik Kodlama Ürün Grubu Kategori Versiyon Önkoşulu [X] Fusion@6 [X] Yeni Fonksiyon @6 Uygulama @6 Serisi ürünlerde, kullanıcı arabirimlerinin her yerine eklenen dinamik kodlama özelliği ile, programın

Detaylı