Wirtualny model Instytutu Informatyki - praca inzynierska.doc

(10510 KB) Pobierz
Praca inzynierska

Spis treści

 

 

1. Wprowadzenie              5

1.1. Kontekst przedsięwzięcia              5

1.2. Cel i zakres pracy              5

1.3. Zespół zarządzający i wykonawczy              6

1.4. Podziękowania              6

2. Opis technologii              8

2.1. OpenGL – historia i rozwój              8

2.2. OpenGL – zakres i zastosowania              9

2.3. OpenGL jako interfejs API              9

2.4. Typy danych              10

2.5. Prymitywy              10

2.5.1. Wierzchołek              10

2.5.2. Pozostałe prymitywy              10

2.6. Bufor głębokości, ukrywanie niewidocznych powierzchni              11

2.7. Optymalizacja renderowania              11

2.8. Przekształcenia              11

2.8.1. Przekształcenia punktu obserwatora              12

2.8.2. Przekształcenia modelu              12

2.8.3. Przekształcenia rzutowania              12

2.8.4. Przekształcenia okna              13

2.8.5. Macierze, kolejka przekształceń              13

2.8.6. Macierz tożsamościowa, stosy macierzy              13

2.9. Rzutowania              14

2.9.1. Rzutowanie perspektywistyczne              14

2.9.2. Rzutowanie równoległe              15

2.10. Kolory              15

2.10.1. Podstawowe głębokości kolorów              15

2.10.2. Tryb koloru RGBA              15

2.10.3. Tryb z indeksem koloru              16

2.11. Światła i oświetlenia              16

2.11.1. Oświetlenie w OpenGL              16

2.11.2. Model oświetlenia              16

2.11.3. Właściwości materiału              17

2.11.4. Źródła światła              17

2.11.5. Efekty oświetlenia - odbłyski              18

2.11.6. Światła punktowe              18

2.12. Listy wyświetlania              18

2.12.1. Implementacja              18

2.13. Mapowanie tekstur              19

2.13.1. Pliki bitmap              19

2.13.2. Pojęcie teksturowania              19

2.13.3. Definiowanie tekstur              19

2.13.4. Mipmaping              20

2.14. Kwadryki              20

2.14.1. Definiowanie i rysowanie kwadryk              20

2.14.2. Cylindry              21

2.14.3. Dyski              21

2.14.4. Sfery              22

2.14.5. Renderowanie kwadryk              22

3. Ogólne zasady działania engine’a              23

3.1. Wczytywanie danych              23

3.1.1. Pliki *.lev              23

3.1.2. Pliki *.rom              23

3.1.3. Pliki *.dyn              23

3.1.4. Pliki *.ld              23

3.2. Umieszczanie danych w pamięci              23

3.3. Malowanie obiektów w listach wyświetlania              24

3.4. Malowanie sceny              24

3.5. Wycieczka              25

3.6. Przemiszczanie obserwatora              25

3.7. Punkty informacyjne (InfoPoints)              25

3.8. Obsługa klawiatury              26

4. Klasy i moduły              27

4.1. Klasa: CAnimationModule              27

4.1.1. CAnimationModule (int numberOfFrames, bool indep)              28

4.1.2. CAnimationModule (char *fileName)              28

4.1.3. void addFrame(frame *frame_)              30

4.1.4. void start()              30

4.1.5. void reset()              31

4.1.6. void stop()              31

4.1.7. bool finished()              31

4.1.8. void animate()              32

4.1.9. void animate(int delay)              32

4.2. Klasa: CAudioCtrl              34

4.2.1. CAudioCtrl(bool SoundOn)              34

4.2.2. ~CAudioCtrl()              34

4.2.3. Play(char *FileName, bool bLoop, int iMode)              35

4.2.4. Stop(char *FileName)              35

4.2.5. Manage()              36

4.2.6. HandleBackgroundMusic()              36

4.2.7. PlayMenu()              36

4.2.8. PlayTrip()              37

4.2.9. PlayFree()              37

4.2.10. InitBackgroundMusic()              38

4.2.11. StopMenu()              38

4.3. Klasa: CBkgMenuModule              39

4.3.1. CBkgMenuModule (int liczbaObrazow, char *animation, int delay)              39

4.3.2. void addImage(char *fileName)              39

4.3.3. void paint()              40

4.4. Klasa: CCd              41

4.4.1. CCd(char *LevelName)              41

4.4.2. ~CCd()              41

4.4.3. void CreateRoom(int iRoom)              42

4.4.4. void RoomSize(Swall W, bool bMode)              42

4.4.5. void SetTranslation(float *NewTranslation)              43

4.4.6. int min(int a, int b)              43

4.4.7. int max(int a, int b)              44

4.4.8. int GetRoomNumber(float fX, float fZ)              44

4.4.9. void AddObject(SWall W, int iRoom)              45

4.4.10. int isCollision(int X1, int Y1, int X2, int Y2)              45

4.4.11. int isCollision(float xp, float yp, float oxp, float oyp)              46

4.5. Klasa: CObiekt              47

4.5.1. void glMyCube(float size)              47

4.5.2. void glMyCube(float x, float y, float z)              47

4.5.3. void glMyCube(float x, float y, float z, float rozmiarTekstury)              48

4.5.4. void glMyCube(float x, float y, float z, char *Fr, char *Le,  char *Pr, char *Go, char *Do, char *Ty, float rozmiarTekstury,  bool smudge=false)              48

4.5.5. void glMyKula(float promien, float czescKuli,  int rozdzielczoscPionowa, int rozdzielczoscPozioma, bool strona)              49

4.5.6. void glMyRing(float promien, int kat, double rozmiar, int stacks)              50

4.5.7. void glMyWalec(float promien, int kat, float wysokosc, bool podstawa,  bool scianyBoczne, int stacks, bool strona)              50

4.5.8. void glMyWalec(float promien, int kat, float wysokosc, bool podstawa,  bool scianyBoczne, int poziomZmniejszeniaRozdzielnosci, int stacks,  bool strona)              51

4.6. Klasa: CSoundModule              52

4.6.1. CSoundModule *getSoundModule()              52

4.6.2. void play(char *fileName)              53

4.6.3. void play2(char *fileName)              53

4.7. Klasa: CTekst2DModule              54

4.7.1. int init(HDC hDC_, char *fontName, double fontSize_)              54

4.7.2. void PrintString(unsigned int base, char *str, double xPos, double yPos)              54

4.7.3. void PrintLines(int base, char *str, double xPos, double yPos, double vOdl)              55

4.8. Klasa: CTekst3DModule              56

4.8.1. int init(HDC hDC_, char *fontName, double fontDepth)              56

4.8.2. void PrintString(unsigned int base, char *str)              56

4.9. Klasa: CTextHandler              58

4.9.1. CTextHandler(char *filename)              58

4.9.2. ~CTextHandler()              58

4.9.3. char *ReadString(FILE *F)              59

4.9.4. CreateEmptyFile()              59

4.9.5. LoadFromFile()              59

4.9.6. SaveToFile()              60

4.9.7. SetText(int iNumber, char *string)              60

4.9.8. Char *GetText(int iNumber)              61

4.9.9. char * GetFileName()              61

4.10. Klasa: CTextureManager              62

4.10.1. static CTextureManager* getTextureManager()              62

4.10.2. void setMode(int mode)              63

...

Zgłoś jeśli naruszono regulamin