高品質で高速なポータル効果を作成するには?


9

編集:それで、パフォーマンスに影響を与えずにポータルの視覚効果が機能するようになり、リジッドボディがポータルをシームレスに移動するオブジェクトと、キャラクターコントローラがシームレスに移動するオブジェクトの物理的な設定を取得しました。私が今理解しようとしている唯一のことは、適切な一人称遷移効果を得るために2つのカメラビューをブレンドすることです。これら2つをどのようにブレンドするかについてのアイデアはありますか?深度のみのシェーダー、または正規化されたビューポートの四角形を使用して何かを考えています。私の主な問題は、それをリアルタイムで、角度で計算することです。

だから私はUnity3Dでポータル効果の作成に取り組んでいます。明らかに、私はこれのプログラミングに大きな影響を与えたとして、Valve's Portalを取り上げました。現在、私は単にカメラのrendertextureを使用してグラフィック効果を取得し、それから残りのコードを実行しています。問題は2048x2048で、Portalと同じように高品質に見えますが、FPSの損失が大きくなります。これを解決するには、テクスチャの品質を下げるか、テクスチャを更新する回数を減らす必要があります。

Valveは、高フレームレートの損失を引き起こすことなく、高品質のポータル効果を実現しました。どうすれば同じことができますか?フレームロスを引き起こさずに高解像度テクスチャにレンダリングするための良いアイデアはありますか?

Unityの組み込みシステムを使用するのではなく、テクスチャにレンダリングするための独自のコードを作成することを検討しています。それは実行可能ですが、間違いなく面倒です。ですから、考え、アイデア、提案は高く評価されます。


3
参照は見つかりませんが、ポータルがそのためにテクスチャーへのレンダリングを使用しなかったと誰かが言ったことを覚えています。
msell 2013年

1
ポータル風のゲームであるPseudo Formをチェックしてください(ソースはメインダウンロードにあります)。ウェブの周りには他の「ポータル実装」もありますが、これが最もよく知られていると思います。また、開発者の解説付きでポータルをプレイしてください。それらのいくつかでは、ポータルの実装の課題について話します。
Vasco Correia 2013年

7
1080p未満でレンダリングされたポータルをシャープに見せるには2028x2048のテクスチャが必要な理由を理解できません。一般的に、ゲームで使用しているディスプレイの解像度を超える必要はありません。私は、ポータルの画面上のサイズを把握し、それを使用して適切なサイズのレンダーテクスチャを選択する必要があると言っています(したがって、遠くにある場合は非常に効率的で、ポータルの画面が大きくなるほど「重い」) -space。
スティグ・ルーンSkansgård

1
視覚効果についてはどのようなアプローチをしましたか?ポータルから見えるものだけをレンダリングする方法を理解しましたか?
13

1
元の質問をそのままにして、新しい問題について新しい質問をする必要があります。
msell 2013

回答:


5

何時間もの研究とプログラミングの後で、私はこれのために視覚効果を適切に得る方法を見つけました。ビジュアルやその他の必要なすべてのもので機能するポータルシステムだけを購入したい場合は、Portalizer Unity Packageをチェックしてください

私はC#でプログラミングし、そのパッケージはJSにありますが、その背後にあるロジックは非常に便利でよく考えられています。一般的に、私は彼の論理的な考え方に従いました。私のゲームと一人称コントローラーにはいくつかの微調整を加えました。

基本的には、このウォーターシェーダー/スクリプトの修正バージョンを使用します。シーンに2つのミラーがあり、カメラが各反射で見るものを他のミラーにレンダリングします。2つのポータル間の関係を説明するために、変更された変換行列を作成する必要があります。パフォーマンスへの影響を軽減するには、ニアプレーンクリッピングに関するこの記事を参照してください。これは、ポータルを通して見る必要があるものだけをレンダリングするのに役立ちます。

FPSテレポート用にカメラを適切にブレンドする方法がわかれば、写真とソースを使用してより詳細なチュートリアルを作成できます。現在、私は完全なチュートリアルを書くのに疲れすぎて忙しいので、必要なコードのほとんどを提供できるので、これで十分です。


リポジトリへのリンクを投稿していただけませんか?
ローマヒョードル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.