Mine sisu juurde

Unity

Allikas: Vikipeedia
Redaktsioon seisuga 2. jaanuar 2012, kell 20:02 kasutajalt KPeedosk (arutelu | kaastöö)

Unity on integreeritud loomevahend 3D videomängude või muusuguse interaktiivse sisu nagu näiteks arhitektuurivisualisatsioonide või 3D animatsioonide loomiseks. Unity arenduskeskkond jookseb Microsoft Windowsi ja Mac OS X operatsioonisüsteemidel ning temaga saab luua mänge Windows-ile, Mac-ile, Xbox 360-le, Playstation 3-le, Wii-le, iPad-le, iPhone-le kui ka Androidi platvormile. Sellega saab luua brauserimänge, mis kasutavad unity veebimängija tarkvaramoodulit, mis on toetatud Macil ja Windowsil, aga mitte Linuxil.

Unity koosneb redigeerimisprogrammist sisu loomiseks/disainimiseks ja mängu mootorist lõppprodukti käivitamiseks. Unity on sarnane programmidele Director, Blender game engine, Virtools, Torque Game Builder ja Gamestudio, mis kasutavad ka integreeritud graafilist keskkonda kui primaarset loomise meetodit.

Unity võitis Wall Street Journal 2010 Technology Innovation Awardi tarkvara kategoorias. 2009.aastal anti Unity Technologies-le Gamasutra "Top 5 Game Companies of 2009" tiitel. Unity saavutas teise koha parimas graafika kasutuse kategoorias Mac OS X-l 2006.aastal Apple Design Awardsil.

Põhiomadused

  • Integreeritud arenduskeskkond hierarhiliste, visuaalmonteerimisega, detailiseeritud omaduste inspektoritega ja otse mängu eelvaatega.
  • Juurutamine mitmele platvormile:
  1. Kui Microsoft Windowsi või Mac OS X täitmisprogramm
  2. Veebis (Unity Web Playeri tarkvaramooduliga brauserites: Internet Explorer, Firefox, Safari, Mozilla, Netscape, Opera, Google Chrome ja Camino) Windowsil ja Mac OS X-l.
  3. Kui Mac OS X Dashboard vidin
  4. Nintendo Wii-le (nõuab lisa litsentsi)
  5. Kui iPhone/iPad aplikatsioon (nõuab lisa litsentsi)
  6. Google Androidile (nõuab lisa litsentsi)
  7. Microsoft Xbox 360-le (nõuab lisa litsentsi)
  8. Sony Playstation 3-le (nõuab lisa litsentsi)
  • Unity-sse laetud varad imporditakse automaatselt ja taasimporditakse, kui see vara uuendatakse. Unity toetab integreerimist programmidega: 3ds Max, Maya, Softimage, Blender, Modo, ZBrush, Cinema 4D, Cheetah3D, Photoshop ja Allegorithmic Substance.
  • Graafikamootor kasutab Direct3D-d (Windows), OpenGL-i (Mac,Windows), OpenGL ES (iOS, Android), ja suletud API'si (Wii).
  • Unity toetab järgnevaid graafika visualiseerimismeetodeid: bump mapping, reflection mapping, parallax mapping, Screen Space Ambient Occlusion, dünaamilised varjud (shadow maps), tekstuurile renderlus ja täisekraan järeltöötlus efektid.
  • ShaderLab keel varjutajate (Varjutaja on 3-mõõtmelises arvutigraafikas väike programm või algoritmikomplekt, mis määrab ära objektide 3-mõõtmeliste pinnaomaduste kujutamisviisi sõltuvalt valgusallikast, selle kaugusest ja valguse langemisnurgast) kasutamiseks.
  • Sisseehitatud tugi Nvidia PhysX füüsika mootorile.
  • Mängu programmeerimine Mono kaudu. Mono on vabavara rakendus .NET Framework-ist. Programmeerijad saavad kasutada UnityScript, C# või Boo keelt.
  • The Unity Asset Server
  • Audiosüsteem ehitatud FMOD raamatukogule. Ogg Vorbis pakitud heli on toetatud.
  • Video taasesitus kasutab Theora koodeksit.
  • The Unity Asset Store - Programmisisene varamu tuhandete Unity-valmis varadega: mudelitega, karakteritega, koodi, heli jne.

Litsentseerimine

Eksisteerib kaks põhi litsentsi: Unity ja Unity Pro, Pro versiooni eest tuleb maksta ja tavaline versioon on tasuta. Tasutaversioonis puuduvad: tekstuurile renderlus, occlusion culling, globaalne valgustus ja järeltöötlus efektid, ning võimalus töötada tiimiga interneti kaudu. Tasuta versiooniga kaasneb produktides vesimärk.

Mängu mootor üldiselt

Mängu mootor on süsteem, mis on kavandatud videomängude loomiseks ja arendamiseks. Eksisteerib väga palju mängu mootoreid, mis on kavandatud töötama konsoolidel ja personaalarvutitel. Mängu mootor sisaldab tavaliselt renderlus mootorit 2D või 3D graafikaks, füüsikamootorit või kokkupõrke avastajat, heli, skriptimist, animatsioone, tehisintellekti, võrgundust, streamingut, mälu haldamist, threadingut, lokaliseerimise toetust ja stseeni graafikut (Stseeni graafik on andmestruktuur, mida kasutavad vektoripõhised graafikatöötlusrakendused ja tänapäeva arvutimängud).

Riistvara üldistus

Enamasti 3D mootorid või renderlussüsteemid on mängu mootorites ehitatud graafika API-le (API on arvuti operatsioonisüsteemiga või rakendusprogrammiga määratud reeglistik, mille alusel rakendusprogramm kasutab operatsioonisüsteemi või teise rakendusprogrammi teenuseid) nagu näiteks Direct3D (Direct3D on põhiline DirectX-i alamprogramm. Direct3D on vajalik animatsiooni, graafika ja muude vajalike efektide kasutamiseks) või OpenGL, mis annavad tarkvaralise üldistuse graafikakaardist (GPU). DirectX-i teisi alamprogrammid, Simple DirectMEdia Layer(SDL), ja OpenAL on samuti kasutusel mängudes, kuna nad pakuvad riistvara-iseseisvat ligipääsu ülejäänud arvutiriistvarale nagu näiteks sisendseadmetele (hiir, klaviatuur ja juhtkang), võrgukaardile ja helikaardile. Enne riistvara-kiirendatud 3D graafikat kasutati tarkvara renderdajaid.

3-mõõtmeline visualiseerimine

1. Geomeetria genereerimine. Rakendusprogramm valib välja, millised hulktahukad (stseeni kirjeldavad pinnad) jäävad nähtavale. Seejärel lahutatakse need hulktahukad kolmnurkadeks, mida kirjeldatakse kolme tipu x, y ja z koordinaatidega mingi fikseeritud referentspunkti suhtes

2. Geomeetrilised teisendused. Valitud kolmnurgad teisendatakse 3-mõõtmelise maailma koordinaatidest sellisteks koordinaatideks, mida 3-mõõtmelise visualiseerimise mootor suudab käsitleda (vastavalt sellele, mida antud vaatepunktist on näha)

3. Kolmnurkade väljapraakimine ja kärpimine. Kolmnurgad, mida pole näha või mis vaatavad tahapoole, kustutatakse. Kolmnurki, mis on näha osaliselt, kärbitakse selliselt, et nähtamatut osa ei arvutata

4. Valgustamine. Lisatav valgustus (harilikult värviline) arvutatakse välja, kuid veel ei rakendata

5. Kolmnurkade paigaldamine. Kolmnurkade koordinaadid teisendatakse vastavaks ekraanipikslitele (täisarvudeks) ning arvutatakse välja tekstuuri varjutamise gradiendid

6. Rasterdamine (iga piksel arvutatakse eraldi)

  • Perspektiivi korrigeerimine. Kaugusse suunduvad kolmnurgad (näit. maantee) arvutatakse ümber nii, et mida kaugemal, seda väiksemad nad on
  • Z-puhverdamine. Iga piksli jaoks käiakse läbi kõik seda pikslit katvad tekstuurid ning kaugus ekraani esipinnast tahapoole (z-koordinaat) salvestatakse z-puhvris, kui see on eelmisest tekstuurist eespool (omab väiksemat z väärtust). Hiljem kuvatakse ainult seda tekstuuri, mis on kõigist teistest eespool
  • Tekstuuri leidmine ja filtreerimine. Igal kolmnurgal kuvatavad tekstuurid arvutatakse välja MIP-vastendust ja bilineaarset või trilineaarset filtreerimist kasutades
  • Pinna värvuse korrigeerimine. Tekstuuri värvus sujutatakse iga värvilise valgustuse ja varjutamisega, et fikseerida selle tekstuuri tegelikku väljanägemist
  • Udu ja vine. Udu ja vine kujutamiseks arvutatakse iga piksli jaoks välja helesinine värvus, mille intensiivsus sõltub z-puhvrisse salvestatud väärtusest
  • Sujutamine. Valgustusele ning vinele lisatakse värvilised tekstuurid ning valmis piksel kirjutatakse kaadripuhvrisse. Mõnede 3D-mootorite puhul võib rasterdamisprotsess nüüd suunduda tagasi punkti a., kui on vajalik mõni teine efektide komplekt

7. Kuvamine. Kaadripuhvrist saadetakse andmed RAMDAC-muundurile kuvamiseks.

RAMDAC

RAMDAC on mikrokiip, mis muundab digitaalse pildisignaali analoogsignaaliks, mis on vajalik selle pildi kuvamiseks katoodkiiretoruga kuvaril. RAMDAC on monteeritud arvuti videoadapterisse ja koosneb värvitabelit sisaldavast väikesest staatilisest muutmälust (SRAM - Static Random Access Memory)ning kolmest digitaal-analoogmuundurist (iga värvi jaoks üks). Kuvar kasutab nimelt kujutise moodustamiseks kolme värvi - punast, rohelist ja sinist (RGB - Red, Green, Blue)

DVI ja HDMI liideste tehnoloogia populariseerumisega on RAMDAC kiibid kasutama hakanud TMDS tehnoloogiat.

Minimaalse üleminekuprotsessiga diferentsiaalne signaaliedastusmeetod (TMDS), mida kasutatakse digisignaali saatmiseks lamekuvaritele. TMDS’i kasutatakse VESA Plug and Display, DFP, HDMI ja DVI liideste puhul. TMDS on LVDS’i variatsioon, mis teisendab 8-bitise signaali 10-bitiseks signaaliks, et minimeerida pinge väljalööke ja vähendada moonutusi

Madalpingeline diferentsiaal-signaaliedastusmeetod (LVDS) digitaalsignaali edastamiseks. LVDS on laialdaselt kasutusel sülearvutites signaali saatmiseks arvuti emaplaadilt lamekuvarile, sest selle meetodi puhul on vaja väiksemat arvu kaablisooni. LVDS tehnoloogiat kasutatakse ka mõnede eraldiseisvate lamekuvarite puhul nagu näiteks firma SGI populaarne lamekuvar 1600SW, samuti digikaamerate juures.

LVDS-edastust defineerivad mitu standardit, sh ANSI/TIA/EIA-644 ja IEEE 1536.


Unity puudused

DirectX 11

Unity mängumootoril puudub hetkel DirectX 11 tugi[1], kuigi DirectX 11 on mängutööstuses väga kiiresti populaarsust koguv tehnoloogia. Unity arendajad on aga teatanud, et sellega juba aktiivselt tegeletakse. [2]

PlayStation Vita

Unity mängumootoril puudub tugi varsti müüki tulevale PlayStation Vita konsoolile, samal ajal kui konkureeriv Unreal Engine 3 on juba teatanud, et nemad on vastava toe arendanud. [3]

Tehisintellekti rakendused

Unity mootoril puudub senimaani igasugune tehisintellekti implementeerimise tugi mängukeskkondades. Unity 11 Keynote konverentsil aga teatati, et rajaleidmine (“pathfinding”) ja rahvamasside simulatsioon (“crowd simulation”) implementeeritakse järgmises ehk Unity 3.5 versioonis. [4] Samuti on saadaval lai valik tehisintellekti võimalusi lisav kolmanda osapoole tarkvara, näiteks RAIN – AI Engine mootor.

Hävitatavad keskkonnad

Unity ei toeta hetkel mängus olevate 3D objektide “katkitegemist” ehk hävitatavaid keskkondi mängumaailmas. [5] Hoolimata sellest, et Unity toetab peaaegu kõiki Nvidia PhysX featuure, puudub tugi APEX Destruction tarkvarale. See on osa PhysX tarkvarast, mis defineerib algoritmilised reeglid 3D objektide katkitegemiseks mängija tegutsemise tagajärgede tõttu. Siiski sisaldab Unity mootor kooditeeki, mis võimaldab kasutajatel muuta kõigi mängu objektide kuju. Selle API abil on kolmandatel osapooltel võimalik luua kohandatud programme, mis tegelevad objektide hävitamise ja katkitegemisega. [6] Näiteks pakub sellist võimalust Piecemaker – Mesh Desctruction Asset tarkvarapakett.


Viited

  1. "Does Unity support DX11? Can it compare to BF Bad Company 2?".
  2. "NinjaCamp III: Direct3D 11".
  3. "Platforms". Vaadatud 11/15/11. {{cite web}}: eiran teksti "Unreal Technology" (juhend); kontrolli kuupäeva väärtust: |accessdate= (juhend)
  4. "UNITY: Unite 11". Vaadatud 11/16/11. {{cite web}}: kontrolli kuupäeva väärtust: |accessdate= (juhend)
  5. "Will Unity3D also be using APEX ?". Vaadatud 11/15/11. {{cite web}}: kontrolli kuupäeva väärtust: |accessdate= (juhend)
  6. "Unity Script Reference – Mesh". Vaadatud 11/15/11. {{cite web}}: kontrolli kuupäeva väärtust: |accessdate= (juhend)

< What is a Game Engine? /> < http://vallaste.ee/ /> < DirectX website /> < http://www.webopedia.com/DidYouKnow/Hardware_Software/2005/directx.asp /> < (Unity Ametlik lehekülg) /> < http://www.webopedia.com/TERM/A/API.html />

Välislingid