WebGL Nedir? (Three.js ile WebGL – 1)

WebGL - Html5 logo

Merhaba Arkadaşlar,

Uzun bir süredir 3d programlamaya merak duymaktaydım. Ancak bu merakım hep uzaktan hayranlık duyma şeklindeydi. Bunun ile alakalı olarak bir dönem XNA ile programlamayı düşünsemde, yanına hiç bir şekilde yanaşma imkanım olmadı.

Bu süre zarfında web tabanlı 3d programlamada da gelişmeler oldu. Özellikle Unity grafik motorunun şu an en yaygın kullanıma sahip ve en kaliteli web grafik motoru olduğunu düşünüyorum.

WebGL'ye gelecek olursak eğer,

WebGL: Tarayıcıya hiç bir eklenti kurmadan, 3d çizimlerin, tarayıcı içerisinde oluşturulmasını sağlayan, OpenGL temelli bir programlama arayüzüdür. Html5'in en önemli getirilerinden biridir.

WebGL'in geliştirilmesi, 100'dan fazla teknoloji şirketinin bir araya gelmesiyle (Intel,Amd,Nvidia,Apple,Google gibi üyeler bulunmaktadır), oluşturulmuş, kar amacı gütmeyen bir kuruluş olan, Khrono Group tarafından sürdürülmektedir.

WebGL sertifikasyonu 2011 Mart'ında tamamlanmıştır. Bu tarihten sonra, tarayıcılar tarafından yavaş yavaş desteklenmeye başlamıştır. Tarayıcıların destekleme bilgileri ise aşağıdaki gibidir; 

Tarayıcı Destek Durumu

  • Google Chrome 9 ve üzeri,
  • Mozilla Firefox 4 ve üzeri,
  • Apple Safari 5.1 ve üzeri,
  • Opera 11 ve üzeri,
  • Internet Explorer 11 ve üzeri

Not : Bu noktada listelenenler, masaüstü tarayıcılardır. Mobil tarayıcılarda geçiş ise halen daha sürmektedir.

WebGL'yi tanımlarken, OpenGL tabanlı olduğundan bahsetmiştik.

OpenGL oyun programlamada, DirectX'in en büyük rakibidir. Özellikle Windows dışı platformlarda, OpenGL rakipsizdir. 

OpenGL büyük bir api olduğundan dolayı, mobil cihazlara kırpılmış bir sürüm olan OpenGL Es, sunulmuştur. OpenGL Es özellikle Android ile inanılmaz yaygınlaşmış ve Android 4.3 ile OpenGL Es'in 3.0 sürümüne destek verilmiştir.

Bu fikirden yola çıkarak WebGL 1.0, OpenGL Es 2.0'ın altyapısını kullanmaktadır. Böylelikle OpenGL Es'teki standartlar WebGL'e geçmiş olmaktadır. WebGL 2.0'ın çalışmaları başlamış olup, OpenGL Es 3.0'ın altyapısına sahip olması planmaktadır.

Avantajları

  • Tarayıcıya eklenti kurma zorunluluğu getirmemesi,
  • Tüm tarayıcılarda çalışıyor olması (belirli sürümlerden itibaren),
  • JavaScript tabanlı olduğundan dolayı, site ile etkileşim içerisinde olabilmesi

Dezavantajları

  • Tarayıcılarda çalışma noktasında, genellikle güncel tarayıcıların zorunluluk olması (özellikle IE),
  • Render işlemlerinde (sayfadaki görsellerin oluşturulması), kod derlenmemiş olduğundan, yerel uygulamalara göre, çok daha yavaş kalması,
  • Halen daha tarayıcılar tarafından tam desteklenmemesi (bazı tarayıcılar da bazı işlevler çalışmıyor),
  • Flash tarzı bir editor desteğine sahip olmaması

Görüleceği üzere, henüz daha katedilmesi gereken yollar var. Ancak ileriye dönük çok heyecan verici bir dünyadan bahsediyoruz. 

En güzel WebGL örnekleri

Gerçekten oldukça etkileyici öyle değil mi?

Sonuç olarak WebGL hakkında kısaca teorik bilgiler vermiş olduk.

Sonraki dersimizde, temel 3d terimlerine değiniyor olacağız.

 

Hepinize kolaylıklar diliyorum.