Отображение картинки с экрана на блоке

1,976
68
221
Доброго времени суток, уважаемые.
Мне нужно сделать шлем с камерой, который можно "привязать" к определённому блоку нажатием ПКМ и на этом блоке будет "прямая трансляция" видео со шлема.
А сам вопрос в следующем. Подскажите пожалуйста, как отобразить на блоке то, что в данный момент видит игрок у себя на экране?
Надеюсь, это возможно.
 
Это не совсем то, что нужно. Нужен именно "эффект" камеры, как у роботов-разведчиков, чтобы, допустим, на сервере любой игрок мог видеть то, что видит привязанная к блоку камера, одетая в слот шлема определённого игрока. И если камера поменяет владельца, то картинка тоже должна измениться.Но спасибо и за это, может тоже пригодится.
 
Тут ещё и постоянный апдейт чанков камеры нужен :\
 
Уже несколько раз поднимали ЭТУ же тему и обсуждали.
У тебя с памятью совсем плохо?
 
Agravaine написал(а):
Ну как на экране рендерить экран другого игрока - это понятно, а вот на блоке надо пробовать...
На самом деле, как рендерить экран другого игрока - это главная проблема. Нужно ковырять сервер, чтобы он отправлял клиенту чанки вокруг другого игрока. Нужно ковырять клиент, чтобы он не выгружал эти чанки. Полагаю, что проблем возникнет просто уйма.

А отрендерить изображение с экрана на блоке элементарно. Рисуешь мир от лица другого игрока, сохраняешь в текстуру, рисуешь свой мир и используешь эту текстуру при отрисовке тайл энтити. Ссылку на то, как сохранить экран в текстуру, здесь уже давали.

Правда, есть неприятный момент - это фпс упадет вдвое :p С прицелами аналогичная идея намного интереснее, потому что там копируется с экрана уже отрисованное изображение и нагрузка увеличивается незначительно.
 
GloomyFolken написал(а):
Agravaine написал(а):
Ну как на экране рендерить экран другого игрока - это понятно, а вот на блоке надо пробовать...
На самом деле, как рендерить экран другого игрока - это главная проблема. Нужно ковырять сервер, чтобы он отправлял клиенту чанки вокруг другого игрока. Нужно ковырять клиент, чтобы он не выгружал эти чанки. Полагаю, что проблем возникнет просто уйма.

А отрендерить изображение с экрана на блоке элементарно. Рисуешь мир от лица другого игрока, сохраняешь в текстуру, рисуешь свой мир и используешь эту текстуру при отрисовке тайл энтити. Ссылку на то, как сохранить экран в текстуру, здесь уже давали.

Правда, есть неприятный момент - это фпс упадет вдвое :p С прицелами аналогичная идея намного интереснее, потому что там копируется с экрана уже отрисованное изображение и нагрузка увеличивается незначительно.
А почему не сделать так, что-бы клиент мог при запросе отправлять своё изображение на сервер, а потом на просящий клиент?
[merge_posts_bbcode]Добавлено: 06.06.2015 10:01:39[/merge_posts_bbcode]

Скорее вопрос, можно-ли сделать так ;D
 
Отправка изображение будет скорее всего через Java, так-же нужно определиться какое изображение он будет отправлять. Если он будет отправлять изображение (каждый пиксиль: его цвет и её координаты на изображении [red, green, blue, x, y]) по размеру экрана, то это будет большое сообщение будет, отправка идти будет каждый тик и из-за этого сервер может из-за этого лагать из-за большого размера изображения и и частота обновления будет маленькой (20 кадров в секунду). По-этому, я так думаю, что лучше не отправлять не известно какое изображение каждый тик, когда может выполнить это клиент и с большей частотой обновления изображения.
 
Да, заправляет грузить чанки, ставим в них небольшую энтити, рендерим в фреймбуффер от лица той энтити и рисуем фреймбуффер на тайле.
 
svk написал(а):
GloomyFolken написал(а):
Agravaine написал(а):
Ну как на экране рендерить экран другого игрока - это понятно, а вот на блоке надо пробовать...
На самом деле, как рендерить экран другого игрока - это главная проблема. Нужно ковырять сервер, чтобы он отправлял клиенту чанки вокруг другого игрока. Нужно ковырять клиент, чтобы он не выгружал эти чанки. Полагаю, что проблем возникнет просто уйма.

А отрендерить изображение с экрана на блоке элементарно. Рисуешь мир от лица другого игрока, сохраняешь в текстуру, рисуешь свой мир и используешь эту текстуру при отрисовке тайл энтити. Ссылку на то, как сохранить экран в текстуру, здесь уже давали.

Правда, есть неприятный момент - это фпс упадет вдвое :p С прицелами аналогичная идея намного интереснее, потому что там копируется с экрана уже отрисованное изображение и нагрузка увеличивается незначительно.
А почему не сделать так, что-бы клиент мог при запросе отправлять своё изображение на сервер, а потом на просящий клиент?
[merge_posts_bbcode]Добавлено: 06.06.2015 10:01:39[/merge_posts_bbcode]

Скорее вопрос, можно-ли сделать так ;D
Можно-то можно, но точно не стоит :D
Стриминг несжатого видео 1920х1080 хотя бы в 60 фпс - это 1920*1080*3*60=373 МБ / сек.
 
GloomyFolken написал(а):
Agravaine написал(а):
Ну как на экране рендерить экран другого игрока - это понятно, а вот на блоке надо пробовать...
На самом деле, как рендерить экран другого игрока - это главная проблема. Нужно ковырять сервер, чтобы он отправлял клиенту чанки вокруг другого игрока. Нужно ковырять клиент, чтобы он не выгружал эти чанки. Полагаю, что проблем возникнет просто уйма.

А отрендерить изображение с экрана на блоке элементарно. Рисуешь мир от лица другого игрока, сохраняешь в текстуру, рисуешь свой мир и используешь эту текстуру при отрисовке тайл энтити. Ссылку на то, как сохранить экран в текстуру, здесь уже давали.

Правда, есть неприятный момент - это фпс упадет вдвое :p С прицелами аналогичная идея намного интереснее, потому что там копируется с экрана уже отрисованное изображение и нагрузка увеличивается незначительно.
Посмотри мод Picture in picture.
 
И чо его смотреть?

A player’s face instead of a render indicates that the player is out of range/unavailable.

  • Because of how the mod is purely client-side, the limit of tracking other players is bound to Minecraft’s max tracking distance of other players, so no, this does not work across dimensions or long distances.
Как я и говорил, проблема с отрисовкой чужого экрана - это ни разу не проблема, а вот прогрузка чанков - очень даже.
 
Назад
Сверху