Аналіз ефективності роботи програмних засобів для 3D-рендерингу в сфері розроблення відеоігор
Анотація
Наявність великої кількості доступних програмних засобів для тривимірного рендерингу дає більше простору для сучасних розробників, але й ставить їх перед непростим вибором найкращого засобу для реалізації їхніх потреб. Проаналізовано та здійснено порівняння продуктивності популярних програмних засобів для тривимірного рендерингу під час розроблення відеоігор. Для цього було розроблено простий ігровий рушій на базі архітектури ECS (англ. Entity-Component-System) з можливістю гнучкої конфігурації експериментальних сценаріїв на підставі JSON-файлів. Для порівняння продуктивності, в ігровий рушій було інтегровано рендеринг моделей у obj-форматі на підставі трьох інтерфейсів API (англ. Application Programming Interface), а саме: DirectX 11, OpenGL та Vulkan. Експерименти було проведено на двох персональних комп'ютерах з інтегрованим графічним процесором Intel HD Graphics 520 та дискретним графічним процесором Nvidia GeForce RTX 4060. Вони містили рендеринг статичних та динамічних сценаріїв з використанням трьох типів тривимірних моделей різного розміру у кількостях від 1 до 120 – на інтегрованому графічному процесорі та від 1 до 2000 – на дискретному. Для кожного з виконаних спостережень було виміряно такі метрики продуктивності, як кількість оброблених кадрів за секунду, завантаженість графічного процесора, використання пам'яті графічного процесора, використання оперативної пам'яті та інші. За допомогою статистичних тестів було виявлено та підтверджено перевагу у швидкодії інтерфейсу OpenGL за відтворення експериментальних сценаріїв на інтегрованій відеокарті, як для моделей малого розміру, так і великого. Для дискретної відеокарти за рендерингу моделей великого розміру найкращі результати продемонстрував інтерфейс Vulkan, а за рендерингу моделей малого розміру – інтерфейс DirectX. У всіх протестованих сценаріях інтерфейс DirectX показав найменші витрати оперативної пам'яті та пам'яті графічного процесора. Результати дослідження будуть корисними для розробників відеоігор та інших високопродуктивних додатків у сфері тривимірного рендерингу. Також розроблений рушій, завдяки своїй гнучкості, дає змогу у майбутньому розширити перелік досліджених засобів рендерингу.
Завантаження
Посилання
Anglada, M., de Lucas, E., Parcerisa, J. M., Aragón, J. L., Marcuello, P., & González, A. (2019). Rendering elimination: Early discard of redundant tiles in the graphics pipeline. 2019 IEEE International Symposium on High Performance Computer Architecture (HPCA), pp. 623–634. https://doi.org/10.48550/arXiv.1807.09449
Briggs, P., & Torczon, L. (1993). An efficient representation for sparse sets. ACM Letters on Programming Languages and Systems (LOPLAS), 2(1–4), 59–69. https://doi.org/10.1145/176454.176484
Claypool, K. T., & Claypool, M. (2007). On frame rate and player performance in first person shooter games. Multimedia systems, 13(1), 3–17. https://doi.org/10.1007/s00530-007-0081-1
D'Agostino, R. B. (2017). Goodness-of-Fit-Techniques. London: Taylor and Francis Group. 1st Edition, 576 p. URL: https://www.routledge.com/Goodness-of-Fit-Techniques/DAgostino/p/book/9780367580346?srsltid=AfmBOorQEIl545MbztcpSke19EBa0opSVP1KK49vb35rdEFhJyBpZGb0
Götz, D., & von Mammen, S. (2023). Modulith: A Game Engine Made for Modding. Proceedings of the 18th International Conference on the Foundations of Digital Games, 1–8. https://doi.org/10.1145/3582437.3582486
Håkansson, T. (2020). A Comparison of Optimal Scanline Voxelization Algorithms. URL: https://www.diva-portal.org/smash/get/diva2:1459330/FULLTEXT01.pdf
Härkönen, T. (2019). Advantages and Implementation of Entity-Component-Systems. URL: https://trepo.tuni.fi/bitstream/handle/123456789/27593/H%C3%A4rk%C3%B6nen.pdf
Koulaxidis, G., & Xinogalos, S. (2022). Improving mobile game performance with basic optimization techniques in unity. Modelling, 3(2), 201–223. https://doi.org/10.3390/modelling3020014
Lujan, M., Baum, M., Chen, D., & Zong, Z. (2019). Evaluating the performance and energy efficiency of opengl and vulkan on a graphics rendering server. 2019 International Conference on Computing, Networking and Communications (ICNC), pp. 777–781. https://doi.org/10.1109/ICCNC.2019.8685588
Marin, C., Chover, M., & Sotoca, J. M. (2019). Prototyping a game engine architecture as a multi-agent system. WSCG Proceedings Part II. Computer Science Research Notes, CSRN 2901, 27–34. https://doi.org/10.24132/CSRN.2019.2902.2.4
Mishra, P., Singh, U., Pandey, C., Mishra, P., & Pandey, G. (2019). Application of student's t-test, analysis of variance, and covariance. Annals of Cardiac Anaesthesia, 22(4), article ID 407. https://doi.org/10.4103/aca.ACA_94_19
Nilssen, M. G. B. (2023). Vulkan Port of OpenGL-based CUDA Snow Simulation, 131 p. URL: https://ntnuopen.ntnu.no/ntnu-xmlui/handle/11250/3125164
Popovski, F., Spasov, N., Mijakovska, S., & Nalevska, G. P. (2020). Comparison of rendering processes on 3D model. International Journal of Computer Science & Information Technology (IJCSIT), Vol. 12, 19–28. https://doi.org/10.5121/ijcsit.2020.12502
Sans, F., & Carmona, R. (2017). A comparison between GPU-based volume ray casting implementations: fragment shader, compute shader, OpenCL, and CUDA. CLEI Electronic Journal, 20(2), 7–1. https://doi.org/10.19153/cleiej.20.2.7
Schütz, M., Kerbl, B., & Wimmer, M. (2021). Rendering point clouds with compute shaders and vertex order optimization. Computer Graphics Forum, 40(4), 115–126. https://doi.org/10.1111/cgf.14345
Schütz, M., Kerbl, B., & Wimmer, M. (2022). Software rasterization of 2 billion points in real time. Proceedings of the ACM on Computer Graphics and Interactive Techniques, 5(3), 1–17. https://doi.org/10.1145/3543863
Schütz, M., Mandlburger, G., Otepka, J., & Wimmer, M. (2020, May). Progressive real‐time rendering of one billion points without hierarchical acceleration structures. Computer Graphics Forum, 39(2), 51–64. https://doi.org/10.1111/cgf.13911
Sultanov, A., Protsyk, M., Kuzyshyn, M., Omelkina, D., Shevchuk, V., & Farenyuk, O. (2022). A statistics-based performance testing methodology: a case study for the I/O bound tasks. 2022 IEEE 17th International Conference on Computer Sciences and Information Technologies (CSIT), pp. 486–489. https://doi.org/10.1109/CSIT56902.2022.10000626
Vinutha, H. P., Poornima, B., & Sagar, B. M. (2018). Detection of Outliers Using Interquartile Range Technique from Intrusion Dataset. Information and Decision Sciences: Proceedings of the 6th international conference on ficta, pp. 511–518. https://doi.org/10.1007/978-981-10-7563-6_53
Xiao, L., Nouri, S., Chapman, M., Fix, A., Lanman, D., & Kaplanyan, A. (2020). Neural supersampling for real-time rendering. ACM Transactions on Graphics (TOG), 39(4), 142–148. https://doi.org/10.1145/3386569.3392376
Xie, F., Mishchuk, P., & Hunt, W. (2021). Real time cluster path tracing. In SIGGRAPH Asia 2021 Technical Communications, 1–4. https://doi.org/10.48550/arXiv.2110.08913



