プログラマブルシェーダーのこと。

固定パイプラインではない、リアルタイム系ハードウェアレンダリング環境のこと。
頂点演算・画素計算をユーザー側で自由にプログラム記述できるようにしており、固定パイプラインの時代には考えられなかったさまざまな表現が可能になった。

現在のGPUコンピューティングの土壌を作ったことをみても、比較的高い自由度を持っていることが判る。

GPU/シェーダプログラミング系リンク集

 

プログラミング哲学

敢えて、哲学と書いておく。

プログラミング人生に必要だったり、不要だったり、一服の清涼剤だったり。
楽しむためのネタ帳だったり、書き続けることを苦痛にしないための処方箋だったり。

まぁ、世の中色々だし、いろんな知見を得る努力も必要かなぁ…と。

【追記】
NHKでこないだやってた哲子の部屋で聞いた言葉。

哲学とは
新しい概念を作り出すこと
ジル・ドゥルーズ「哲学とは何か」

概念とは
新しいものの見方
今までのものの見方を変える考え方
國分功一郎「概念とは何か」

プログラミングにおける過度な抽象化についての、若干のメモ

適切に抽象化されたコードとはなにかって話

魅力的な Python:

 

 

MayaAPI: コンテキスト(context)とは

MayaAPIのヘルプ(自動翻訳)によれば、以下の通り。

Maya のコンテキストは、マウスの動作がどのように解釈するかを定義するモードです。コンテキストはコマンドを実行する、現在の選択を修正または図面の操作などを実行することができます。さらに、コンテキストは違う風にコンテキストを表示するカーソルを描画できます。Maya において、コンテキストは 「tool」という名称で提供されます。

正直この説明では抽象的すぎて判りづらい。とりあえずは幾つかの機能をまとめて、それに『コンテキスト』という名称を与えていると、考えた方がラクだが…context(コンテキスト)という単語自体には、デバイスの状態を持った情報の固まりや、それに伴って判断処理を行う構造そのものを示す意味合いがある。

含まれる機能は、以下の通り。

  • マウスの動きをどのように解釈するか定義、できる
  • コマンドを実行、できる
  • 選択範囲の制御・頂点や面の編集、ができる
  • コンテキストを表示するカーソルを描画、できる

『コンテキストを表示するカーソルを描画、できる』というのは、ピンときませんが..MPxContextクラス(@MayaAPI 2014)の説明を見る限り、『コンテキスト』にはマウスやキー操作に伴うインタラクティブな処理を提供する目的があり、コンテキスト関連の操作に対応して、カーソル表示の制御もできそうだ。

メンバ関数を見ても、doPress, doRelease, doDrag, doHold, deleteAction, completeAction, abortAction 以外に addManipulator, setHelpString, setCursor, beginMarquee, dragMarquee, releaseMarquee, newToolCommand といったものも並ぶ。

Marqueeというのは、範囲選択時などに表示される点線の選択領域表示のことらしい。
そういう表示の制御も機能には含まれていることになる。(この件で調べてみてはじめて知ったが、範囲選択のドラッグ中にAltキーを押すと、選択領域を領域指定するモードからそれまで指定した範囲を平行移動するモードに切り替わる。)

newToolCommand関数は実行したい手続きをコマンドとして定義・実行する為のものだし、setCursorは指定のカーソル形状にマウスカーソルを変更できる。

doPress, doRelease, doDrag, doHoldはマウス操作を捕捉するものだし、addManipulatorを使えば編集操作のマニピュレータ表示もできるので、概ね説明に書かれていることはそのままコンテキストの機能になるようだ。

Windows8 への PySide (for Python) の install

まごついたので、メモ。
要点は、以下の通り。

・Python2.6.6以降の pythonをインストール(※2.6.6でも可。)
・get-pip.pyなど、モジュールインストール作業は 管理者実行中の コマンドプロンプトで行う
・pip は “(pythonフォルダ)\scripts” フォルダ下にインストールされるので、pythonフォルダだけでなく、scriptsフォルダにもpathを通す。

なんとなく setuptoolsも入れちゃったけど、pip 又は setuptools 片方を入れればOK。
 結局pip使うのに まずsetuptools入れる必要があったっぽい..ここ見る限りは..どうだったかもう忘れた。orz
あとで調べ直したら、ここで get-pip.pyをDLして python get-pip.pyを実行すればOKなだけだった。。

pipでインストール:  pip install U PySide
setuptoolsでインストール: easy_install U PySide

・install中に ダウンロードがタイムアウトでエラー停止した場合は、もう一回 コマンドを呼べば入った。

以上。

【その後】
PySideはMaya2014とかはデフォルトで入っているけど、それ以外に欲しいモジュールをMayaのPythonにインストールする場合は、まずここから

setuptoolsが入ったら、Maya2014の場合だと デフォルトでは『C:\Program Files\Autodesk\Maya2014\Python\Scripts』階層下にツールが準備された。
※参考サイトには、easy_install~ を maeasy_install~とrenameして…という方法を指示しているけど、この辺りはお好みで。

これができたらmayapy向けに pathを通して、続きの設定を行う。
※MayaのPython向けに環境設定が必要になるので、単体のPythonと環境設定がバッティングしないように設定を別ける必要が出てくる点には注意が必要。(環境設定のことを知らない場合は、そちらの勉強が別途必要)

【その後のその後】
jinja2をインストールしようとしたら、コンパイラエラーが..エラーを見ると include/python.hが見つからないと怒られていた。その辺り必要ファイルは必要とされる場所に事前に用意しておく。(include/python.hは Mayaのインストールフォルダ直下 include\python2.7に入ってた。)
モジュールによってはCコンパイラなどの環境も必要になる模様(自分の環境には入っているけど..なかったらどうなるのかは不明..)