2007-12-26[n年前へ]
2007-12-29[n年前へ]
■未来の立体ディスプレイが目の前にいる
Head Tracking for Desktop VR Displays using the WiiRemoteを見た。 Wiiリモコンの先端には赤外線カメラがついていて、赤外光を発する点の座標などを検出して、BluetoothでPCに送信することができる。その機能を使い、赤外レーザーダイオードをメガネにとりつけたユーザの顔位置をWiiリモコンで検出し、その位置に合わせた画像を描画するというシステムだ。結構面白い。
前に『「未来の立体ディスプレイ」を作る』で遊んでみたディスプレイも類似のテクニックを使った立体表示法だ。Head Tracking for Desktop VR Displays using the WiiRemoteがディスプレイが固定されていて、そのディスプレイに対して動くユーザ視点を検地するのに対して、Thinkpadの加速度センサを使った立体ディスプレイの方は、固定されているユーザ視点に対して(位置を変える)ディスプレイが動く、という違いである。Wiiリモコンでなく普通のビデオカメラで同様なことをした例であれば、「ViewFrame2-マーカレス顔部検出手法を利用した“ViewFrame”-」などがある。
誰もが携帯電話や、人によっては、PDAを持ち歩いている。そして、それらの機器には加速度センサや小型カメラといった各種センサが搭載されている。つまり、上にリンクしたような「立体表示」が可能な機器を私たちは持ち歩いている、ということだ。だから、未来の立体ディスプレイがもうすぐ手に入るような気がする。
そして、「視差がないのに立体を表示するディスプレイ」の課題を解消するための鍵は、実は「遠山式立体表示法」の効果原理にあるかもしれない、と素人考えをすることがある。遠山式立体表示法の大きな効果は(そういう発表記事を見たことはないのだが)目のピントが合う領域をごく限られた部分だけにすることができるところに実はあったりするのではないか、と思うことがある。だとしたら、傾けたディスプレイ・デバイスで立体表示すると非常に効果的ではないだろうか、と妄想したりするのである。2008-02-14[n年前へ]
2009-02-15[n年前へ]
■液晶テレビはこうして進化した
最もシンプルかつ安価なディミング方法は、0Dディミングです。0Dディミングでは、求められるレベルまでバックライト全体をディミングし(1セグメント)、フレーム全体の動画信号をこれに合わせて調整します。
それに対し、複数の水平行(10セグメントなど)をベースにした「1Dディミング」によるアプローチでは、必要なレベルまで各行をディミングし、個々の行に属する動画信号をそれに合わせて調整します。
2009-12-04[n年前へ]
■Thinkpad 加速度センサでExcel3次元グラフを未来のディスプレイ風にしよう
Ruby版 Thinkpad 加速度センサ類取得クラスを作ったので、さっそく何か加速度センサを使って遊んでみることにしましょう。まずは、とても簡単に「未来のディスプレイ」を作る風のことを、Ruby+Microsoft Excelで行ってみることにしましょう。
というわけで、Thinkpadを傾けると、それに応じてエクセルの三次元グラフを(傾けた方向に応じた)さまざまな方向から眺めることができるという次のようなスクリプトを書いてみました。
このスクリプトはまずエクセルで(適当な値を代入した)三次元グラフを作成し、(その後の30秒間にあなたがグラフを色々カスタマイズする時間を与えた上で)、30秒経た後にThinkpadの傾きに応じて三次元グラフを好きな方向からリアルタイムにグリグリ動かしながら眺めることができる、というスクリプトです。(動画は「Thinkpad 加速度センサ+RubyによるExcel3次元グラフ動画」で観ることができます)
require 'accelerometer' require 'win32ole' excel=WIN32OLE.new("excel.application") excel['Visible']=TRUE excel.Workbooks.Add() excel.Range("a1")['Value']=1 excel.Range("a2")['Value']=1 excel.Range("a3")['Value']=1 excel.Range("a4")['Value']=1 excel.Range("b1")['Value']=1 excel.Range("b2")['Value']=2 excel.Range("b3")['Value']=2 excel.Range("b4")['Value']=1 excel.Range("c1")['Value']=1 excel.Range("c2")['Value']=3 excel.Range("c3")['Value']=2 excel.Range("c4")['Value']=1 excel.Range("d1")['Value']=1 excel.Range("d2")['Value']=1 excel.Range("d3")['Value']=1 excel.Range("d4")['Value']=1 excel.Range("a1:d4").Select() excelchart=excel.Charts.Add() excelchart['Type']=-4100 sleep 30 # wait time for custumize accelerometer=Accelerometer.new 300.to_i.times do accelerometer.getAccelerometerData x=accelerometer.x y=accelerometer.y r=Math.sqrt(x*x+y*y) elevation=90-r.to_i rot=360-(Math.atan2(y,r)+Math::PI)/(2*Math::PI)*360 excelchart.rotation=rot # 0 to 360 excelchart.elevation=elevation # -90 to 90 sleep(0.2) end excel.ActiveWorkbook.Close(0) excel.Quit()このスクリプトを動かせば、Thinkpadを傾ければ、低い角度からグラフを眺めたり、左右に倒せば左右の異なる方向からグラフを眺めたりする…ということができます。「未来風」かはさておき、現実世界で行う動作に適切に対応した動作、つまりは「実感・体感できる」ソフトウェアを作る、というのは何だかとても面白いものです。
今回作ったスクリプトを動かしているようす、Thinkpad+Ruby+Microsoftエクセルでグラフを未来風にグリグリ動かしている様子を撮影した動画は、「Thinkpad 加速度センサ+RubyによるExcel3次元グラフ動画」として、公開しました。