FrontPage  ページ一覧  検索  更新履歴  RSS  ログイン

Psychlops Wiki - (TechnicalNote) Programmable shaders for visual stimuli 差分

  • 最後の更新で追加された部分はこのように表示します。
  • 最後の更新で削除された部分はこのように表示します。

! 始めに

 近年、市販のパーソナルコンピュータには画像処理用の計算機 (Graphic Processing Units; GPU)が標準的に搭載されるようになった。この計算機は、画像処理に限れば一般的なコンピュータ用計算機(CPU)の数十倍の時間当たり計算能力を持つ。視覚刺激の提示には多くの画像処理を必要とするため、GPUを利用することで高速に刺激を演算することが可能になる。高速に刺激を描画できるようになることで、旧来の方法では描画が難しかった複雑な刺激が提示できるようになり、能動的行為の知覚への影響といったリアルタイム性を要求される刺激描画も可能になる。このような刺激提示を実現するため、本稿ではGPUを利用した高速な各種視覚刺激提示法について報告を行う。


! GPUを操作する方法

 GPUは典型的には図形情報や画像情報の入力をもとに、座標変換や半透明描画計算など決まった処理(固定機能)を計算している。このような、入力をもとに各画素の色を計算する機能(関数)は「レンダラ」や「シェーダ」と呼ばれている。2003年ころより、決まった処理だけではなく任意の画像計算プログラムをGPUに送り実行させる技術が普及した。この技術は「プログラマブルシェーダ」と呼ばれる。GPGPUと呼ばれる、プログラマブルシェーダを画像処理だけでなく物理計算などに用いる技術もあるが、この技術は発展途上であり将来の標準化が期待される(表1)。

----
||!規格策定者   ||!固定機能レンダラ ||!プログラマブルシェーダ ||!GPGPU       ||
|| オープン規格 || '''OpenGL'''     || '''GLSL'''             || OpenCL      ||
|| Microsoft    || Direct 3D        || HLSL                   || -           ||
|| nVidia       || -                || Cg                     || CUDA        ||
 (表1)決まった式(固定機能)を使ったレンダラ、プログラマブルシェーダ、GPGPUの記述方法の規格。太字はPsychlopsで利用しているものを示す。
----

 視覚刺激の提示に際してただ単に任意の色で線や矩形、自然画像を表示するならばGPUの固定機能を利用するだけで十分だが、Gabor Patchなど任意の式に従った画像を提示する処理を行うならば、プログラマブルシェーダを利用する必要がある。そるような視覚刺激の提示では、Gabor関数などの任意の関数に独立変数(引数)を指定し、その従属変数を輝度や色として画素を決定する。これを実現するには、プログラマブルシェーダのうちピクセルシェーダと呼ばれる機能が適しており、まさに座標情報やその他任意の独立変数(引数)を元に各画素の色を決定する関数をプログラムすることができる。

 

! ピクセルシェーダの仕組み