OpenGL ES mobil cihazlarda grafik işlemlerini yapmayı sağlayan ve grafik kartı üzerinde çalışan grafik programlama dilidir. Khronos Konsorsiyumu tarafından geliştirilmektedir. OpenGL ES ortamında 2 ve 3 boyutlu çizimler yapılabilmektedir. Bu yazının yayın tarihine kadar 3 versiyon yayınlanmıştır. Aşağıdaki listede tüm OpenGL ES versiyonlarının komutlarına yer verilmiştir.

Android işletim sisteminde dönem dönem güncellemeler yapılmakta ve yeni versiyonlar çıkartılmaktadır. Ürünlerimizin Android API uyumluluk kontrolünün sağlanabilmesi için, Android API listesinin takip edilmesi ve güncellenmesi gerekmektedir. Aşağıda listenin güncel hali yer almaktadır.

 

Tüm yazılım çalışmalarında aşağıdaki Android API Level listesinin baz alınması gerekmektedir.

 
         

Platform Version API Level Version Code Release Date
Android 10.0 29 Q 03.09.2019
Android 9.0 28 Pie 06.08.2018
Android 8.1 27 Oreo 05.12.2017
Android 8.0 26 Oreo 21.08.2017
Android 7.1 25 Nougat 04.10.2016
Android 7.0 24 Nougat 22.08.2016
Android 6.0 23 Marshmallow 05.10.2015
Android 5.1 22 Lollipop 09.03.2015
Android 5.0 21 Lollipop 12.11.2014
Android 4.4W 20 Kitkat 25.06.2014
Android 4.4 19 Kitkat 31.10.2013
Android 4.3 18 Jelly Bean MR2 24.07.2013
Android 4.2 17 Jelly Bean MR1 13.11.2012
Android 4.1 16 Jelly Bean 09.07.2012
Android 4.0.3 15 Ice Cream Sandwich MR1 16.12.2011
Android 4.0 14 Ice Cream Sandwich 19.10.2011
Android 3.2 13 Honeycomb MR2 15.07.2011
Android 3.1 12  Honeycomb MR1 10.05.2011
Android 3.0 11 Honeycomb 22.02.2011
Android 2.3.3 10 Gingerbread MR1 09.02.2011
Android 2.3 9 Gingerbread 06.12.2010
Android 2.3 8 Froyo 20.05.2010
Android 2.1 7 Eclair MR1 12.01.2010
Android 2.0.1 6 Eclair 0 1 03.12.2009
Android 2.0 5 Eclair 26.10.2009
Android 1.6 4 Donut 15.09.2009
Android 1.5 3 Cupcake 30.04.2009
Android 1.1 2 Base 1 1 09.02.2009
Android 1.0 1 Base 23.09.2008



       
    
       
          
     
         
   
         
         
        
  

 

- Tablonun son güncelleme tarihi 19.01.2018'dir

- Tablonun xls formatındaki daha detaylı versiyonu Sistem sitesinin belge arşivinde yer almaktadır.

Firmamız oyun yazılımları üretmektedir. Bir yazılım firması olarak temel ürünümüz bilgisayar işletim sistemlerinde çalışan dijital dosyalardır(file). Ürettiğimiz dosyalar aynı zamanda kendi içerilerinde bir çok farklı dijital dosya ve klasör(directory) de içermektedir. Bilgisayar dosyaları ve klasörleri ile çalışmamız ve bunların farklı işletim sistemlerinde farklı şekillerde işlenmesi sebebiyle, dosya ve klasörlerin isimlendirilme şekli önem arz etmektedir. Yanlış isimlendirmeler ürünlerin çalışmasının durmasına dahi yol açabilmektedir. Doğru isimlendirmenin ürünlerin çalışmasında kritik bir öneme sahip olmasından dolayı, çalışmalarımızda kullanılan ve üretilen tüm dosya ve klasörlerin isimlendirilmesinde aşağıda yer verilen hususlara dikkat edilmesi gerekmektedir.

OpenGL son derece hızlı çalışması nedeniyle oyun yazılımlarında render motoru olarak kullanılmaktadır. Tüm render motorları çeşitli ışık ve aydınlatma sistemlerine sahiptir ve ışıklar render motorlarının çalışma hızını etkileyen en önemli öğelerden birisidir. OpenGL'de ışıklar çeşitli özelliklere sahiptir ve bu özelliklere göre sınıflandırılır.

 

1. IŞIK TÜRLERİ

OpenGL'de temel olarak 4 tip ışık bulunur: Ambient, directional, point, spot.

Ambient light: Genel ortam aydınlatması için kullanılır. Işığın belirli bir kaynak noktası ve belirli bir açısı yoktur. Sahnedeki tüm objeler eşit şekilde aydınlanır. Sahnedeki objeleri görünür hale getirmek için her sahnede az veya çok kullanılır.

Directional light: Belirli bir yönden belirli bir yöne doğru aydınlatmadır. Tek bir başlangıç noktası yoktur. Dünyamıza vuran güneş ışığı gibi bir yönden bir yöne aydınlatma yapar.

Point light: Belirli bir ışık kaynağından çıkıp 360 yöne doğru aydınlatma yapan ışık türüdür. Yaygın olarak kullanılan ışık türlerinden birisidir. 3ds max'de karşılığı "omni"dir.

Spot light: Belirli bir noktadan çıkıp belirli bir noktayı aydınlatan ışık türüdür.

 

OpenGL Işık Türleri

 

IŞIK TÜRLERİNİN OBJELERE GELİŞ AÇISI

Ambient ışık genel aydınlatma olduğu için belirli bir açısı yoktur. Point light'ın objelere geliş açısı ise, ışık kaynağının bulunduğu noktanın objeye konumuna göre oluşur. Directional light ve spot light türlerinde ise, ışık için bir açı tanımlanır. Işıklar çalıştırıldığı zaman objeleri aydınlatmaya başlar.

 

 

 

2. IŞIĞIN OBJELER ÜZERİNDEKİ AYDINLATMA ETKİSİ

OpenGL ışık türlerinin çeşitli şekillerde sınıflandırıldığı yazının başında belirtilmiş idi. Bu sınıflandırmaların en önemlilerinden birisi ışığın nesne üzerinde yarattığı aydınlatma ve yansıma etkisidir. OpenGL ışıkları yarattıkları aydınlatma etkisine göre 3'e ayrılır: Ambient light, diffuse light, specular light.

Ambient light: Obje her yönden eşit sekilde aydınlanır ve bu ışık her yöne doğru yansır. Objenin genel olarak görünür hale gelmesini sağlar.

Diffuse light: Işığın genel olarak aydınlattığı yüzey objenin diğer kısımlarına göre daha çok aydınlanır. Buraya vuran ışık ise objenin aydınlanan tarafına doğru her yönde yansıma yapar. Objeüzerinde  3 boyutlu derinlik görünümü yaratır.

Specular light: Işığın obje üzerinde direk vurduğu noktadır. Işık bu noktadan bakış açısına (kameraya) doğru yansır. Obje üzerinde ışığın en çok aydınlattığı bölümdür. Objeye parlaklık verir. Objeye metal/cam yüzey görünümü sağlar.

 

 

Farklı ışık türleri sahnede objelerin değişik şekillrde aydınlanmasını ve görünmesini sağlar. Aşağıdaki resimlerde farklı ışıklar altında objelerin nasıl göründüğü görülebilir.

 

 

OpenGL ışıklarının burada anlatılan haricinde çeşitli şekillerde sınıflandırılan başka çeşitli özellikleri de bulunmaktadır. Işığın rengi, şiddeti, parlaklığı bunlara örnek olarak verilebilir.

Bilindiği üzere yazılımlarımızın kod çalışmaları esnasında birden çok kişi görev almakta ve aynı kodlar üzerinde çalışma yapmaktadır. Tüm çalışanlarımızın kod yapısını rahatça anlayabilmesi için yazılım kodlarının herkesin kullandığı ortak bir düzen içerisinde yazılması önem arz etmektedir. Yazılımlarımızda ortak olarak uyulması gereken kod yazım kurallarına aşağıda yer verilmiştir. Tüm yazılımcılarımızın kodlarını yazarken aşağıda yer verilen yapıyı takip etmesi gerekmektedir.