İçeriğe atla

OpenSceneGraph

OpenSceneGraph
Geliştirici(ler)Robert Osfield
Güncel sürüm3.6.5 / 2020/01/31
İşletim sistemiWindows, Mac Os X, GNU/Linux, IRIX, Solaris, HP-Ux, AIX, FreeBSD
TürGrafik Kütüphanesi
LisansOSGPL (LGPL temelli)
Resmî sitesihttp://www.openscenegraph.org/
Kod deposu Bunu Vikiveri'de düzenleyin

OpenSceneGraph açık kaynaklı, geçişli platformlarda uçuş simülasyonu, oyun, sanal gerçeklikler ve bilimsel sanallaştırmalar gibi yüksek performansta grafik uygulamaları geliştirebilmek için kullanılan grafik araçlarıdır. SceneGraph kaynağının temelini, OpenGL’nin üzerinde bulunarak geliştiriciyi düşük seviyeli grafik çağırımlarını uygulama ve uyumlaştırma gibi işlemlerden kurtaran nesneye yönelik bir framework ile desteklemektedir. Ayrıca grafik uygulamasında hızlı geliştirme için birçok ek özellikleri (utilities) de desteklemektedir.

Geçmiş

Don Burns 1997 yılında Silicon Graphics Inc. (SGI) şirketine yazılım danışmanı olarak işe girdi. Boş zamanlarında da “Hang Gliding” konusunda çalışmalar yapıyordu. Bilgisayar grafiklerine ve “Hang Gliding” üzerine olan ikili ilgisi, yüksek grafik renderer cihazlarına erişebilir olması yoluyla birlikte, ister istemez scene graph çalıştırıcılarını (SGI mülkiyetindeki) kullanan SGI Onyx sistemlerinde çalışabilen “Hang Gliding” simülatörünü geliştirmesiyle sonuçlandı. Don SG'deki gibi basitleştirilmiş Performer SG yazmaya başladı. Amacı SceneGraph'ın basit ve kolay kullanılabilir olmasıydı. Nihayet, SGI Linux sistem üzerine Performer yükledi ve Don'ın SG scene graph'ına ihtiyacı kalmadı.

Robert Osfield ve Don 1990 lardan önce “Hang Gliding” heveslileri mail listesinden tanışmıştı. Robert Hang Glider üreticileri için tasarım danışmanı olarak çalışıyordu ve modelleme uyumluluğu üzerine deneyimi vardı. Don'ın Performer kullanımından mutlu olmasıyla, SG üzerindeki ilgisi kayboldu ve proje liderliğini Robert'a bırakarak projeyi devir etti.

Robert Osfield ile birlikte SG üzerine çalışmalara katılan yeni geliştiricilerle birlikte SG projesinin adını OpenSceneGraph şeklinde değiştirerek geniş kullanım alanları sağlamaya başladı. SG projesi Don tarafından Robert'a bırakıldığında sadece 8 geliştiricisi olan OSG neredeyse 2000 kullanıcının geliştirdiği bir proje haline gelmiştir.

Araçlar

OSG çalışma anında (Runtime) dinamik olarak yüklenen kütüphaneler (ya da paylaşımlı nesneler) ve çalıştırılabilir (executables) dosyalar kümesi gibi bulunmaktadır. Bu kütüphaneler beş farklı kaynak olarak bölünür ;

  1. Çekirdek OSG (Core OSG) : Temel scene graph ve rendering işlemlerini desteklemekte ve aynı zamanda 3 Boyutlu uygulamalarda gerekli olan basit gereksinimleri de içeren ek işlevselliklere sahiptir.
  2. OSG Düğüm Araçları (OSG NodeKits) : Yüksek seviyeli düğüm tipleri ve özel efektleri desteklemek için Çekirdek OSG (Core OSG) scene graph düğümünden türetilmiştir.
  3. OSG Eklentileri (OSG Plugins) : 2 Boyutlu resimleri ve 3 Boyutlu modelleri okuyup yazabilmek için geliştirilmiş bir kütüphanedir.
  4. Birlikte Çalışabilirlik (InterOperability)  : OSG'nin Phyton ve Lua gibi betik (scripting) dillerinde olduğu gibi farklı ortamlarla kolayca bütünleştirilebilmesini sağlayan bir kütüphanedir.
  5. Uygulamalar ve Örnekler (Application & Examples) : Uygulama ve örneklerin yaygın koleksiyonu kullanışlı işlevleri sağlar ve doğru OSG kullanımını gösterir. OSG dağıtımları derleme ve genel OSG geliştirme işlemlerinde kolaylık sağlayan beş kullanışlı OSG yardımcı programı içermektedir.
  • osgarchive : Bu uygulama dosyalarınızı OSG .osga arşiv dosyasına eklemenize izin verir. Ayrıca bu uygulama arşiv dosyalarınızı çıkarmanızı (extact) ve listelemenizi sağlar.
  • osgconv  : Bu uygulama bir dosya formatını başka bir formata dönüştürür. Bu özellikle herhangi bir formattaki dosyanızı optimize edilmiş .ive dosyasına çevirmek için kullanışlıdır.
  • osgdem  : Bu uygulama aracı yüksekti ve resim verilerini sayfalı yüzey veritabanına (paged terrain database) dönüştürmede kullanılır.
  • osgversion : Var olan OSG'nin versiyon numarasını std::cout 'a basar.
  • ogviewer  : Bu uygulama OSG'nin esnek ve güçlü bir model gösterimcisidir.

Özellikleri

OSG'nin asıl amacı scene graph teknolojisinin yararlarını ticari ve ticari olmayan kullanıcı gruplarının her ikisine birden ücretsiz elde edebilmelerini sağlamaktadır. Tamamiyle Standart C++ ve OpenGL üzerine yazılmıştır, STL ve DesignPattern kütüphanelerini kullanabilmektedir ve açık kaynak gelişim modelinin gücünü son kullanıcıların ihtiyaçları üzerine odaklanan ve ücretsiz olarak kalıtımını sürdüren bir geliştirme kütüphanesini desteklemektedir. OSG'nin özellikleri; performans, üretkenlik, veritabanı yükleyicileri, düğüm araçları ve taşınabilirlik başlıkları altında özetlenecektir. Bunlar ;

A - Performans

Çekirdek scene graph parçaları olan frustum culling, occlusion culling, small feature culling, Level Of Detail (LOD) nodes, state sorting, vertex arrays, vertex buffer objects, OpenGL Shader Language ve display lists gösterimlerini destekler. Bunların hepsi birlikte OSG'yi mevcut grafik araçları arasında çok yüksek performanslı yapar.

Ayrıca OSG scene graph'ın üzerinde bulunan Continuous Level of Detail (CLOD) ağlarının (meshes) uygulanmasında olduğu gibi çizim işlemlerinin kolay uyarlanabilmesini de destekler. (bakınız VTP ve Delta3D).

B - Üretkenlik

Çekirdek scene graph OpenGL'in en son eklentileri ve birçok fonksiyonunu sarmalamaktadır, seçme (culling) ve sıralama (sorting) gibi rendering optimizasyonlarını ve yüksek performansta grafik uygulamalarını çok hızlı olarak geliştirilmesini olanaklı hale getiren tüm eklenebilir kütüphane kümelerini desteklemektedir. Uygulama geliştiricisi içeriği toplama ve bu içeriği kontrol etmede düşük seviyeli kodlamadan daha fazla bağımsızdır. Bu da kullanıcılara OSG'yi kendi projelerine eklenmede ve uyumlaştırmada kolaylık sağlar.

C - Veritabanı Yükleyicileri

Veritabanı okumak ve yazmak için veritabanı kütüphanesi (osgDB) geniş çeşitlilikteki veritabanı formatlarını genişletilebilir dinamik eklenti mekanizmaları yoluyla ekleyebilmeyi destekler – güncel OSG dağıtımları çeşitli 3 Boyutlu veritabanı ve resim formatlarını yükleyebilmek için 55 farklı eklentiye sahiptir. 3 Boyutlu veritabanı yükleyicileri ; COLLADA, LightWave (.lwo), Alias Wavefront (.obj), OpenFlight (.flt), TerraPage (.txp) including multi-threaded paging support, Carbon Graphics GEO (.geo), 3D Studio MAX (.3ds), Performer (.pfb), AutoCAd (.dxf), Quake Character Models (.md2). Direct X (.x), and Inventor Ascii 2.0 (.iv)/ VRML 1.0 (.wrl), Designer Workshop (.dw) and AC3D (.ac) and the native .osg ASCII formatlarıdır. Resim yükleyicileri ise ; .rgb, .gif, .jpg, .png, .tiff, .pic, .bmp, .dds (include compressed mip mapped imagery), .tga and quicktime (under OSX). Bütün bölümlerde yüksek kalite, keskinlik yumuşatıcı (anti-aliasing) fontları bağımsız eklentiler yoluyla yüklenebilmektedir ve resim tabanlı fontlar da .txf eklentisi yoluyla yüklenebilmektedir. Ayrıca kullanıcılar eş projeler (VTP) yoluyla büyük ölçekli uzamsal (geospatial) yüzey (terrain) veritabanlarını oluşturabilirler ve OSG'nin temel veritabanı sayfalama desteği ile bu veritabanlarını görüntüleyebilirler.

D - Düğüm Araçları

Ayrıca scene graph uygulamanızla birlikte derlenebilen ya da çalışma ananda yüklenebilen ayrık kütüphanelere de Bağlantı Araçları (Node Kits) kümesi altında sahiptir. Bu kütüphaneler particle systems (osgParticle), high quality anti-aliased text (osgText), special effects framework (osgFX), shadow framework (osgShadow), interactive controls (osgManipulator) ve visual simulation centric effects (osgSim) destekleri için eklemektedirler.

E - Taşınabilirlik

Çekirdek scene graph tüm özel ortamlar üzerinde Standart C++ ve OpenGL den biraz daha az gereksinim duyulan ufak farklılıklara sahip olması için tasarlanmıştır. Bu da scene graph teknolojisine geniş çeşitlilikteki ortamlara hızlı bir şekilde eklenebilmesine izin vermektedir – orijinal olarak IRIX için geliştirilmiştir, daha sonra Linux, Windows, FreeBSD, Mac OSX, Solaris, HP-UX, AIX ve şimdi de PlayStation2 ortamına eklenmiştir! Çekirdek scene graph kütüphanesinin tamamen pencereleme (windowing) siteminden bağımsız olması kullanıcıların kendi pencere – özel kütüphane ve uygulamaların üzerinde - sistemlerini ekleyebilmelerini kolaylaştırmaktadır. Dağıtımlarda bulunan osgViewer kütüphanesi Windows (Win32), Unices (X11) ve OSX (Carbon) sistemleri altında doğal pencereleme desteği sunmaktadır. Ayrıca osgViewer kütüphanesi çok kolay bir şekilde sahip olduğunuz pencereleme araçlarıyla bütünleştirilebilir., örneklemek gerekirse Qt, GLUT, FLTK, SDL, WxWidget pencereleme sistemlerinde olduğu gibi. Cocoa ve MFC örnekleri OpenSceneGraph-2.0 dağıtımının bir parçasıdır. Scene graph sadece yüksek düzeyli (multi-core, multi-gpu systems and cluster) tümleşik cihazlar üzerinde çalışması için oluşturulmamıştır. Bu cihazlar içinde tasarlanmış olmasının yanı sıra scene graph OpenGL Display Listler ve kaplama (texture) nesneleri için birçok grafik içeriğini desteklemektedir ve seçim (cull) ve çizim (draw) aygıtları (traversals) yerelinde render edilen verileri cachelemek için tasarlanmıştır ve scene graph neredeyse tamamen sadece okuma işlemlerini kullanmaktadır. Bu birçok seçim-çizim (cull-draw) çiftlerinin birbirine bağlı olan çoklu grafik alt sisteminde bulunan çoklu işlemci üzerinde çalışmasına izin vermektedir. Çoklu grafik çevrelerine ve multi-threading işlemlere osgViewer aracılığı ile destek verir. Çoklu dil desteğini de Java, Lua ve Phyton gibi diller üzerinden kendiliğinden sunmaktadır.

OSG Öğrenmek İçin İzlenebilecek Adımlar

OSG hakkında yapmış olduğumuz bu kısa açıklamalardan sonra OSG üzerine daha detaylı incelemeler ve çalışmalar yapabilmek için izleyebileceğiniz adımlar aşağıdaki gibidir.

A - Kaynak Kodlar

Geliştiricilerin gözünden açık kaynaklı ürünlerin temel yararı kaynak kodlarının erişilebilir olmasıdır. OSG tabanlı bir uygulama geliştirdiğinizde, karşılaştığınız sorunlar OSG'nin kaynak kodlarında bulunan içsel işlemleri çözebilme yoluyla hızlı ve kolay bir şekilde çözülebilir. Henüz böyle bir deneyimde bulunmadıysanız OSG'nin kaynak kodlarını indirip bilgisayarınızda derleyerek kendi binary'lerinizi oluşturabilirsiniz. OSG yi ilk kez derlemek karışık ve zaman alıcı olabilir, fakat bu keşif uygulama yazılımınızı geliştirirken geliştirme safhasında size mükemmel bir fayda sağlayacaktır.

Ayrıca OSG kaynak kodu dağıtımları OSG'nin birçok özelliğini öğreten iyi yazılmış ve bilgi vermeye yönelik örnek programlar gibi zengin koleksiyonlarla birlikte gelmektedir. Bu örnek programlar OSG ile uygulama geliştirecek herkes için çok değerlidir.

OSG uygulaması geliştirmek için sadece OSG binary'lerini kullanmak mümkündür, fakat kaynak kod dağıtımlarına erişmek, örnekler ve binary'leri derlemek geliştirme işlemlerini hızlandırır.

B – OSG'nin Web Sitesi (OSG Wiki)

OSG Wiki Web sitesi (OSGWiki) OSG'ye ait çok fazla değerli bilgileri içerir. Bunlar; güncel OSG haberler, download işlemleri için ipuçları, OSG kaynak kodlarının derlenmesi ve kurulumu ile ilgili bilgiler, OSG topluluğu üyelerinin katkıda bulunduğu ek belgeler, örnek veriler, OSG topluluğundaki olaylar hakkında bilgiler, OSG topluluğu tarafından yaratılan OSG ile uyumlu araçlar ve destek bilgileridir.

C – OSG Kullanıcıları Posta Topluluğu (osg-users E-Mail List)

OSG kullanıcıları elektronik posta topluluğu sizin diğer OSG kullanıcıları ve geliştiricileri ile iletişimde olmanızı sağlar. OSG kaynak kodlarını derlerken herhangi bir sorunla karşılaştığınızda, geliştirme sırasında karşılaştığınız problemi algılayamadığınızda ya da OSG'nin içsel işlemlerinde algılayamadığınız durumlar olduğunda, e-mail topluluğuna gönderilen posta genellikle kullanışlı ve yardımcı bilgilerin geri gelmesini sağlamaktadır.

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Linux</span> Bir işletim sistemi çekirdeği

Linux ; Linux çekirdeğine dayalı, açık kaynak kodlu, Unix benzeri bir işletim sistemi ailesidir. GNU Genel Kamu Lisansı versiyon 2 ile sunulan ve Linux Vakfı çatısı altında geliştirilen bir özgür yazılım projesidir. Linux ismi ilk geliştiricisi olan Linus Torvalds tarafından 1991 yılında verilmiştir. Günümüzde süper bilgisayarlarda, akıllı cihazların ve internet altyapısında kullanılan cihazların işletim sistemlerinde yaygın olarak kullanılmaktadır. Bunlardan en popüler olanı Google tarafından geliştirilen Android işletim sistemidir.

Linux dağıtımı ; Linux çekirdeği, GNU araçları ve bir masaüstü ortamının bir araya gelmesiyle, bu birlikteliği sürdürülebilir şekilde yönetecek bir yapılandırma araçları seti, yazılım güncelleme araçları vb. ile oluşturularak tam teşekküllü bir işletim sistemi haline gelen uygulamalar bütününü ifade eder.

<span class="mw-page-title-main">DirectX</span>

DirectX, Microsoft'un video oyunları başta olmak üzere çoklu ortam yazılımlarını rahat, hızlı ve uyumlu şekilde hazırlayabilmek için yarattığı bir uygulama programlama arayüzüdür (API). Şu andaki en güncel resmî sürüm DirectX 12'dir. İçerdiği bileşenlerden bazıları şu şekilde özetlenebilir:

<span class="mw-page-title-main">OpenGL</span> grafik uygulama geliştirme arabirimi

OpenGL, gelişmiş donanım desteğini kullanarak hem iki hem de üç boyutlu grafikleri ekrana çizmek için kullanılan ücretsiz bir grafik uygulama geliştirme arabirimidir. Windows, Linux, MacOS ve Solaris gibi birçok işletim sisteminde yaygın olarak ve Playstation 3 başta olmak üzere bazı oyun konsollarınca desteklenir. Donanım tarafında ise SGI, ATI, Nvidia veya Intel gibi büyük üreticiler her ekran kartında OpenGL desteği sunar.

<span class="mw-page-title-main">Enlightenment</span>

Enlightenment, basit, hızlı, sade ve kullanışlı bir masaüstü ortamı yaratmak için başlatılan bir projedir. EFL adı verilen pek çok parçadan oluşmuş bir grup kütüphane üzerine inşa edilmiştir.

<span class="mw-page-title-main">Android</span> Mobil işletim sistemi

Android, Google ve Open Handset Alliance tarafından, cep telefonları, tabletler ve televizyonlar için geliştirilmekte olan, Linux tabanlı, özgür ve ücretsiz bir işletim sistemidir. Sistem açık kaynak kodlu olsa da, kodlarının ufak ama çok önemli bir kısmı Google tarafından kapalı tutulmaktadır. Google tarafından ücretsiz sunulmasının sebebi, sistemin daha hızlı ve çabuk gelişmesi, birçok popüler marka tarafından kullanılması ve bu sayede reklamlarının daha fazla kişiye ulaşmasını sağlamaktır. Google, Android sistemi üzerinde çalışan Google Play marketteki oyun ve uygulamalar üzerinde aldığı reklamları yayınlayarak para kazanmaktadır. Android'in desteklenen uygulama uzantısı ".apk"dır.

GLSL, C tabanlı yüksek seviye bir programlama dilidir.OpenGL ARB tarafından,geliştiricilerin grafik işhattına assembly veya donanım-bağımlı bir dil bilmeden direkt erişim sağlaması için yaratılmıştır.

Oyun programlama, oyun geliştirme işleminin bir alt konusudur. Profesyonel bir oyun için birçok nitelik ve yazılım bilgisi gerekir. Bunlar Yapay Zeka, veritabanı, fizik, ses programlama, simülasyon, modelleme ve grafiktir. Yeni çıkan bazı ücretsiz oyun motorlarıyla oyun yapmak çok kolay olmuştur.

Microsoft Visual Studio, Microsoft tarafından geliştirilen bir tümleşik geliştirme ortamıdır (IDE). Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework ve Microsoft Silverlight tarafından desteklenen tüm platformlar için yönetilen kod ile birlikte yerel kod ve Windows Forms uygulamaları, web siteleri, web uygulamaları ve web servisleri ile birlikte konsol ve grafiksel kullanıcı arayüzü uygulamaları geliştirmek için kullanılır.

<span class="mw-page-title-main">Qt (çalışma alanı)</span>

Qt, birden çok platformu destekleyen bir grafiksel kullanıcı arayüzü geliştirme araç takımıdır. Genellikle GUI programları geliştirmek için kullanılsa da gelişmiş kütüphanesi GUI bileşenlerinin dışında birçok araç içermektedir. Qt, en çok KDE masaüstü ortamında, Opera ağ tarayıcısında ve Skype anlık mesajlaşma programlarında kullanılmasıyla bilinir.

<span class="mw-page-title-main">Unreal Engine</span> video oyunu motoru

Unreal Engine, Epic Games tarafından geliştirilen ve ilk olarak 1998 yılında yayınlanan Unreal isimli birinci şahıs nişancı oyununda kullanılan oyun motoru. Esas olarak birinci şahıs nişancı oyunları için geliştirilmesine karşın, sonraları çeşitli türlerdeki oyunlarda kullanıldı. C++ ile yazılmış kodu sayesinde yüksek derecede taşınabilirliğe sahiptir ve günümüzde birçok oyun geliştirici tarafından kullanılan bir araç haline gelmiştir.

C4 Engine. Terathon Software tarafından Microsoft Windows XP/Vista/7, Apple Mac OS X, Linux ve Sony PlayStation 3 platformları için üç boyutlu oyun, simülasyon ve interaktif uygulamalar üretmek üzere geliştirilmiş, tescilli bir oyun motorudur.

<span class="mw-page-title-main">Manjaro Linux</span> Arch tabanlı GNU/Linux dağıtımı

Manjaro, Arch Linux'un sağlam altyapısını temel alarak geliştirilen, kullanıcı dostu bir GNU/Linux dağıtımıdır. Arch Linux genellikle daha deneyimli kullanıcılara hitap ederken, Manjaro bu zorluğu ortadan kaldırarak kullanım kolaylığı odaklı bir deneyim sunar. Bu sayede, Linux dünyasına yeni adım atanlar veya daha az teknik bilgiye sahip yeni Linux kullanıcılarının yanı sıra deneyimli kullanıcılar için de uygundur.

GRASS GIS taramalı, vektör topolojisi destekli, görüntü işleme ve grafik verileri işleme kapasitesine sahip bir ücretsiz, açık kaynak coğrafi bilgi sistemi (GIS)'dir.

GLFW, temelde ve ilk olarak OpenGL ile kullanılmak üzere geliştirilmiş hafif bir yardımcı kütüphanedir. Programcıya, üzerinde çalışılan işletim sisteminden bağımsız olarak OpenGL ve Vulkan için 'context' ve pencere yaratma, klavye, fare, oyun çubuğu girdi ve çıktılarını yönetme kolaylığı sağlar.

<span class="mw-page-title-main">Instruments (yazılım)</span>

Instruments Xcode 3.0 ve sonraki Xcode sürümlerine entegre edilmiş bir uygulama performans analizörü ve görselleştiricidir. Mac OS X Leopard'a aktarılan ve macOS'un tüm sonraki sürümlerinde bulunan OpenSolaris'ten DTrace izleme çerçevesinin üzerine inşa edilmiştir.

<span class="mw-page-title-main">Android yazılımı geliştirme</span>

Android yazılım geliştirmesi Android işletim sistemi için yeni uygulamaların oluşturulduğu süreçtir. Uygulamalar genellikle Android yazılım geliştirme kiti (SDK) kullanılarak Java programlama dilinde geliştirilir; ancak diğer geliştirme ortamları da mevcuttur. Google, Android uygulamaları Kotlin, Java ve C++ dilleri kullanılarak Android yazılım geliştirme kiti (SDK) kullanılarak yazılabilir" ve diğer dilleri kullanmak da mümkün olduğunu belirtiyor. Go, JavaScript, C, C++ veya Assembly gibi Java sanal makinesi (JVM) dışı tüm diller, muhtemelen kısıtlı API desteğiyle araçlar tarafından sağlanabilecek JVM dil kodunun yardımına ihtiyaç duyar.

<span class="mw-page-title-main">GPE</span>

GPE Palmtop Environment bazı Linux çekirdeği tabanlı işletim sistemlerini çalıştıran Palmtop PC ve kişisel dijital yardımcılar (PDA'lar) gibi avuçiçi bilgisayarlar için bir grafik kullanıcı arabirimi ortamıdır. GPE, kişisel bilgi yönetimi (PIM), ses çalma, e-posta ve web tarama gibi görevler için bir Linux avuçiçi kullanmayı mümkün kılan yazılım bileşenleri ve uygulamaları içeren komple bir alandır.

3D grafikler, özellikle video oyunlarında o kadar popüler hale geldi ki, bilgisayar grafiği üretiminin tüm aşamalarında süreçleri kolaylaştırmak için özel API'ler oluşturuldu. Bu API'ler, programcıların donanıma soyut bir şekilde erişmeleri için bir yol sağlarken, herhangi bir belirli grafik kartının özel donanımından yararlanmaya devam ettikleri için bilgisayar grafik donanımı üreticileri için de hayati önemde olduklarını kanıtladılar. İlk 3D grafik çerçevesi, muhtemelen 1977'de ACM tarafından yayınlanan Core idi.

OpenWindows, SunView, NeWS ve X Window System protokollerini birleştiren Sun Microsystems iş istasyonları için tasarlanmış ve artık geliştirilmesi devam etmeyen bir masaüstü ortamıdır. OpenWindows, Solaris 9'da Common Desktop Environment (CDE) ve GNOME 2.0 lehine kaldırılıncaya kadar SunOS 4 ve Solaris işletim sistemlerinin sonraki sürümlerine dahil edildi.