Documente Academic
Documente Profesional
Documente Cultură
Curs 2
2021
Termeni
- Rendering (sintetizarea imaginilor) este procesul de generare de imagini dintr-
un model 2D sau 3D cu ajutorul unui program pe computer. Termenul este
folosit și pentru descrierea procesului de calculare și aplicare a efectelor în
editarea video.
- Graphics pipeline este un model conceptual care descrie pașii pe care un
sistem grafic trebuie să-i execute pentru a randa o imagine 3D pe un ecran 2D.
- Graphics processing unit (GPU) este o unitate electronică specializată pentru a
manipula memoria în vederea accelerării creării de imagini pentru afișarea pe
un ecran. GPU sunt folosite în embedded systems, telefoane mobile,
computere și console.
2
Graphics API (application programming interface)
Folosesc hardware acceleration.
- OpenGL: cross-platform API
- Direct3D (parte a DirectX), este API pentru Microsoft Windows
3
Aplicații grafice (3D)
- 3D Studio Max
- Autodesk AutoCAD
- Autodesk Maya
- Blender
- Google SketchUp
4
Game engine
Furnizează suport pentru: fizică, rendering, scripting, detectarea coliziunilor,
inteligență artificială, etc.
- Unreal
- Unity
- GameMaker
- Godot
- CryEngine
- LibGDX – Java framework
5
Unity
- cross-platform game engine creat de Unity Technologies în 2005
- popular pentru dezvoltarea jocurilor mobile iOS și Android
- jocuri 2D și 3D, simulări interactive, film, automotive, arhitectura, inginerie, US
Armed Forces.
- Unity Machine Learning Agents: software open-source care conectează
platforma Unity cu programe de machine learning, inclusiv Google TensorFlow
6
Unity
Platforme Unity 2020 LTS:
- Mobil: iOS, Android (Android TV), tvOS
- Desktop: Windows, Mac, Linux
- Web: WebGL
- Console: PlayStation (PS4, PS5), Xbox (Xbox One, Xbox Series X/S), Nintendo
Switch, Stadia
- Virtual/Extended reality: Oculus, PlayStation VR, Google's ARCore, Apple's
ARKit, Windows Mixed Reality (HoloLens), Magic Leap, și Unity XR SDK Steam
VR, Google Cardboard.
7
Jocuri Unity
8
Documentație
• Manual: http://docs.unity3d.com/Manual/index.html
• Scripting API: http://docs.unity3d.com/ScriptReference/index.html
• http://forum.unity3d.com/
9
Assets
• Scenes
• “Prefabs”
• Scripts
• Textures
• Animations
• Models
• Particles
• Sprites
• Etc.
10
Asset store
https://assetstore.unity.com/
• Utilizatorii pot crea și vinde asset-uri către alți creatori de jocuri
• Include asset-uri 3D și 2D și environments pentru dezvoltatori
11
Activitate: Modelarea și desenarea unui cub
12
Activitate: Modelarea cubului
Descrierea cubului:
- centrat în origine (0, 0, 0)
- are dimensiunea 2 x 2 x 2
Care sunt coordonatele vârfurilor?
13
Activitate: Desenarea cubului
Avem descrierea digitală geometrică a cubului:
Vârfuri Muchii
14
Proiecția perspectivă
Obiectele apar mai mici pe măsură ce se îndepărtează (perspectiva).
Pinhole camera model (modelul perspectivă):
15
Proiecția perspectivă: vedere laterală
Unde este proiectat un punct p = (x, y, z) pe imagine?
Notăm punctul pe imagine q = (u, v)
16
Proiecția perspectivă: vedere laterală
Unde este proiectat un punct p = (x, y, z) pe imagine?
Notăm punctul pe imagine q = (u, v)
Observăm 2 triunghiuri similare:
18
Activitate: Desenarea cubului prin modelul perspectivă
19
Raster display
Abstractizarea unui display:
• Imaginile sunt reprezentate ca o grilă de pixeli 2D
• Fiecare pixel poate avea o valoare (culoare) unică
20
Close up – pixeli pe un display
21
Ce pixeli ar trebui să colorăm pentru a reprezenta o linie?
”Rasterizarea” este procesul de transformare a unui obiect continuu (linie, poligon, etc.)
într-o reprezentare discretă pe o grilă tip raster (grila de pixeli)
22
Ce pixeli ar trebui să colorăm pentru a reprezenta o linie?
Colorăm toți pixelii cu care se intersectează linia?
23
Ce pixeli ar trebui să colorăm pentru a reprezenta o linie?
Diamond rule – folosită de GPU-urile moderne:
colorăm pixelul dacă linia trece prin rombul asociat
24
Incremental line rasterization
Presupunem că linia este reprezentată de punctele întregi: (u1, v1), (u2, v2)
Panta liniei: s = (v2 - v1) / (u2 - u1)
Considerăm cazul special: Considerăm coordonatele întregi în centrul pixelului
• u1 < u2, v1 < v2
• 0<s<1
25
Am randat imaginea cubului folosind linii simple.
Dar pentru randarea imaginilor mai realiste (sau animații), ne trebuie un
model mai complex al mediului.
• suprafețe
• mișcare
• materiale
• lumini
• camere
26
Suprafețe 3D complexe
27
Modelarea proprietăților materialelor
28
Pe săptămâna viitoare!
29