質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
GLFW

GLFWは、OpenGLを使用してアプリ開発を行うためのフレームワークです。Macにも対応しているマルチプラットフォームであることが特徴。ウィンドウ管理、解像度切り替え、入力管理などの機能を持ちます。

Vulkan

Vulkanは、業界団体クロノスグループが規格化したグラフィックスAPI。主にゲームエンジンやゲームアプリケーション向けのグラフィックに最適化されており、ローレベル(low level)APIです。3Dオブジェクトを用いたアニメーションを使用するゲームで性能を最大限に発揮します。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

3DCG

コンピュータの演算により、3次元空間の仮想物体を、2次元平面上で表現する手法である。

Q&A

解決済

1回答

1810閲覧

クラウドゲームやゲームのリモートプレイはどうやって毎フレームごとに画像を生成して送信しているのですが?

退会済みユーザー

退会済みユーザー

総合スコア0

GLFW

GLFWは、OpenGLを使用してアプリ開発を行うためのフレームワークです。Macにも対応しているマルチプラットフォームであることが特徴。ウィンドウ管理、解像度切り替え、入力管理などの機能を持ちます。

Vulkan

Vulkanは、業界団体クロノスグループが規格化したグラフィックスAPI。主にゲームエンジンやゲームアプリケーション向けのグラフィックに最適化されており、ローレベル(low level)APIです。3Dオブジェクトを用いたアニメーションを使用するゲームで性能を最大限に発揮します。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

3DCG

コンピュータの演算により、3次元空間の仮想物体を、2次元平面上で表現する手法である。

0グッド

0クリップ

投稿2020/10/05 11:01

編集2020/10/05 11:02

クラウドゲームやゲームのストリーミングサービスはどうやって毎フレーム画像を生成して送信しているのですが?

何故こんな事を書くのかというとGLFWとVulkanを元にDLL経由で3DCGの画像を毎フレームごとにレンダリングして、そのレンダリングで出来た画像を下記のVulkanでスクリーンショットを生成するプログラムを元にしてコピーし、別のプログラムに送信するというプログラムを作っていたのです。

https://github.com/SaschaWillems/Vulkan/blob/master/examples/screenshot/screenshot.cpp

ところが毎フレームごとに画像を生成するプログラムが重すぎて使い物になりませんでした。

しかし、クラウドゲーム(ゲームストリーミングサービス)やPCからスマホにゲームの画像を送信して操作するなどといったリモートプレイのソフトウェアは30fpsから60fpsでそこまで遅延なく画像を送信できています。これは一体どういうことなのでしょうか?

何か毎フレームごとにスクリーンショットを生成するとはまた違った方法を使っているのでしょうか?それともサーバーやPCのパワーを使ってゴリ押ししているのでしょうか?

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まず3D描写には膨大な計算が必要となります。
[5分で理解]GPUとは?CPUとの違いや性能と活用
PC内にもありますが処理が追いつかないので、
グラフィックボード」という画像の処理に特化したボードを追加するのがふつうです。
(そのボードに搭載されているのがGPUです。)

PC内でゲームが実行され表示計算、モニタへの描写ならグラフィックボードだけで済みます。
ただキャプチャという他ゲーム機などの画像を録画配信しようとすると
意味合いが変わりグラフィックボードでは実力を完全に発揮できません。

その場合「キャプチャーボード」が必要となります。
【2020年最新】後悔しないキャプチャーボードの選び方 おすすめ紹介!!
キャプチャーボードはその名の通り「画面を捕獲する」→「画面を録画する」為のボードです。
これを使用することによって1フレーム毎の画像と音声をつなげて動画にします。
この処理を「エンコード」といいます。

この様に大半は専用ハードをつかって処理をおこないます。

投稿2020/10/05 17:19

kuma_kuma_

総合スコア2506

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/10/05 21:38

丁寧な回答、ありがとうございます。とすると、クラウドゲームは普通のGPUサーバーとは別に キャチチャボード用のサーバーを用いていると考えるのが自然なのでしょうか。 リモートプレイについて調べたら配信する側のPCにも配信される側のスマホにも結構負担が かかるようですね。
ikadzuchi

2020/10/06 01:14

他ゲーム機などの画像を録画配信する話はしていないように思います。 クラウドゲームやゲームのストリーミングサービスとは全く無関係の話ですね。
kuma_kuma_

2020/10/06 02:07 編集

> クラウドゲームやゲームのストリーミングサービス クラウドゲームで3D描写や複雑なエフェクトを行うゲームの場合 サーバ上の「グラフィックボード」を使い、結果を「キャプチャボード」で変換して送信 操作できる動画として情報を送ったりしますが?(PS4遠隔操作などがその技術になります)
kuma_kuma_

2020/10/06 02:19 編集

> クラウドゲームは普通のGPUサーバーとは別に > キャチチャボード用のサーバーを用いていると考えるのが自然なのでしょうか。 これは同一サーバ上に設置されていて、サーバ自体が複数あるとお考えください。 スマホでリモートプレイする際は必要最低限の情報、(右に移動やメニューの表示)が送られサーバで処理されます。クラウドゲームだと良くあるでしょサーバ指定。これ一定人数同時に処理するのに限界があるのでこの様にサーバを分けています。(ただこのサーバ単位は1台ではなくからさらに内部的に分散されている場合もあります。この辺りは通信を効率的に分けるロードバランサーという機械が必要です) 「艦これ」みたいにブラウザだけで画像処理する場合なら良いのですが3Dだとどうしても通常のスマホやPCの処理能力(表現力)では限界がきます。その為サーバ側で演算し結果を動画(または静止画)で返すことにより通常のスマホやPCで表現できないところまで表現しようとしているわけです。 まあそれでもユーザ側に機器には結構負担をかけます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問