テクスチャデータを圧縮してPhotonのRaiseEventとモノビットエンジンのRPCで送信する
はじめに
以前、Photonやモノビットエンジンを使って、ランタイムで生成されたテクスチャ画像(インメモリのデータ)を他のユーザーに送信する方法を実装した。
しかし、テクスチャデータを圧縮しないまま送受信していたので転送時間が長かった。
データを小さくして転送時間を短くするために、テクスチャを可逆圧縮(ロスレス圧縮)して送受信するように実装を修正する。
実装の修正
テクスチャデータを可逆圧縮(PNG形式にエンコード)するように、TextureSharingComponent のスクリプトを一部修正した。
TextureSharingComponent.cs
TextureSharingComponentForMUN.cs
修正は以下の2点
- 送信用のテクスチャデータの取得を、texture.GetRawTextureData() から texture.EncodeToPNG() に修正
- 受信したテクスチャデータの読み込みを、texture.LoadRawTextureData(this.receiveBuffer) から texture.LoadImage(this.receiveBuffer) に修正
実行結果の確認
データを圧縮した結果、転送時間が短くなっていることが分かる
圧縮なしの実装(前回の動画)
圧縮ありの実装