Существует множество идей и подходов, и один из них лучше всего зависит от вашего приложения, бюджета, клиента и сервера.
Если вы выполняете рендеринг на стороне сервера, большое преимущество заключается в том, что вы управляйте графическим процессором, доступной памятью, версией ОС и драйвера и т. д. c, поэтому проблемы с кроссплатформенностью или версией ОС практически исчезнут.
Но теперь вы отправляете каждый кадр пиксель за пикселем пользователю. (И MPEG-4 не очень хорош при сжатии визуализации, а не видео.)
И у вас задержка в сети при каждом нажатии клавиши, или щелчке мыши, или движении мыши.
А если десятки? сотни? тысячи? из людей, которые хотят использовать ваше приложение одновременно, у вас должно быть достаточно серверной ЦП / ГП для обработки такого количества пользователей.
Так что да, это сложно и дорого реализовать, независимо от того, что вы выберете. Помимо WebRT C, вы также можете взглянуть на программное обеспечение для разделения экрана, такое как VN C. Потоковая трансляция игр Nvidia может быть более подходящей для изучения технологией, поскольку между 3D-играми и 3D-визуализацией очень много общего, но не ожидайте, что это будет волшебная c пуля.
Вы смотрели на WebGL? Это слегка урезанная EGL-версия OpenGL для JavaScript. Если вы не интенсивно используете расширенные возможности OpenGL 4, большая часть кода OpenGL C / C ++ без особых затруднений преобразуется в JavaScript и WebGL. И почти каждый веб-браузер на pl anet работает с WebGL, даже если (как Apple) производитель платформы не рекомендует обычный OpenGL. Большим преимуществом является то, что весь рендеринг и интерактивность выполняются на клиенте, поэтому задержка не является проблемой, и вы не платите за процессор / графический процессор, если много людей хотят запустить его одновременно.
Надеюсь, это поможет.