シェーダはGPU(Graphics Processing Unit)で動くプログラムで、3Dモデルデータの座標変換やライティング処理を担います。 まずはGPUの歴史をWikiで軽く振り返ってみましょう。 ・1970年代、アーケードゲーム基盤で、CPUの描画処理を補助するプロセッサーが使われ始める 描画処理は比較的重い処理なので、CPUのRAMを節約するため用途として利用されるようになります。(インベーダーゲームなどの時代ですね) ・1980年 NECのPCにグラフィックカードが搭載 2D描画メインでグラフィックカードの解像度・処理速度・コストなどが競われました 3Dは1980年末ごろナムコのレースゲームがアーケード基盤で用いられるようになりました。 ・1990年 Windows3.0が登場  グラフィカルユーザインターフェースが主流になり、PCの描画負荷が上がります。 Windows標準の高機能なアクセラレータにより、高価な汎用グラフィックカードが一掃されました。 このころからOpenGL、DirectDrawなどのグラフィックAPI(GPUのプログラミングインターフェース)が発展していきます。 ・1994年、GPUの名称がPlaystationでSonyGPUとして正式に表記される このころにはナムコやセガのアーケードゲームで3Dが一般的になってましたが PSの登場により3Dゲームが世界に浸透していきました。 PCのビデオカードでは1999年のNVidia のGeforceが人気を博します。 グラフィックAPIも3Dに対応し、表現力が向上しましたが、 コマンドが複雑化し使いづらくなる問題が生じていました。 OPENGLはこれがもとで一時期人気が低迷しました。 ・2001年、NVidiaがGeForce3 でプログラマブルシェーダを発表 頂点毎の座標変換・ピクセル毎のライティングなどをシェーダプログラムに任せることで、 肥大化傾向にあったAPIがシンプルに維持できるようになりました。 頂点シェーダ・ピクセルシェーダ・ジオメトリシェーダと種類を増やしつつも これが現在のGPU・シェーダの標準形式になります。 ・2007年 NVidia CUDA を発表 GPGPU(汎用GPU)の始まり GPUの高い並列演算力を利用して、描画処理だけでなく物理シミュレーション、統計などで 利用されるようになりました。 ・2010年~現在 PCビデオカードでは主にNVidia・AMDが競合、 PS4やXBOXOneなどのゲーム機でAMDのGPUが採用され、 NvidiaのGPUは自動車Naviシステムや、スマートフォン・NintendoSwithなどのモバイルGPU、ディープラーニングなど幅広く利用されています。 振り返るとシェーダの導入は画期的だったようです。 命令の複雑さを維持したまま、シェーダをプログラムすることで グラフィック表現を拡張していくことが可能になりました。 又、プログラミング可能なGPUというアイデアはGPGPUにつながり GPUの並列性を様々な領域に応用可能となりました。 3Dグラフィック描画の基本的な処理の流れとしては、 CPUがOpenGLなどのAPIでGPUにデータ・コマンドを送り、 頂点シェーダで座標変換、ピクセルシェーダでライティング処理を行って スクリーン上のピクセル色を算出します。 今回はこのあたりにして、 次回、シェーダによる具体的な処理を解説したいと思います。