• No results found

För att utöka bilden av jämförelsen skulle algoritmen kunna implementeras i en mer kontrollerad miljö. En egenutvecklad miljö där det finns full kontroll över programmet och dess resursallokering skulle resultera i generella mätvärden som är mer relevanta för spel som skapas utanför Unity, men också för andra områden än spel.

Mätning av exekveringstid är högst beroende av vilken hårdvara som programmet utförs på.

Enligt Suh m.fl (2017) och Danielsson m.fl. (2017) kan det bero på bland annat dynamisk justering av klockhastighet och volt eller exempelvis hårdvarans förmåga att förutspå förgreningar i koden, funktioner vars stöd varierar bland olika processorer. En undersökning som breddar mätningarna till flera CPU- och GPU-modeller skulle kunna klargöra hur mycket hårdvara påverkar algoritmen och om GPU-anpassad kod spelar lika stor roll för olika GPU-modeller.

Implementering av någon av lösningarna i faktisk spelutveckling skulle bidra till en bättre bild kring hur bra metoderna fungerar i spelproduktion. Ett projekt på den storleken kan ge nya insikter då algoritmerna troligtvis kommer modifieras till spelstudions behov.

Modifiering av algoritmen skulle kunna utforska möjligheten att anpassa den till mer GPU-anpassad kod eller utveckling av en bättre renderings-algoritm för CPU-lösningen. En intressant del av ett sådant projekt är hur långt bort föreslagna förändringar ligger från implementeringarna som använts i denna undersökning och hur stor prestandaskillnad små eller stora modifikationer resulterar i.

Referenser

Andersson, M. (2016). ​Prestanda hos Realtidsväxande träd jämfört med statisk mesh. Kandidatuppsats, Institutionen för informationsteknologi. Skövde: Högskolan i Skövde.

URN: urn:nbn:se:his:diva-12371

Baele, X. & Warzée, N. (2005). Real Time L-System Generated Trees Based on Modern Graphics Hardware​. International Conference on Shape Modeling and Applications 2005 (SMI’ 05). ​Cambridge, USA 13-17 juni 2005, ss. 184-193. DOI: 10.1109/SMI.2005.38

Bakaus, P. (2015). 5 reasons for 60 fps. ​Medium, 18 maj.

https://medium.com/google-developers/5-reasons-for-60-fps-639b840a718

Beyer, D., Löwe, S., & Wendler, P. (2019). Reliable benchmarking: requirements and solutions. ​International Journal on Software Tools for Technology Transfer, 21(1),​ ss. 1-29. DOI: 10.1007/s10009-017-0469-y

Creswell, J. W. (2014). ​Research design: qualitative, quantitative, and mixed methods approaches. ​4. uppl., Los Angeles: SAGE Publications.

Danielsson, J., Jägemar, M., Behnam, M. & Sjödin, M. (2017). Investigating execution-characteristics of feature-detection algorithms. ​IEEE Conference on Emerging Technologies and Factory Automation. ​Limassol, Cypern 12-15 september 2017, ss. 1-4.

DOI: 10.1109/EFTA.2017.8247758

Eimandar, P. (2013). ​DirectX 11.1 Game Programming​. Birmingham: Packt Publishing.

Eriksson, S. (2017). ​God forskningssed. 2. uppl., Stockholm: Vetenskapsrådet. ISBN:

978-91-7307-352-3

Goldsmith, S., Aiken, A. & Wilkerson, D. (2007). Measuring Empirical Computational Complexity. ​Proceedings of the Symposium on Foundations of Software Engineering, Dubrovnik, Kroatien 3-7 september 2007, ss. 395-404.

Grubb, J. (2020). NPD: The top 20 best-selling games of the decade in the U.S. ​Venturebeat, 16 januari.

https://venturebeat.com/2020/01/16/the-top-20-best-selling-games-of-the-decade-in-the-u-s/

Hamon, L., Richard, E., Richard, P., Boumaza, R. & Ferrier, J.-L. (2012). RTIL-system: a Real-Time Interactive L-system for 3D interactions with virtual plants. ​Virtual Reality, 16(2), ss. 151-160. DOI: 10.1007/s10055-011-0193-y

Itch corp. (2020) ​Games made with Unity​. https://itch.io/games/made-with-unity [2020-03-12]

Kashkovsky, A., Shershnev, A. & Vashchenkov, P. (2017). Aspects of GPU performance in algorithms with random access. ​AIP Conference Proceedings, 1893(1)

DOI: 10.1063/1.5007505

Lipp, M., Wonka, P. & Wimmer, M. (2010). Parallel Generation of L-Systems. Computers &

Graphics, ​34(5), ss. 585-593. DOI: 10.1016/j.cag.2010.05.014

Mackin, K. J. (2019). Turtle graphics for early Java programming education. ​Artificial Life &

Robotics, ​24(3), ss. 345-351. DOI: 10.1007/s10015-019-00528-y

Magdics, M. (2009). Real-time Generation of L-system Scene Models for Rendering and Interaction. ​SCCG ‘09: Proceedings of the 25th Spring Conference on Computer Graphics.

Budmerice, Slovakien 23-25 april 2009, ss. 67-74. DOI: 10.1145/1980462.1980478

Pharr, M. (2005). ​GPU Gems 2: programming techniques for high-performance graphics and general-purpose computation. ​Boston: Addison-Wesley. ISBN: 0-321-33559-7

Prusinkiewicz, P. & Lindenmayer, A. (1990). ​The Algorithmic Beauty of Plants. New York:

Springer-Verlag. DOI: 10.1007/978-1-4613-8476-2

Prusinkiewicz, P., Lindenmayer, A. & Hanan, J. (1988). Developmental Models of Herbaceous Plants for Computer Imagery Purposes.​SIGGRAPH ‘88 Proceedings of the 15th annual conference on Computer graphics and interactive techniques. ​Atlanta, USA 1-5 augusti 1988, ss. 141-150. DOI: 10.1145/54852.378503

Red Dead Redemption 2 ​(2018). [datorprogram] Rockstar Games Inc.

Silc, J., Ungerer, T. & Robic, B. (2007). Dynamic branch prediction and control speculation.

International Journal of High Performance Systems Architecture​, 1(1), ss. 2-13 DOI: 10.1504/IJHPSA.2007.013287

Steinberger, M., Kenzel, M., Kainz, B., Wonka, P. & Schmalstieg, D. (2014). On-the-fly Generation and Rendering of Infinite Cities on the GPU. ​Computer Graphics Forum, 33(2), ss. 105-114. DOI: 10.1111/cgf.12315

Stenberg, C. (2012). ​Co-evolving niches in virtual Plant species: Exploring the niche forming capabilities of coevolving plants in a virtual environment. ​Kandidatuppsats, Institutionen för kommunikation och information. Skövde: Högskolan i Skövde.

URN: urn:nbn:se:his:diva-6379

Suh, Y.-K., Snodgrass, R. T., Kececioglu, J. D., Downey, P. J., Maier, R. S., & Yi, C. (2017).

EMP: execution time measurement protocol for compute-bound programs. ​Software:

Practice & Experience, ​47(4), ss. 559-597. DOI: 10.1002/spe.2476

The Legend of Zelda: Breath of the Wild​ (2017). [datorprogram] Nintendo Co., Ltd

Unity 2019.3 (2020). [datorprogram] Unity Technologies. Tillgänglig på Internet:

https://unity.com.

Vlad Grigore, S. & Sabou, A. (2017). Real-time Guided Procedural Terrain Generation.

RoCHI 2017 - International Conference on Human-Computer Interaction. Craiova, Rumänien 11-12 september 2017, ss. 159-162

Appendix A - Mätdata

Tabell 4 ​Medelvärdet av exekveringstid i millisekunder för tolkning på CPU’n, utfört på L-system med förgreningar. Raden representerar upplösning och kolonner L-systemets

längd.

18 89 379 1551 6263 25159

32 - 1024 0,01 0,02 0,04 0,17 0,71 2,81

Tabell 5 ​Medelvärdet av exekveringstid i millisekunder för tolkning på GPU’n, utfört på L-system med förgreningar. Rader representerar upplösning och kolonner L-systemets

längd.

18 89 379 1551 6263 25159

32 0,91 0,87 0,99 1,29 1,85 6,77

64 0,82 0,84 0,94 1,30 2,77 8,49

128 0,84 0,87 1,08 1,67 4,27 8,86

256 0,92 1,26 2,91 7,63 7,53 16,0

512 0,82 2,17 2,20 5,17 15,49 62,86

1024 1,93 7,03 10,0 15,62 62,74 252,87

Tabell 6 ​Medelvärdet av exekveringstid i millisekunder för tolkning och rendering på CPU’n, utfört på L-system med förgreningar. Rader representerar upplösning och kolonner

L-systemets längd.

18 89 379 1551 6263 25159

32 0,06 0,07 0,13 0,35 1,30 5,05

64 0,11 0,12 0,18 0,41 1,35 5,11

128 0,31 0,32 0,38 0,61 1,59 5,31

256 1,09 1,14 1,25 1,41 2,36 6,15

512 4,16 4,30 4,23 4,50 5,46 9,26

1024 19,99 19,26 19,82 19,59 20,57 25,03

Tabell 7 ​Medelvärdet av exekveringstid i millisekunder för tolkning och rendering på GPU’n, utfört på L-system med förgreningar. Rader representerar upplösning och kolonner

L-systemets längd.

18 89 379 1551 6263 25159

32 0,61 0,64 0,82 1,49 4,15 4,13

64 0,62 0,65 0,84 1,50 4,17 4,47

128 0,66 0,69 0,98 2,10 2,22 4,75

256 0,73 1,32 3,81 4,02 4,96 19,27

512 0,92 3,19 2,22 4,96 18,79 76,40

1024 2,04 4,94 8,16 19,30 76,85 308,94

Tabell 8 ​Medelvärdet av exekveringstid i millisekunder för tolkning på CPU’n, utfört på L-system utan förgreningar. Raden representerar upplösning och kolonner L-systemets

längd.

10 50 250 1250 6250 31250

32 - 1024 0,01 0,01 0,03 0,14 0,67 3,32

Tabell 9 ​Medelvärdet av exekveringstid i millisekunder för tolkning på GPU’n, utfört på L-system utan förgreningar. Rader representerar upplösning och kolonner L-systemets

längd.

10 50 250 1250 6250 31250

32 0,63 0,66 0,73 1,10 2,98 3,97

64 0,63 0,61 0,78 1,08 2,35 6,28

128 0,77 0,80 0,83 1,19 2,84 7,73

256 0,83 0,86 1,16 2,49 6,44 13,76

512 0,89 1,17 2,09 7,75 11,51 53,10

1024 1,77 2,36 6,78 11,12 42,46 212,68

Tabell 10 ​Medelvärdet av exekveringstid i millisekunder för tolkning och rendering på CPU’n, utfört på L-system utan förgreningar. Rader representerar upplösning och kolonner

L-systemets längd.

10 50 250 1250 6250 31250

32 0,13 0,15 0,2 0,49 1,86 8,91

64 0,18 0,19 0,26 0,53 1,91 8,81

128 0,45 0,46 0,51 0,85 2,23 9,21

256 1,27 1,41 1,45 1,76 3,10 10,40

512 4,65 4,72 4,7 5,02 6,39 13,35

1024 17,94 17,97 18,14 18,48 19,54 26,24

Tabell 11 ​Medelvärdet av exekveringstid i millisekunder för tolkning och rendering på GPU’n, utfört på L-system utan förgreningar. Rader representerar upplösning och kolonner

L-systemets längd.

10 50 250 1250 6250 31250

32 0,60 0,66 0,75 1,30 4,06 5,07

64 0,60 0,66 0,76 1,31 4,17 5,06

128 0,62 0,69 0,83 1,59 4,91 5,46

256 0,70 0,81 1,40 4,48 4,74 19,27

512 0,78 1,24 3,47 4,44 15,62 77,84

1024 1,65 3,43 4,08 12,62 62,52 311,95

Tabell 12 ​Minnesförbrukning (i megabyte) för tolkning och rendering på L-system med förgreningar, exekverat på CPU’n.

Upplösni ng

32 64 128 256 512 1024

Minnesåt gång

10,13 10,89 11,49 12,27 19,31 43,77

Tabell 13 ​Minnesförbrukning (i megabyte) för tolkning och rendering på L-system med förgreningar, exekverat på GPU’n.

Längd 18 89 379 1551 6263 25159

Minnesåt gång

6,0 6,0 6,0 6,01 6,01 6,1

Related documents