OpenGLゲームがPlaystation 1ゲームのように見えるように設定するオプション(またはシェーダー)を知りたい。PSXはテレビを使用し、テレビはそのモニターとは異なる方法でレンダリングするため、おそらく100%達成できないことを知っています。ありがとう。:)
OpenGLゲームがPlaystation 1ゲームのように見えるように設定するオプション(またはシェーダー)を知りたい。PSXはテレビを使用し、テレビはそのモニターとは異なる方法でレンダリングするため、おそらく100%達成できないことを知っています。ありがとう。:)
回答:
私の意見では、OpenGLシーンをPSXシーンのように見せるための最も重要な部分は、フィルタリングがオフになっていることを確認し(PS1に最も近い隣人しかいなかった)、Zバッファリングをオフにして(何もなかった)レンダリングすることですペインターアルゴリズムを使用したシーン。
ライティングは頂点ごとにのみ行われ、実際には、グーロードシェーディングされた頂点カラーリングのみのライティングハードウェアはありませんでした。ライティングはソフトウェア駆動であったため、CPU時間の制限内で何でもできるようになりましたが、「ライティング」のような巧妙な高度なものにはあまり余裕がありませんでした。:)ある時点で何とか鏡面反射を得ることができましたが、頂点ごとにシーンがキラキラしているように見えたため、ドロップしました。法線をブレンドするようにスキニングされたメッシュでスペキュラーを動作させることができず、使用に時間がかかりすぎました。
PS1には少しテクスチャスイムもありましたが、OpenGLでそれをどのように実装するのかわかりませんが、本格的な経験をしている場合は、画面の端に近いときにUVを分解しようとするかもしれません合理的な近似が得られます。
また、頂点変換を確認することをお勧めします。PS1にはフロートがなかったため、固定ポイントパイプラインを使用してレンダリングが行われました。これが、アニメーションを再生するときの不安定な動きの原因です。頂点が存在できる位置は非常に多く、16ビットの固定小数点では、それほど多くの位置ではありませんでした。PS1のYouTube動画をいくつか見て、ゲームにどのように影響したかを理解してください。http://www.youtube.com/watch?v = RSV4IBa1pMIカメラが水平に近いときに直線が揺れることを意味していることがわかります。これをエミュレートする良い方法は、PS1のようにソフトウェアであなたの世界を変換し、エミュレートされた画面サイズに常に整数の画面座標を出力することだと思いますサブピクセルにレンダリングできませんでした)。
編集
テクスチャスイムは、PS1に3D補間がまったくないために発生しました。user712092で述べたように、アフィンレンダラーは画面スペースでしか補間できなかったので、対角線はすべて間違っていました。これはnoperspective
、補間修飾子をオンにするか、シーンを手動で変換してエミュレートし、xとyの画面座標をそのz値で除算した後に頂点の最終Z値を破棄することで実装できます。