Lisans Bitirme Projesi Raporu Yazim Kilavuzu

T.C.
GEBZE YÜKSEK TEKNOLOJĠ ENSTĠTÜSÜ
Bilgisayar Mühendisliği Bölümü
LĠSANS BĠTĠRME PROJESĠ
ÖN RAPOR YAZIM
KILAVUZU
Ebubekir AKGÜL
DanıĢman
Yrd. Doç. Dr. Yakup GENÇ
ġubat, 2014
Gebze, KOCAELĠ
i
T.C.
GEBZE YÜKSEK TEKNOLOJĠ ENSTĠTÜSÜ
Bilgisayar Mühendisliği Bölümü
LĠSANS BĠTĠRME PROJESĠ
ÖN RAPOR YAZIM
KILAVUZU
Ebubekir AKGÜL
DanıĢman
Yrd. Doç. Dr. Yakup GENÇ
ġubat, 2014
Gebze, KOCAELĠ
ii
ĠÇĠNDEKĠLER
KISALTMA LĠSTESĠ ........................................................................ V
SEMBOL LĠSTESĠ ............................................................................................... V
1. GĠRĠġ ............................................................................................... 1
1.1.
PROJE TANITIMI .................................................................................... 1
1.2.
PROJEDE KULLANILACAK DONANIM VE TEKNOLOJĠLER ....... 4
2.3.
PROJENĠN NEDENĠ AMAÇLARI .......................................................... 4
2.4.
PROJENĠN KULLANIM ALANLARI ..................................................... 4
2.
ÖN RAPOR ĠÇERĠĞĠ ............................................................... 5
2.1.1 DONANIMSAL GEREKSĠNĠMLER ....................................................... 5
2.1.2 YAZILIMSAL GEREKSĠNĠMLER ......................................................... 5
2.2.
SĠSTEM MĠMARĠSĠ.................................................................................. 6
2.2.1. UML DĠYAGRAMLARI ........................................................................... 7
2.2.1.1 CLASS DĠYAGRAMI............................................................................... 7
2.2.1.2 USE CASE DĠYAGRAMI ......................................................................... 8
2.2.1.3 REQUĠREMENT DĠYAGRAMI............................................................... 8
2.3.
Ġġ PLANLARI ............................................................................................ 9
2.4.
BAġARI KRĠTERLERĠ ............................................................................ 5
6. SONUÇ............................................................................................. 5
KAYNAKLAR..................................................................................... 6
EKLER..................................................................................................11
iii
ġEKIL LISTESI
Şekil 1.1 Kullanıcı ekrana karşıdan bakarken oluşacak örnek sahne ........................ 2
Şekil 1.2 Kullanıcı ekrana soldan bakarken oluşacak örnek sahne ........................... 2
Şekil 1.3 Kullanıcı cisme sol taraftan bakarken oluşacak görüntü............................ 3
Şekil 1.4 Kullanıcı cisme sağ taraftan bakarken oluşacak görüntü ........................... 3
Şekil 2.1 Örnek sistem görünümü ........................................................................... 5
Şekil 2.2 Sahne şeması............................................................................................ 6
Şekil 3 Clas diyagramı ............................................................................................ 7
Şekil 3 Use case diyagramı ..................................................................................... 8
Şekil 3 Requirement diyagramı ............................................................................... 8
Şekil 4 İş Planı....................................................................................................... 10
iv
KISALTMA LĠSTESĠ
UML
G.Y.T.E.
AR
3D
: Unified Modeling Language (Birleşik Modelleme Dili)
: Gebze Yüksek Teknoloji Enstitüsü
: Augmented Reality
: 3 Dimension
SEMBOL LĠSTESĠ
v
1. GĠRĠġ
Bu proje 3 boyutlu bir cismin, veya 3 boyutlu bir çevrenin(enviroment) 3D
bir ekranda kullanıcıya gerçeklik hissi vererek göstermeyi amaçlar. 3 boyutlu cismi,
kullanıcının posizyonuna bağlı olarak, yönünü ve büyüklüğünü değiştirerek, sanki o
cisim
orada
gerçekten
varmış
gibi
hissedilmesini
sağlar.
Bu
işlemin
gerçekleştirilebilmesi için kullanıcının ekrana göre konumu tespit edilmektedir. Bu
da Microsoft firmasının Kinect adlı cihazı ile gerçekleştirilmektedir.
Projede iki farklı çevre tasarımı olacaktır. İlk olarak "Gerçek pencere" oalrak
adlandırdığımız pencere yapılacaktır. Bu sistemde görüntü ekranın arkasında
oluşturulup, ekrana bakan kullanıcının konumuna göre yeniden yapılandırılacaktır.
Bu olayı tıpkı gerçek pencereden dışarıya bakmak gibi de anlatabiliriz. Bir diğer
çevre tasarımında da görüntü ekranın önünde oluşturulacak, kullanıcıya sanki orada
gerçekten bir cisim varmış gibi görüntü oluşturulacaktır.
1.1. PROJE TANIMI
True 3D projesinde 3 boyutlu ekranlarla sanal gerçeklik oluşturmak, ve bunu
kullanıcıya ürün olarak sunabilmek amaçlanmaktadır.
Proje 2 kısımdan
oluşacak olup, aynı mantık ve mekanizmada çalışacaktır.
Projenin ilk kısmı olan "Sanal Pencere" kısmında ekranın arkasında bir
görüntü oluşturulacak, ekran karşısındaki kullanıcının her hareketinde bu
görüntü yeniden konumlandırılacaktır. Kullanıcı ekrana karşıdan baktığı zaman
aşağıdaki gibi bir görüntü görebilecektir. Kullanıcı her yer değiştirişinde bu
ekrandaki sahne de değiştirilip, sanal gerçeklik sağlanacaktır.
1
ġekil 1.1
Kullanıcı ekrana karşıdan bakarken oluşacak örnek sahne
ġekil 1.2
Kullanıcı ekranın solundan bakarken göreceği örnek sahne
2
Projenin ikinci kısmında ise bir çeşit sanal stüdyo yapılıp, görüntü ekranın
önünde olacaktır. Stüdyo ortamları iki tane yapılacak olup karmaşıklıkları
(complexity) en az 100 000 ve 1 000 000 triangle olacaktır. Prensip olarak
Sanal Pencere uygulaması ile benzer çalışacak, kullanıcının 3 boyutlu nesneyi
etrafında gezerek
incelemesine olanak tanıyacaktır.
Aşağıdaki temsili
resimlerde kullanıcı arabaya soldan baktığında şekil 1.3 'deki gibi, sağdan
baktığında ise 1.4 'deki gibi bir görüntü görecektir.
ġekil 1.3
Kullanıcı cisme kendisine göre sol taraftan bakınca oluşan görüntü.
Şekil 1.4
Kullanıcı cisme kendisine göre sağ taraftan bakınca oluşan görüntü.
3
1.2. PROJEDE KULLANILACAK DONANIM VE TEKNOLOJĠLER
Projede donanım olarak 3 boyutlu görüntüyü oluşturmak için 3D TV , ve 3D
gözlük kullanılacaktır. Ayrıca kullanıcının konumunu bulmak için de Microsoft
firmasının Kinect cihazı kullanılacaktır.
Projenin bütün yazılım ve tasarımları Unity 3D editörü kullanılacak
yapılacaktır. Unity ile sahne tasarımı, 3D görüntü oluşturma, cisimleri yönetme,
kullanıcı konumunu algılama gibi işlemler gerçekleştirilecektir. Unity'de
bulunan fizik motoru 3 boyutlu nesneleri yönlendirmek(transform & rotation)
için yeterli niteliklere sahiptir. Unity ile oluşturulacak yazılım teorik olarak
bütün platformlarda çalışmaktadır.
1.3. PROJENĠN NEDEN ve AMAÇLARI
Proje 3 boyutlu arttırımış gerçeklik(3D Augmented Reality) kullanarak,
kullanıcılara sanal görsellik sunmayı amaçlamaktadır. Ayrıca proje AR
(augmented reality) kullanımının gerçek hayattaki bir uygulaması olup,
oluşturulacak yapı(geliştirme kütüphanesi) 3D oyun tasarımında kullabilir hale
getirilecek, kullanıcılar için daha interaktif oyunlar üretmeyi sağlıyacaktır.
1.4. PROJENĠN KULLANIM ALANLARI
Gelişirilecek olan sistem aşağıdaki gibi kullanım alanlarına sahip olabilir.
o 3D oyunların geliştirilmesi
o Müze ve fuarlarda nesnelerin gösterimi
o İç mimaride değişebilen manzara veya resimler için kullanılması
4
2. ÖN RAPOR ĠÇERĠĞĠ
2.1. PROJE GEREKSĠNĠMLERĠ
2.1.1. DONANIMSAL GEREKSĠNĠMLER
ġekil 2.1
Örnek sistem görünümü
Şekil 2.1 'de sistemin genel görüntüsü bulunmaktadır. Üsttaraftaki şekilde
projenin donanım bileşenlerini
 3D TV
 3D gözlük
 Kinect
olarak sıralayabiliriz.
2.1.2. YAZILIMSAL GEREKSĠNĠMLER
Yapılacak olan sistem Kinect'den kullanıcı pozisyonunu okuyup, gelen
bilgileri işleyerek ekranda oluşacak görüntüyü güncellemelidir. Ekrana
gönderilecek görüntü işlenerek 3 boyutlu bir hale getirilmelidir. Bu işlemler 100
milisaniyeden kısa sürmelidir.
Geliştirme ortamında Kinect driver ve SDK yazılımlarının yüklü olması
gereklidir.
5
2.2.
SĠSTEM MĠMARĠSĠ
ġekil 2.3
Sahne şeması
Üstteki şekil oluşacak platformun temsili bir resmidir. Kullanıcının her yer
değişiminde oluşan 3D cisim yeniden boyutlandırılıp, yönü değiştirilir. Ayrıntılı
bilgiler UML diyagramları bölümünde bulabilirsiniz.
6
2.2.1. UML DĠYAGRAMLARI
2.2.1.1.
CLASS DĠYAGRAMI
Şekil 2.3
Class Diyagramı
7
2.2.1.2.
USE CASE DĠAGRAMI
Şekil 2.4
Use Case Diyagramı
2.2.1.3.
REQUĠREMENT DĠAGRAMI
Şekil 2.5
Requirement Diyagramı
8
2.3.
Ġġ PLANLARI
Projede takip edilecek adımlar aşağıdaki gibidir.
o
o
o
o
o
o
o
o
o
o
Literatür araştırması
Kullanılacak SDK ve editörlerin öğrenilmesi
3D sahnelerin tasarlanması
3D nesnelere fizik modülleri eklenmesi
Kinect ile entegrasyon
Ara yüzün hazırlanması
Stereo görüntü oluşturulması
Sistemin birleştirilmesi
Genel sistem testleri
Rapor ve sunumlar
9
ġekil 2.3 ĠĢ Takvimi
4
2.4.
BAġARI KRĠTERLERĠ
Projede 3 tane başarı kriteri bulunmaktadır.
o İki ayrı senaryo(pencere ve obje) ve her senaryonun altında 2 ayrı alt senaryo
o İki değişik model complexity (100k ve 1M triangles)
o Sistemin tepki süresi 100ms'den az olmalıdır.
3. SONUÇ
Yapılacak olan sistem birleştirilip çalıştırıldığında 3 boyutlu cisimleri
gerçekleyen bir başyapıt haline gelecektir. Oluşturlacak olan yazılım paketlenip
kütüphane haline getirilip, oyun geliğtiricilerinin hizmetine sunulacaktır. Hazırlanan
kütüphane yardımıyla da kolaylıkla yeni AR oyunlar geliştirilebilecektir.
5
KAYNAKLAR
[1] Unity, Unity 3D Tutorial & Reference guide,
http://docs.unity3d.com/Documentation/Manual/index.html
[Ziyaret Tarihi: 24 Şubat 2014]
[2]Wikipedia.com, Anaglyph 3D
http://en.wikipedia.org/wiki/Anaglyph_3D
[Ziyaret Tarihi: 28 Şubat 2014]
[3]openni.org,Programming guide
http://www.openni.org/openni-programmers-guide
[Ziyaret Tarihi: 28 Şubat 2014]
[4]microsoft.com, Kinect SDK
http://msdn.microsoft.com/en-us/library/hh855347.aspx
[Ziyaret Tarihi: 28 Şubat 2014]
6