「 2013年08月 」一覧

DDSのRGB 10bitフォーマットの罠


今更といえば今更な話なのですが、あまり情報がないようにみえたのでここにメモしておきます。DDSフォーマットの A2R10G10B10 や A2B10G10R10 の並びの画像データについて罠というか、マイクロソフトも承知のバグが潜んでいました。具体的には、チャンネルのマスクビットが逆転しています・・・。

続きを読む



OpenCLのデバッガ(CodeXL)でトラブルに見舞われる


OpenCLのコード書きはおおよそわかってきたので、デバッガについて調べてみようと思います。やはり開発となるとデバッガは必要になってくると思いますし、AMDではCodeXLというツールがあるのでこれを試してみようと思います(ました)。
しかし!、このインストールして確認でとてもトラブルに巻き込まれてしまいました。結局OpenCLのデバッガに関しては検証できず終いです。

続きを読む



SDKなしでOpenCLを使ってみる -導入編-


OpenCLを使ったアプリケーションを作成する際には、とりあえずは何らかのSDKをインストールして使うというのが普通のようです。導入に関して検索してみるとだいたい下記の手順が紹介されていたりします。

しかし、これらのSDKをインストールすること無しに、OpenCLの機能を呼び出すことを目的としてしばらく記事を書いてみようと思います。

続きを読む




エクスプローラサムネイル画像のシェル拡張を作成中です (4)


今まで作成していたエクスプローラーサムネイル拡張をひとまず公開してみます。
簡単なインストーラーバッチは付けていますが、アンインストールは手動です。

前回と比べて出来るようになったことは、psd画像に対応したことです。あとは若干動作が安定するようになりました。まだまだ表示できない形式があるので、徐々に対応していく予定です。

現在の対応拡張子

  • DDS
  • PSD
  • PVR

ダウンロード

アルファ版です。DevImageThumbnail ver 0.01 をダウンロードする

アンインストール方法

管理者権限ありのコマンドプロンプトを起動して、DevImageThumbnail.dllのある場所で、下記コマンドを実行してください。

既知バグなど

現在、DDS内の全てのチャンネルフォーマットに対応できていません。
DirectX10以降のテクスチャ形式が全滅しています。また、RGBXの形式も挙動が不安定です。
Pvr形式も同様でVersion3以降の多彩なチャンネルフォーマットに対応し切れていません。


エクスプローラサムネイル画像のシェル拡張を作成中です (3)


IThumbnailProviderを継承して、エクスプローラーのサムネイル画像用拡張を作成しているわけですが、1つ問題が出てきました。入力となるファイルについて、IInitializeWithStream ではファイルの全体サイズがわからないためちょっと使い勝手が悪く、IInitializeWithFileを継承して実装することで今までは作業していました。

しかし、どうやらこのインターフェースはファイルの増減があるときには有効に効くようなのですが、既に配置済みのファイルに関しては呼ばれない感じでした。すでに存在するファイルについてサムネイルを出そうとするとうまく制御できない、そんな症状が発生中です。

サムネイル拡張においては、IInitializeWithStream, IInitializeWithFile, IInitializeWithItem のいずれかのインターフェースを実装すれば良い、との記述を見かけたので、IInitializeWithItem の実装を試してみました。こちらだとShellItemインターフェースからファイルシステムのパス情報を得られるので目的のファイル名を得ることが出来そうです。
ただサンプル等をネットで調べると IInitializeWithStream による実装が主流のようなので、今回やろうとしていることが正しいかどうかイマイチわからないところです。


NVIDIA Cgランタイムについて


またも今更な話題にはなるのですが、NVIDIAから出ているCg ToolkitのCgランタイムについてです。

NVIDIA製のグラフィックボード以外で使用することの保証はないだろう!と考え、他のプラットフォームではたまたま動いている、と考えていたのですが、どうやらそれは違うのかもと思う記事を見かけました。

http://www.nvidia.ru/object/devnews028_jp.html
以前のニュース記事なのですが、ここによると
「Complete rewrite of CgFXの完全書き換え。CgFXがあらゆるプラットフォーム上で作動するようになり、NVIDIA以外のOpenGLドライバ上でも作動するようになりました。CgFXの実質的な説明書は 後続のCg 1.4のビルドに含まれます」

となっており、他のOpenGL環境でも動くように対応作業があったことが推測できます。つまり今Radeonでも動いているのはコレが理由としてあったからなのかなと思います。