2012/10/30

3D Vision のメガネを改造してみた

最近、PSO2を3D Vision(残念ながら「2」ではない)で遊んでいることが多いのだが、
あのメガネ、なんか、
やたらと耳に掛ける部分の幅が狭くて、
こめかみのあたりが痛い。
もう、1時間ぐらいが限界。

いい加減、かけ心地の悪さが我慢ならなくなってきたので、
どうにかしてやろうと。

・・・で、
こうなりました。



1.ツルの緑のラバーのあたりから、ペンチでバッサリと切り落とす。

2.半田ごてで、直径3mmぐらいの穴を、ぷすっと開ける。

3.切り口と、穴の縁を、やすりとかで丸める。

4.その辺にあった要らないネックストラップのひもを調達。
ひもは2つに切り分ける。

5.開けた穴にひもを通して結びつける。

6.メガネを掛けてみて、ひもを頭の後ろで、メガネがずり落ちないような感じに結ぶ。

以上。

かなーり、適当な工作ですが、
頭の脇で締め付けられていたのが無くなって、かなり快適に。


ただし、注意点。

・液晶シャッター部分はガラス製。
無理な力がかかったり、傷が付かないように注意すること。
この部分を、メガネふきとか包んだ状態で作業するべし。

・半田ごてで穴を開けるときは、手早く。
プラスチックが焦げると、非常にクサイので。
あと煙を吸わないように。

・ツルの根元のほうの内側、膨らんでいるところは、
おそらく回路やバッテリーが入っているので、
そのあたりには手を加えてはいけない。

・当然ながら、改造は自己責任で。



しかし、こうネタを全く見かけないのだが、
3D Visionのメガネのツルがきついのは、私だけ?

2012/06/11

シンプルな画像ビューワーを作ってみた。

また、FreeImageを使ってちょっとしたツールを作ってみました。
今度は、OpenTKも使って、シンプルな画像ビューワー。

FreeImageで画像ファイルを読み込み、
OpenGLでレンダリングしてます。
 Windows XP以上、.NET Framework 3.5以上が必要。
あと、5ボタンマウス推奨。

前から、Windows標準の「Windowsフォトビューアー」の
ボタンとかウィンドウの枠とかがうっとうしいと思ってたので、
枠もボタンも無い、可能な限りシンプルなものにしてみました。

画面上に、画像だけが表示されます。
あとは、右クリックで申し訳程度のメニューが出るだけで、
他には何にもありません。


基本的にマウスで全て操作します。
ドラッグ&ドロップで画像を開いたり、
左ドラッグで画像(ウィンドウ)を移動、
マウスの「進む」「戻る」ボタンで次/の画像を表示、
ホイールで拡大・縮小とか。
ウィンドウがディスプレイの縁にスナップしたりもします。

詳しいこととダウンロードはこっちにて。
-> シンプルな(すぎる)画像ビューワー (ImgViewer)

前回のクリップボードの画像保存ツールでは、
FreeImageを画像をファイルに保存する部分に使ってたけど、
今度は、画像をファイルから読むところに使ってます。

起動するのがちと遅いのだけれど、
たぶん、OpenTKとかGLSharpとか、
DLLがそこそこ大きなファイルサイズだからかも。
ごく一部の機能しか使ってないから、
そのあたりをゴリゴリ削ってしまうのもいいのかもしれない。

 FreeImageに関しては、試してみた感じだと、
画像ファイルの読み込みは.NET FrameworkのBitmapクラスよりも少し遅い。
まぁ、その辺は、特にJPEGに関しては画質はFreeImageのほうが信頼できるので、
仕方ないのかなと。

あと、OpenGLを使って
画像をテクスチャとしてロードしたりレンダリングしたりするので、
GPUが非力だと、読み込みやレンダリングが重くなるかも。
まぁ、最近のGPU統合型のCPUなら、
そこそこ動くんでは無いかと思いますが。

2012/03/30

FreeImageを使って作ってみた。

HPのほうだけアップして、
すっかりこっちの更新を忘れてましたが。

だいぶ前の記事で書いたFreeImageを使って、
ちょっとしたツールを作ってみました。

クリップボードの画像保存ツール

名前通り、
Windowsのクリップボードに取り込んだ画像を
画像ファイルとして保存するツールです。

画像を保存するところを、FreeImageに任せてます。

作ったプログラムについてはそっちのページを見てもらうとして、
ここでは、FreeImage関連について。

FreeImageを使うと、
JPEGの画質などもちゃんと指定することができます。
今回作ってみたプログラムでも使ってます。

GIF形式も、アニメーションに対応していたり、
RGB 24bit から 256色への変換アルゴリズムが2種類用意されているようです。

使ってみた感じだと、
.NET FrameworkのBitmapクラスと比較すると、
いくぶんか、FreeImageのほうが
画像ファイルの読み書きの処理が重いような気がします。
また、Bitmapオブジェクトから
FreeImageでの画像オブジェクトへ変換する必要があるので、
そのへんでも余分に手間がかかる。

しかし、エンコード、デコードの正確さや、
各画像形式でのオプションの指定、
Exif情報も割と簡単に扱える、
利用できる画像形式が豊富、
など、FreeImageには利点も多いです。

画質を気にしなくていいようなときは手軽にBitmapクラス、
そうでない、画質を気にするべきところではFreeImage、
とか、場合によって使い分けるのが良いかも。

2012/01/01

明けましておめでとうございます。

明けましておめでとうございます。

去年、おととしと、最近このブログやHPをあんまり更新できてないので、
もうちょと更新してきたいかなぁ、とか思ってはいますが、
どうなることやら。

年賀状用の絵を作ったので、せっかくなので
ここにアップしてみたり。
ま、たいしたものではないですが。


使用したソフトは、Metasequoiaでモデルリングして、Parthenonでレンダリング。
文字は、HPで公開している自作のプログラムで作成してMetasequoiaにインポートしました。
すべてフリーソフトで作成。
制作時間はトータルでたぶん5~6時間ぐらい。

どうせたいしたものは作れないのだから、
ならば、わざとポリゴン数の少ないカクカクしたデザインにしてしまおう、
という感じです。


竜っぽいのの下の青いのは、水面を表現しようと思ったのだけど、
なんかウネウネしたガラスっぽくなってしまった。
まぁ、竜のモデリングも相当適当ですが。







2011/11/05

FreeImage

・・・というわけで、前回、
System.Drawing.BitmapはJPEGの画質が悪すぎる
ということが判明したので、
その代わりに使えそうなものを探してみたわけです。

まず、最初に見つけたのが

「libjpeg」(IJG JPEGライブラリ)
公式サイト http://www.ijg.org/

が、調べてみると、どうも、
・Cで書かれたソースコードで配布されている。
・プログラムに直接ソースコードを組み込んで使うのが、もっぱらの利用法。
・DLLにできなくもないが、なかなかに面倒らしい。
・誰かDLL作ってバイナリ公開してないかな-、と思ったが見つからない。
・そんなこんなで、.NETで利用するのも難しそう。
というわけで、ひとまず諦める。

そして見つけた第2候補。

「FreeImage」
公式サイト http://freeimage.sourceforge.net/

・オープンソースなライブラリ。
・PNG, BMP, JPEG, TIFF, など、いろんなフォーマットに対応している。
・Windows, Linux, Mac OS X などの各OSに対応。32bit、64bit両方に対応。
・C, C++, VB, C#, Delphi, Java, Perl, Python, PHP, TCL, Ruby, と対応言語はよりどりみどり。
・使い方が簡単(らしい)。
・C#でのFreeImageの使い方とかを説明してくれているような日本語のサイトをgoogle先生は知らないようだ。(英語でもほとんど無いっぽい。)

.NETから使えそうなので、
とりあえずいじってみよう、ということでダウンロード。

で、結論から言うと、
これはなかなか良さそうです。
使い勝手も良いし、機能も豊富です。
ちゃんとJPEGを本来の画質で読み込めるし、
読み込んだ画像をSystem.Drawing.Bitmapのインスタンスとして取得したり、
逆にSystem.Drawing.BitmapのインスタンスをFreeImageのAPIで
いろんなフォーマットでファイルに書き出したりもできる。

以下、ダウンロードしたFreeImageの使い方など。

ダウンロードしたのは
"FreeImage3151Win32.zip" というファイル。
解凍されたファイルの中には、
"Wrapper\FreeImage.NET\cs\"フォルダ内にVisualStudio2005のソリューションファイルが。
これをVisualStudio2010で開くとプロジェクトの変換が行われるが、特に問題なく変換される。

が、ビルドしようとするとうまくいかないので、多少設定をいじる必要有り。

まず、"Library.2005"というプロジェクトのプロパティを開き、
「ビルド」タブの「警告をエラーとして扱う」という項目で「すべて」が選択されているので、
それを「なし」に変更。

同じく、"Library.2005"プロジェクトに、ソリューションエクスプローラーでコンテキストメニューから
「追加」 - 「既存の項目」で、
解凍されたFreeImageのフォルダに入っている
"FreeImage\Dist\FreeImage.dll"を追加。
これがネイティブなFreeImageのライブラリ。
(で、今ビルドしようとしているのが、このDLLのラッパー。)

最後に、ソリューションに"UnitTest.2005"というプロジェクトが含まれているので、それをソリューションから削除。

これでビルドができるはず。
サンプルがたくさん入っているので、
それを見れば、必要そうな使い方も一通りわかるはず。
シンプルなAPIになっていて、割と簡単そうです。


今回は、このあたりで。
日本語の情報が少ないようなので、
そのうち、まとめ直したりしてHPのほうにUPしておこうと思います。

2011/10/26

System.Drawing.BitmapのJPEGは画質が悪い。

いまさら気づいたのだが、
表題通り、
.NET FrameworkのSystem.Drawing.Bitmapで
JPEG形式の画像を読み込むと、
けっこう画質が劣化した状態になる。

気づいたきっかけは、
グレースケールなJPEGの画像を読み込んでレンダリングしようとしたとき。
下の画像のように・・・orz


左が、System.Drawing.Bitmapで読み込んだもの。
右は、GIMPで読み込んだもの。

こんなんじゃ使えねぇべ。

カラーの画像でも、これほどはっきりとしたものでは無いが、画質が悪い。

詳しくは、ここや、
http://kerokero.org/blog/blog.cgi/permalink/20101009031415
ここ
http://tete009.seesaa.net/article/143418763.html
の方々が詳しく調べていらっしゃるようです。
さて、どうしたものか・・・。

2011/04/03

COWON S9 のプレイリスト

普段、COWON S9 を使っているのだが、
プレイリストとして .m3u ファイルを適当なソフトで作成して
それをそのままS9に放り込んでも、
なぜかS9がうまく読み込んでくれないことが多いようで。

調べてみると、なんか
S9が認識してくれる.m3uのフォーマットが微妙(?)なのが原因のようで、
ちょいと変換ツールを作ってみました。

・・・まぁ、
S9は発売してからしばらくたってるし、
新機種も出てるし、
それほど需要はないとは思いますが。

詳しくはこっちにて。
http://sky.geocities.jp/freakish_osprey/Software/software_convm3u.html