Привет Двач!Задача такая: нужно на сервере рендерить 3д мир и затем все это отдавать наблюдателю-обывателю в виде потока, в браузер.В общем, тут масса вопросов:Какую технологию использовать? Что-то типа WebGL и Websocket или тупо поток картинок-кадров?Тут даже мне, как ветерану гугл-поиска, тяжеловато сформировать корректные вопросы поисковику.Хотелось бы использовать уже готовые движки, дабы не городить свой велосипед, да и форкать всяко легче. Ну и естественно никакой пропиертарщины.Алсо, не так давно нашел замечательный опенсурс двиг Urho3D, но не знаю, подойдет ли он конкретно для этой задачи.
Вот еще кое что добавлю:Взаимодействие клиент-сервер минимальное и одностороннее, т.е. клиент никак не может влиять на события на сервере, воможно только управление камерой. Но, не исключено что подобный функционал будет в итоге, хотя бы в перспективе.Просмотрщик - не обязательно бразуер. Браузер это как нечто дефолтное и то, что есть у всех.
>>1067405 (OP)в чем проблема ренденить в h264?
>>1067460>ренденить в h264Ты имеешь ввиду жать поток кадров этим кодеком и уже гнать его к клиенту?Если так, то такая идея была. Возможно, так и сделаю, если не найду альтернативы.
>>1067405 (OP)Посмотри как работает X server. По сути делает все то что ты описал.Загвоздка может быть в том, что есть ты собрался рендерить на GPU то тебе нужно будет трансферить память с GPU на CPU, что конечно может сильно сказаться на производительности.Ну а жальше ты полученые пиксели может сжимать в какой угодно тебе формат и передавать в виде потока байт, на клиенте расжимая это и т.п.В общем как уже предлагали h264 и т.п.Но учти, вся эта телега уже будет иметь не real-time latency, т.к. CPU придется ждать комманды по сети, после отвправлять все нужные изменения на GPU, после с ГПУ обратно, сжимать, отправлять по сети обратно, клиенту разжимать все это и только потом отображать на экран.
>>1067477Ну, а какая может быть альтернатива? Любой другой подход это безумный оверхед.
>>1067482О, про иксы спасибо, гляну.>рендерить на GPUскорее всего буду писать софтварный рендер, т.к. серверы с GPU редкая и довольно дорогая штука.
>>1067482>не real-time latencyА вот это вот печально, т.к. расчет идет именно на реалтайм.>CPU придется ждать комманды по сетиИх будет минимум или вообще не будет, т.к. связь односторонняя, стрим по сути.Ну и к тому же, собираюсь рендерить на cpu.
>>1067769>А вот это вот печально, т.к. расчет идет именно на реалтайм.Если ты будешь стримить видео в 360 градусов, то лаг в полсекунды пользователь незаметит. Главное, чтобы камера плавно вращалась, и видео поток без сбоев шел.
>>1067769Посмотри если у тебя процессор на сервере имеет intel quick sync то ты через интелловский сдк сможешь почти без нагрузки гнать h264 поток.
>>1067776>видео в 360 градусовНет, скорее всего камера будет почти статична, с изометрической перспективой(привет первым фоллачам и прочим рпг), и, возможно, автозумом. Но за идею спасибо.>>1067825Спасибо, возьму на заметку.
>>1067410>воможно только управление камерой20 клиентов положат сервер.Рендери на клиентах через WebGL
>>1067846Такой вариант так же рассматривался.В целом, камера будет статична.Выбор:Рендерить на сервере(софт рендер) и отдавать готовый поток клиенту или же при инициализации передавать клиентам сцену со всеми моделями а затем уже с сервера гнать поток координат и прочего клиенту.Оба подхода имеют место быть.
>>1067883Нахуя тебе вообще рендерить на сервере что то? Ты понимаешь что софтварный рендер 3д сцены это сложная задача для CPU? Есть ты тем более будешь писать свой рендер то наверняка он у тебя будет очень медленный. Потом передавать поток даже в 720p это уже требует где-то 1-2 мбита/сек по сети.Уже пара клиентов просто положат твой сервер.А один раз передать меши и нужные текстуры со шейдерами на клиент в webgl который будет все это рендерить это практически ничего не стоит.Не понимаю вообще нахуя рендерить что то на сервере.
>>1067900У меня как раз таки этот вариант с webgl с самого начала в голове был.Просто задача довольно специфическая - сервер постоянно работает и там происходят какие-то процессы, симуляция иначе говоря. А клиенты просто подключаются и наблюдают этот процесс.
>>1067911> там происходят какие-то процессы>А клиенты просто подключаются и наблюдают этот процесс.И в чем проблема передавать текущее состояние твоего процесса в виде набора параметров?Короче описывай полностью задачу, щас будем решать.
>>1067918Да задача в общем то уже почти описана. Попросту говоря, это симуляция небольшой "вселенной".Конкретно, группа людей, они охотятся, выживают, как-то общаются, и все в таком духе.Это, кстати, чем-то напоминает SpatialOS.Думаю, здесь не обойдется без какой-нибудь нейросети, но впрочем об этом пока рано.Сейчас я занят тем, что подготавливаю морфинг-модели людей(динамическая генерация особей с разными параметрами роста, веса, генетики, т.е. внешние черты лица, телосложение, и т.д; динамический рост и изменение в процессе симуляции)Просто заранее надо определиться с архитектурой.
>>1067927Это получается что разные зрители будут наблюдать с разных позиций? Как оно вяжется с тем что камера статична?
>>1067930Если делать на WebGL, то динамическую. Если же потоком - то статика с автозумом.
>>1067932Статика мне кажется будет лучше смотреться, у всех юзеров примерно одинакого, а вот с webgl могут быть разные перфомансы.
>>1067933>разные перфомансыНапример?
>>1067934Ну у кого-то быстрее рендерится локально, у кого-то медленнее. Статичное видео рендерится примерно одинакого в 2к17 у всех.
>>1067927Ну так ты же по каким-то параметрам собрался все это рендерить на серваке? Сделай то же самое только с рендерингом на клиенте через webgl
>>1067938К этому варианту и склоняюсь. У меня просто с этим небольшая каша в голове.
>>1067405 (OP)>все это отдавать наблюдателю-обывателю в виде потока, в браузер.>Какую технологию использовать? Что-то типа WebGL и Websocket или тупо поток картинок-кадров?>Тут даже мне, как ветерану гугл-поиска, тяжеловато сформировать корректные вопросы поисковику.Тег <VIDEO>, используй, творобушек.Поток vp9 гони, или x264
>>1067927Это похоже на игру. А игры рендерятся не на серверах, как ты понимаешь.
>>1067883>воможно только управление камерой>В целом, камера будет статична.Ты определись уже!
>>1067965Всегда проигрываю с залетных веб макак, которые услышали звон, но по сабжу нихуя не знают но все таки решают выебнуться своей неграмотностью.
>>1068001>Всегда проигрываю с залетных веб макак, которые услышали звон, но по сабжу нихуя не знают но все таки решают выебнуться своей неграмотностью. Обоснуй.ОПу нужно гнать потоковое видео в бравзер, и судя по посту, у него проблема именно с браузером.Ну так я ему указал вроде верно на единственно верное решение.Если же ОП спрашивал не это, то он не понимает основ работы онлайн игр, и ему нужно гуглить эту тему.Или я неправ?