2010/12/23

ディスプレイ acer GD245HQ

このあいだも書いたが、
NVIDIAの3D Vision 対応のディスプレイがほしかったので、
acer GD245HQ を購入。

で、その感想。

正直なところ、微妙。

テキスト表示がやや見苦しい。
画面を直接デジカメで撮ってみた。
(そのままだとどうも見にくいので、わざとぼかしてある。)

左がacer GD245HQ、右が同じくacerのH233H。
GD245HQは変なシャープネスがかかったような表示になっていて、
場合によってはかえってゴーストみたいな変な効果が出てしまっている。
これがテキスト表示が見苦しい原因。

もう一点。

3D Visionを使ったステレオ表示で、
コントラストが高い部分でクロストークが目立つ。
仕様では、応答速度が2ms(GTG)らしいので大丈夫だと思っていたのだが・・・。
ここでちょっと算数。
120Hzだと、1フレームあたりの表示時間は
1000[ms] / 120[Hz] = 8.333[ms]
これに対して画面の書き換えに2ms(ぐらい)かかるので、
2[ms] / 8.333[ms] = 0.24
1フレーム分の時間のうち、24%(たぶんそれ以上)が
画面の書き換えに使われていることになる。
さらに、「2ms」というのはGTG なので、
表示される色・輝度などによっては2msよりも遅れる。
つまり、1フレーム中、1/4ぐらいの時間はディスプレイの書き換え待ちになる。

・・・と考えると、
多少クロストークが見えそうだというのも想像がつくし、
むしろ、応答時間が2msというのが、
まだまだ遅すぎるようにも思えてくるわけで。
まぁ、最近の液晶技術はこんなもんだ、といえばそれまでなのかもしれないが。

(2011.01.02 追記)
どうも、クロストークが見える原因はディスプレイではなく、
メガネの遮光が完全ではないことが原因のような気がしてきた。
つまり、
メガネのシャッターが閉じていているのに、
そのシャッターがすこーし透けている、と。

画面に表示された絵の明るい部分だけで
クロストークが目立っているように見えるし、
物理的に板(シャッター)が開閉しているのではなくて
所詮は液晶シャッターなので完全に不透明ってわけでもなさそうだし。

2010/12/18

Quadro で NVIDIA 3D Vision な OpenGL のプログラムを作る

3Dグラフィクスで遊んでいるからには
やっぱり、最近はやりのステレオ表示が気になるわけで。

(「3D」っていうと、ポリゴンな「3Dグラフィクス」のことなのか、
それとも「立体視」のことなのか紛らわしい、と思う今日この頃。)

ってことで、思い切って
3D対応のディスプレイ(GD245HQ)と
NVIDIA 3D Vision (アクティブシャッターの付いたメガネのアレ)を購入し、
ステレオ表示環境をそろえてみた。
(ディスプレイについてのレビューは、またそのうち、ってことで。)

で、そうなってくると、
OpenGLのステレオバッファを使って
自分でステレオ表示ができるプログラムを作ってみたくなるのだが、
GeForce系ではステレオバッファがサポートされておらず、
実質的にはQuadro系のグラフィックボードを使うしかない。
ということで、つづいてQuadro 2000を購入。
Quadro高いよ・・・。

ってなことで、
OpenGLでステレオバッファを使ってステレオ表示する方法を調べてみた。

→プログラム側でやること
  • まずは、レンダリングコンテキストを作成するときに
    ピクセルフォーマットでスレテオバッファを指定。
  •  で、右目用、左目用のシーンを
    glDrawBuffer() で BackLeft, BackRight を指定して
    左目用バックバッファと右目用バックバッファそれぞれに描画する。
  • wglSwapBuffers() を呼べば
    BackLeft, BackRight 両方いっぺんにフロントバッファに
    転送されるので、そこはあんまり気にする必要は無いっぽい。
→PC側の設定
 NVIDIAコントロールパネルで設定する必要があるのが少々めんどくさい。
  •  NVIDIAコントロールパネルの「Manage 3D setting」内、
    「Program Setting」タブで、「Add」ボタンをクリックしてビルドしたプログラムを選択。
    (Visual Sutudio のデバッグで実行する場合は、~.vshost.exe を選択する。)
  • でもって、その下のリスト(Feature - Setting のリスト)で、
    「Stereo - Display mode」 を 「Generic active stereo (with NVIDIA IR Emmitter)」、
    「Stereo - Enable」 を 「On」
    に設定する。
これで、プログラムを実行するとステレオ表示になって
同時にメガネのアクティブシャッターもONになるはず。
DirectXだとフルスクリーンにしないとステレオ表示できないが、
OpenGLだとウィンドウ表示でもステレオ表示できるみたい。
(ただし、Windows Aero がOFFになる。)

ちなみに、OpenGLの場合は
IR Emitter(メガネの同期用の赤外線送信機)の
On/Offスイッチと、裏のホイールは機能しません。
なので、プログラム側でステレオ表示のOn/Off機能とか
奥行き感の調整機能とかを用意しないといけないようだ。

あと、右目・左目のシーンを描画するときに、
左右の視点の位置のずらし方をうまくやらないと不自然な見え方になってしまうので、
このへんもプログラム側で工夫しないといけない。

2010/11/23

トラックボール M570 を使ってみた

実はトラックボール派で、
普段はLogicoolのTM-250を使ってるのだが、
ふとAmazonを眺めていたら
Logicoolから親指でボールを転がすタイプの
トラックボールの新機種がいつの間にやら発売されていたようで、
なかなかよさげなので早速買ってみた。
↓ これ。


トラックボールにしてはやたらと売れているようで、在庫切れらしい。
Amazonで注文したら2~3週間してやっと発送されてきた。

で、使ってみた感想。

ワイヤレスなのだがレシーバーもかなり小さく、
USB端子の金具にちょいと出っ張りが付いているぐらいのサイズで小さい。
受信感度は良い。

ボールの感触もそこそこ良い。
最初は多少滑りが悪い感じもするが、
少し使っていればすぐになめらかに動くようになる。
まぁ、これはTM-250でもそうだったし、
最初だけなので問題はない。

微妙なのがホイール。
回転がキシキシいっていまいちだ、というのがもっぱらの評判だが、
確かにそうかもしれない。
が、まぁ、これもしばらく使っていればそれほど気にならなくなる。

第4,5ボタンの位置もなかなか使いやすい。
といか、このボタンが追加されたのがTM-250との最大の違いだと思う。
結構便利です、これ。

全体としてのできはなかなか良いのではないかと。
たしかにこれならやたら売れてるのも納得できるかもしれない。
まだ使い始めて間もないのでよくわからんが、バッテリーの持ちも
良いようなので、その辺の不便さもなさそうだし。

ただ、一つ、個人的にはホイールがカタカタうるさいのが気にくわないので、
ちょっとばらして、その辺がどうにかならないか試してみた。

ネジが6角の星形(たぶん直径1.5mm)の特殊な形状だったり、
電池ボックスの中に隠しネジがあったりで少々開けるのがめんどくさい。

ケースを開けてみればわかるが、ホイールをカチカチいわせているのはバネ。
だが、これをどうにかするためにはホイールを
外さなければならないのだが、これまた少々外しにくい。
ピンセットか細いマイナスドライバーとかが無いと外せないかも。
フレームを外側に引っ張って少しゆがませて
ホイールをケースの内側方向に押し出すようにして割と強引に
外す必要がある。

ホールを外してちょいとバネをホイールの内側方向に曲げてやると
ホイールへのあたり方が加減できる。
(ただし、曲げすぎるとホイールに当たらなくなってしまうので注意。)
バラしたついでにグリスなんかをホイールの軸につけておくと、よいかも。

これで気にくわなかったホイールも何とかなったので、
とりあえず満足です。

2010/10/09

OpenTK 1.0 リリース

OpenTK 1.0 が、やっと「RC1」がとれてリリースされたようだ。
時々OpenTKのサイトのForumsをのぞいていたのだけれど、
特にレンダリングコンテキストの初期化まわりでの問題が
レポートされているのをよく見かけたので、
だいぶ安定性が良くなったのではないかと。

さて、
ぼちぼちGLSharpのほうも
いじり始めますかな・・・。

2010/09/27

グラフィックボードを交換してみた。

GeForce 8600 GT → GTX460 に。
(CUP : Core i7, OS : Windows 7 32bit)
GTX460の推奨電源は450Wと書いてあったので、
今の電源が500Wでぎりぎりかなー、と思ったが、
やってみて不安定になるようなら電源も交換すればいいか、
とか適当なかんじでやってみた。

ドライバは共通なようなので、アンインストールとかせずにそのまま。
単にボードを差し替えただけ。
ちなみに、補助電源用の電源4ピンx2→6ピン変換コネクタが
ボードに付属してました。

ボードの交換後、起動。
起動すると、Windows Aeroがオフになっていて
おや?と思っていると、新しいデバイスを検出したとか、
ドライバのインストールが完了したとか、
再起動しろ、とか、メッセージが出てくるので、
いわれるままに再起動。
今度はWindows Aeroも有効になっているし、
NVIDIAコントロールパネルも正常に機能している様子。
以上、完了。
非常にあっさりと終了。

BIOHAZARD5とかが高画質設定で
サクサク動くのがなかなか楽しい。

2010/09/09

OpenTK、最近は結構バグの修正などが頻繁に行われているようだけど、
正式なリリースがRC1以降、なかなかででこない・・・。

次のバージョン(RC2 ?)が公開されたら、
GLSharpもそれにあわせていじってみようかなー、
とか思っていたのだけれど、いつになることやら。
予定、というか、現在ちまちまとやっているのは、
レンダリングコンテキストの初期化のあたりを
てこ入れしてみようと、試行中。
マルチサンプリングの最大サンプル数を取得できるように
してみたいなー、とか、いろいろ。
ver.3上位互換のコンテキストとかは、とりあえず保留。
っていうか、最近、OpenGLのバージョンが
ほいほいあがるので、新しい機能とかよくわからんし。

そういや、赤本も日本語版は第5版が出てから
ずいぶんたつけど、そろそろ
新しいのが出てもいいんではなかろうか。
英語版は第7版まで出てるようだし。
英語読むのしんどいです。

2010/08/10

どうでもいいけど・・・

いつの間にやら、
「法線ベクトル」でググるとなぜか
うちのサイトのがWikipediaに次いで
2番目にヒットしてる・・・

いや、たいしたことを書いた覚えはないし、
あんまり数学的な正確さを気にせずに書いたのに、
2番目にヒットしたりしてていいんだろうか・・・。

2010/06/01

Visual C# 2010 Express を試用中

今のところ問題もなさそう・・・な気がするのだけれど、
なんか、ATOKとの相性が悪そうなのは気のせいだろうか?
時々、勝手にATOKがOFFになってたり、
カーソルのそばにあるはずの変換モードの表示が
Visual Sutdioのウィンドウの左下の端あたりに表示されてたり。

あと、ちょっと気になってるのが、
2008でツールバーにあった「ソリューション構成」?
(あの「Debug」「Release」とかがドロップダウンリストで選択できるヤツ)
が非表示になってるんだけど、何処へ?
・・・もしかして機能から外された?
(一応、構成マネージャはソリューションエクスプローラで
ソリューションを右クリックすると使えるが。)

2010.06.02 追記 :
メニューの「ツール」-「設定」に
「基本設定」と「上級者設定」があるのを発見。
デフォルトでは「基本設定」になってる。
これはなんぞ?
と思いつつ「上級者設定」にしてみたところ、
メニューやツールバーが2008のと(たぶん)同じ項目が表示されるようになった。
(上記の「ソリューション構成」も表示されるようになった。)
2008を使い慣れている人にとっては上級者設定のほうが
なじみがあっていいかもしれない。

2010/05/30

本 : Effective C#

    

本屋でうろうろしていたら見つけた。
ちょっと中を見てみたら結構よさげだったので、
ただいま、ちまちまと読んでいる最中。

C#での実用的なコーディングのテクニックを
いろいろと、こまごまと解説している本です。

「Effective C#」はC#のバージョン1.1に対応する内容で
C#2.0の内容は含まれていないが、
2.0以降でも十分に通用する基礎的な内容が多いので
読んでおいて損はない。
というか、
C#プログラマならぜひとも読んでおくべきかと。

「More Effective C#」はその続編で、
前作よりもやや高度な内容と、
C#2.0~3.0で追加された新機能について。
特に、ジェネリックとか設計実装のあたりは
なかなか良いと思う。
マルチスレッドについても書いてあるけど、
内容は悪くないがやや物足りないという感じ。

2010/04/28

Account Suspended ?

OpenTKのサイトに行ったら、
なぜか
"Account Suspended"
となって全く見れない。
Googleの検索結果まで
"Account Suspended"と表示されてるし・・・。
いったい何が?

とりあえずダウンロードだけはできるみたい。
http://en.sourceforge.jp/projects/sfnet_opentk/

追記:
どうやら1~2日程度で復帰した模様。

2010/04/25

GLSharp更新しました

GLSharpを更新しました。
→ ver. 5.4.2

最近、新しいノートPCを買ったのだが、
それでGLSharpのデモを実行したらエラーに。
で、原因を調べてみると、
OpenGLのバージョンを取得するところで、
あからさまに書きかけっぽいコードが・・・
ビデオドライバの挙動によってエラーになったりならなかったりする様子。
さっそく修正しました。

前のバージョンでデモが動かなかった方、
たぶんこの修正で動くようになると思います。
失礼しました。

hyperrefを使うとページサイズがおかしくなる

TeXのはなし。

\documentclass[a4paper,12pt]{jsarticle}
と、A4で指定したはずのページサイズがなぜかおかしくなってしまう。
12ptを10ptに戻すとページサイズが正常になるとか、妙な挙動をする。
いろいろいじってみた結果、
\usepackage[ ... ]{hyperref} をコメントアウトするとページサイズが正常になり、
hyperrefがなにか余計なことをやっているらしいことが判明。

・・・前はこんなこと起こらなかったような気がするんだけど
最近、なにかhyperrefに変更があったんだろうか。

で、hyperrefを使わないわけにもいかないので
なにか対処法がないものかとググってみたところ
hyperrefのオプションに "setpagesize" というのがあって、
いつのまにかデフォルトの値がtrueに変更されたらしい。
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?hyperref#notetext_1
(Ctrl+Fでsetpagesizeを検索しないとなかなか見つからないかも...)
つまり、オプションに "setpagesize=false" を追加すればいいようだ。

しかしなぜ、ハイパーリンクを扱うパッケージで
ページサイズなんぞをいじってるのだろうか・・・?

結論 :
hyperrefを使うとページサイズがおかしくなる場合、
hyperref のオプションに "setpagesize=false" を追加する。
\usepackage[setpagesize=false,...]{hyperref}

_______________________
2010.05.24 追記 :
すいません。訂正しました。
誤) "setpapersize"
正) "setpagesize"

2010/03/28

メタセコの文字を作るツール

誰も使ってないと思いきや、
最近、急にアクセスが増えた模様。
(まあ、それでもたいした数ではないですが。)
意外と、需要がないこともないようで。
String MQObject Builder

なんでアクセスが急に増えたのか不思議に思って
ちょっとググってみたら、
「ぴ」が、すごい回ってたww

だいぶ前に作りっぱなしのままなので、
ここらでちと、作り直してみるのもいいかも。

2010/03/17

GLSharp更新しました。

文字列描画周りのバグを修正しました。
今まで気づかなかったのだが、GDIフォントオブジェクトがリークしていた・・・orz

Font.ToHfont()
で取得したフォントオブジェクトのハンドルは、
自分でDeleteObject(...)で削除しないといけなかったのね・・・。

OpenTKのほうはBeta3がリリースされているけど、
試してみたら
レンダリングコンテキストの初期化でエラーになってしまったので
とりあえず、
GLSharpのほうはBeta2のままです。

あと、ジョイスティック周りのも、
すいませんがもうしばらくお待ちください。

2010/03/01

GLSharpを更新

GLSharpを更新しました。GLSharpを更新しました。

今回は、
ふと思いついたので、
文字列の描画周りの構造をリファクタリングして、
色の変更などができるようにしてみた。

こんな感じ

あと、FPSTimer。
前から、なんかカクカクしてて不安定っぽいな、
とは思っていたので、
YaneSDKから拝借したのをほぼそのままだったのを
いろいろ手を加えてみた。

カクカクしてた原因は、
Thread.Sleep()だったらしい。
指定した時間とこれが実際に待機してる時間が結構違ったりするので、
あんまり当てにしすぎてはいけないらしい。
自分なりにそのあたりを何とかしてみたのだけれど、
前よりもだいぶましになったのではないかと。

2010/02/09

Joel on Software





今回はこれ。
「Joel on Software」
と、その続編
「More Joel on Software」

ソフトウェアに関する
開発やらビジネスの話やら、
いろんなテーマについてのことが
ユーモアに富んだ文章で書いてあって、
ソフトウェアの価格とちょっとした経済学の話なんかも
ときおりまじる冗談に笑いながら読めてしまう。
いろいろと現実的で実用性のある話も多く、
とても面白かった。

ソフトウェアに関わっている人であれば
読んでおいて損はないエピソードが
たくさん詰めこまれている。

ソフトウェアの「コンストラクション」以外の部分について
広く浅く知ることができるという意味では、
以前に紹介した「Code Complete」
と併せて読んでおくのも、
いいかもしれない。