1. ホーム
  2. c

[解決済み] サーフェスとテクスチャの違い (SDL / 一般)

2023-02-07 01:40:59

質問

テクスチャとサーフェスの違いを簡単に説明できる人はいますか?私はそれがで使用されているのを見ました SDL2 として SDL_Surface そして SDL_Texture . SDL_Texture から作成されます。 SDL_Surface から生成され、さらに画像/ビットマップから生成されます。どちらもピクセルの集合体です。しかし、私はそれらの間の主要な違いを見ません(GPUに何か関係しているのでしょうか)。

私はそれをググろうとしましたが、私が見つけたすべての説明は複雑すぎて、コンピュータグラフィックスを深く掘り下げることなしにそれらを理解することはできませんでした。

どのように解決するのですか?

基本的には、「GPU と関係がある」という仮説は正しいです。

SDL_Surface が使われているのは ソフトウェア レンダリングで使用されます。ソフトウェアレンダリングでは saloomi2012 が正しく気づいたように、画像データを保存するために通常の RAM を使用しています。したがって、ほとんどの場合、サーフェスに関連するデータ バッファに直接アクセスしてその内容を変更することができ、つまり、CPU を使用しているので ソフトウェア という名前になっています。

SDL_Texture 一方 ハードウェア レンダリングでは、テクスチャは VRAM に保存され、ハードウェアのように直接アクセスすることはできません。 SDL_Surface . レンダリング処理は GPU によって加速され、内部的には OpenGL または DirectX (Windows でのみ利用可能) API を使用し、これらはビデオ ハードウェアを使用するため、したがって ハードウェア レンダリング名です。

言うまでもなく、ハードウェア レンダリングはソフトウェア レンダリングよりも桁違いに高速であり、常に主要な選択肢として考慮されるべきものです。