Зростання популярності генерування ландшафтів планетоїдів у відеоіграх, фільмах, інструментах симуляції посилює вимоги до якості, унікальності, масштабованості результатів візуалізації, які, водночас, зумовлюють підвищення вимог до обчислювальних ресурсів апаратних засобів. Запропоновано рішення щодо архітектури програмного застосунку для генерування ландшафтів планетоїдів, яке базується на поєднанні розподіленої обчислювальної системи і застосуванні паралелізму на підставі алгоритму Morsel-Driven Query Execution для подолання обмежень апаратного забезпечення. Розроблено обчислювальну модель генерування ландшафтів планетоїдів, яка містить компоненти: основний сервер, який підтримує gRPC з’єднання; сервери-працівники, які паралельно виконують завдання процедур генерування ландшафтів планетоїдів; геопросторова база даних, яка містить векторні дані згенерованих планетоїдів; бінарне сховище тривимірних моделей, які накладаються на згенерований ландшафт планетоїдів; tileset-сховище для зберігання растрових даних, необхідних для генерування; користувачі. Застосовано програмні агенти для уніфікації набору алгоритмів як єдиної сутності, що дає змогу вирішити проблему розширюваності програмного засобу. Для надсилання та опрацювання запитів у логічні канали, створені для послідовності агентів, використано розподілену систему обміну повідомленнями – брокер. Він базується на підході балансування навантаження для доставки запитів на генерування ландшафту до фонових процесів. Проведено обчислювальні експерименти для аналізу швидкодії затосунку при різних кількостях фонових процесів (1, 2; 4; 8; 16) та розмірах сегменту 512, 2048 пікселів. Отримано найменшу середню тривалість генерування одного сегменту при його розмірі 512 пікселів та кількості сегментів 64. Зменшено витрати процесорного часу від 2 до 5 разів, порівняно із застосунком, який використовує підхід збереження запитів у базі даних, за рахунок комплексного архітектурного рішення. Проведено порівняння роботи розробленого програмного засобу із застосунком MapGen. Ефективність рішення особливо помітна при великих обсягах даних, що визначається кількістю сегментів та їх розміром у пікселах.
[1] Cassol, V. J., Marson, F. P., Vendramini, M., Paravisi, M., Bicho, A. L., Jung, C. R., & Musse, S. R. (2011). Simulation of autonomous agents using terrain reasoning. In Proc. the Twelfth IASTED International Conference on Computer Graphics and Imaging (CGIM 2011), Innsbruck, Austria. IASTED/ACTA Press. http://dx.doi.org/10.2316/P.2011.722-017
[2] Hyttinen, T., Mäkinen, E., & Poranen, T. (2017). Terrain synthesis using noise by examples. In Proceedings of the 21st International Academic Mindtrek Conference. (pp. 17–25). https://doi.org/10.1145/3131085.3131099
[3] Kamal, K. R., & Uddin, Y. S. (2007). Parametrically controlled terrain generation. In Proceedings of the 5th international conference on Computer graphics and interactive techniques in Australia and Southeast Asia. (pp. 17–23). https://doi.org/10.1145/1321261.1321264
[4] Henham, W., Holloway, D., & Panton, L. (2016). Broadband acoustic scattering with modern aesthetics from random 3D terrain surfaces generated using the Fourier Synthesis algorithm. Acoustics 2016: The Second Australasian Acoustical Societies Conference. (pp. 203–212).
[5] Spick, R. J., Cowling, P., & Walker, J. A. (2019). Procedural generation using spatial GANs for region-specific learning of elevation data. 2019 IEEE Conference on Games (CoG), (pp. 1–8). IEEE. https://doi.org/10.1109/CIG.2019.8848120
[6] Castle, C. J., & Crooks, A. T. (2006). Principles and concepts of agent-based modelling for developing geospatial simulations.
[7] Hofmann, P., Andrejchenko, V., Lettmayer, P., Schmitzberger, M., Gruber, M., Ozan, I., & Blaschke, T. (2016). Agent based image analysis (ABIA)-preliminary research results from an implemented framework. https://doi.org/10.3990/2.455
[8] Jahanbani, M., Vahidnia, M. H., & Aspanani, M. (2022). Geographical agent-based modeling and satellite image processing with application to facilitate the exploration of minerals in Behshahr. Iran. Arabian Journal of Geosciences, 15(9), 901. https://doi.org/10.1007/s12517-022-10165-8
[9] Ali, S. M., Doolan, M., Wernick, P., & Wakelam, E. (2018). Developing an agent-based simulation model of software evolution. Information and Software Technology, 96, 126–140. https://doi.org/10.1016/j.infsof.2017.11.013
[10] Aderum, O., & Åkerlund, J. (2016). Controllable Procedural Game Map Generation using Software Agents and Mixed Initiative.
[11] Roohitavaf, M., Ren, K., Zhang, G., & Ben-Romdhane, S. (2019). LogPlayer: Fault-tolerant Exactly-once Delivery using gRPC Asynchronous Streaming. https://doi.org/10.48550/arXiv.1911.11286
[12] Krämer, M., & Senner, I. (2015). A modular software architecture for processing of big geospatial data in the cloud. Computers & Graphics, 49, 69–81. https://doi.org/10.1016/j.cag.2015.02.005
[13] Leis, V., Boncz, P., Kemper, A., & Neumann, T. (2014). Morsel-driven parallelism: a NUMA-aware query evaluation framework for the many-core age. Proceedings of the 2014 ACM SIGMOD international conference on Management of data, (pp. 743–754). https://doi.org/10.1145/2588555.2610507
[14] Jacobsen, R. H., Jeppesen, J. H., Laursen, K. F., Skovsgaard, J., Jensen, H. N., & Toftegaard, T. S. (2017). A scalable cloud computing infrastructure for geospatial data analytics for change detection. 2017 Euromicro Conference on Digital System Design (DSD), (pp. 403–410). IEEE. https://doi.org/10.1109/DSD.2017.49
[15] Jamzuri, E. R., Mandala, H., Analia, R., & Susanto, S. (2022). Cloud-Based Architecture for YOLOv3 Object Detector using gRPC and Protobuf. Jurnal Teknik Elektro, 14(1), 18–23. https://doi.org/10.15294/jte.v14i1.36537
[16] Minailenko R., Sobinov O., Konoplitska-Slobodenyuk K., Buravchenko K. (2021). Architectural Features of Distributed Computing Systems. Central Ukrainian Scientific Bulletin. Technical Sciences, 35(4), 16–23. https://doi.org/10.32515/2664-262X.2021
[17] Sharvari, T., & Sowmya Nag, K. (2019). A study on Modern Messaging Systems – Kafka. RabbitMQ and NATS Streaming. https://doi.org/10.48550/arXiv.1912.03715
[18] Wu, H., Shang, Z., & Wolter, K. (2019, August). Performance prediction for the Apache Kafka messaging system. 2019 IEEE 21st International Conference on High Performance Computing and Communications; IEEE 17th International Confeence on Smart City; IEEE 5th International Conference on Data Science and Systems (HPCC/SmartCity/DSS), (pp. 154–161). IEEE. https://doi.org/10.1109/HPCC/SmartCity/DSS.2019.00036
[19] Levus, Y., Westermann, R., Morozov, M., Moravskyi, R., & Pustelnyk, P. (2022). Using Software Agents in a Distributed Computing System for Procedural Planetoid Terrain Generation. 2022 IEEE 17th International Conference on Computer Sciences and Information Technologies (CSIT). (pp. 446–449). IEEE. https://doi.org/10.1109/CSIT56902.2022.10000868
[20] Doran, J., & Parberry, I. (2010). Controlled procedural terrain generation using software agents. IEEE Transactions on Computational Intelligence and AI in Games, 2(2), 111–119. https://doi.org/10.1109/TCIAIG.2010.2049020
[21] Lim, F. Y., Tan, Y. W., & Bhojan, A. (2022). Visually improved erosion algorithm for the procedural generation of tile-based terrain. arXiv preprint arXiv:2210.14496. https://doi.org/10.5220/0010799700003124
[22] Gasch, C., Chover, M., Remolar, I., & Rebollo, C. (2020). Procedural modelling of terrains with constraints. Multimedia Tools and Applications, 79, 31125–31146. https://doi.org/10.1007/s11042-020-09476-3
[23] Mete, M. O., & Yomralioglu, T. (2021). Implementation of serverless cloud GIS platform for land valuation. International Journal of Digital Earth, 14(7), 836–850. https://doi.org/10.1080/17538947.2021.1889056
[24] Fanini, B., Pescarin, S., & Palombini, A. (2019). A cloud-based architecture for processing and dissemination of 3D landscapes online. Digital Applications in Archaeology and Cultural Heritage, 14, e00100. https://doi.org/10.1016/j.daach.2019.e00100