Papervision3Dで画像がゆがむの回避する方法、どっちがいい?

Papervision3Dでオブジェクトにビットマップ画像を貼り付けたとき、画像がゆがんでしまうのを回避するにはオブジェクトのセグメント数を上げるしかないと思っていたのですが、先日会社で隣の席に座っている@morikenさんにbitmapMaterialなどの引数“precise”をtrueにすることでもゆがみを解消できることを教わったので、せっかくだしちょっと比較検証してみることにしました。
 
まずは画像のゆがみの比較です。
一番左は、普通に貼り付けただけのもの。
真ん中はnew Plane(_material, _w, _h, 4, 4)のような感じでセグメントを4つずつ分割したもの、
一番右はnew BitmapMaterial(bitmap, true)のような感じで、2つ目の引数preciseをtrueにしたものです。
何もしてないのは論外として、真ん中と右を比べると、precise=trueの方が角度によって若干ガタつきが起こっていることが分かります。


 

スピード比較

大量にオブジェクトを作ってスピード比較してみました。上がPlaneのセグメント数を4,4にしたもの、下がmaterialのpreciseをtrueにしたものです。
あからさまにpreciseをtrueにしたものの方が速いことが分かります。
 

 

 
segmentの数を2,2まで減らせばprecise=trueにしたものより速くすることができますが、その場合はprecise=trueの方がゆがみが少なく、表示がきれいになります。
 

 

結論

ほとんどの場合、セグメント数を増やすよりprecise=trueを使う方が良さそうです。セグメント数を増やすのはprecise=trueにしたものよりさらにゆがみを少なくしたい場合でしょうか。スピードは犠牲にすることになりますが、4,4以上のセグメント数にすればprecise=trueより見た目を良くできます。
 
[追記 10/03/17]
soundkitchenさんが検証ソースをwonderflでも動くようにしてくれたので、実際に試してみたい方は以下からFork

 
ソースは以下。
 
Read more »

ENDLESS NIGHTMARE


 
yuuri.co.uk の人と『ENDLESS NIGHTMARE』というプライベートサイトを作りました。ちょっと重いサイトなのですが、良かったら見に行ってみてください。
 
初めて人と一緒にプライベートワークをしましたが、最初にぼんやりとしかないイメージが何倍も良い形のデザインとなって返ってくるのはなかなかすごい体験でした。とても楽しく制作することができました。

ボタン音はMarkさん作。
その他、SEの一部はsoundbible.comのものを使用しています。
 
 
Credit
Design: yuuri (yuuri.co.uk)
Flash: chabudai
Special thanks:Mark

http://endlessnightmare.net/

山と川と緑をもとめて丹波篠山へ

起きている間中パソコンやって、ちょっと寝るだけの生活が続いた8月。突発的に体が自然を要求し、遅いお盆休みを利用して日帰りで丹波篠山方面へ。
山と緑に囲まれて、命の洗濯をしてきました。
 
上の写真は着いてすぐお昼を食べに行ったお蕎麦屋さんからの景色。風の通る涼しい日本家屋で蕎麦を食べながら、ふと横を見ると見える風景がこれ。蝉が鳴いてて、小川の水音がして、風鈴が時々鳴ってて、夏。
 

そばがきというものを初めて食べました。
 
Read more »

FLARToolKitとPapervision3Dをもうちょっとだけがんばってみる

前の記事から一ヶ月以上経ってしまいました…。

AS3.0が少しだけわかってきたので、FLARToolKitとPapervision3Dをもうちょっとだけがんばってみる。

今までこのブログに載せていたFLARToolKitは、すべてFLARToolKitに備え付けのサンプル、SimpleCube.asをもとにしていて、認識したマーカーと常に同じ座標に3Dオブジェクトが表示されているというものでした。これをもう少しだけ変更して、3Dオブジェクトを常にマーカーと同期させるのではなく、マーカーの座標を利用しながら3Dオブジェクトの動きを変化させることができるようにしたいと思います。

言葉だけではわかりにくいですが、以下のようなことがしたいわけです。
 

 
今回もFLARToolKitのサンプル、SimpleCube.asをもとに変更していきます。
(SimpleCube.asの動かし方はSaqoosha.net :: FLARToolKit スタートガイドから)
 
SimpleCube.asの44行目

this._baseNode.addChild(this._cube);

を見ると、cubeが_baseNodeにaddChildされていることがわかります。
_baseNodeとは何かとPV3DARApp.asを見ると、57行目で_sceneにaddChildされており、その一行上で_sceneというのはただのScene3Dということがわかるので、この_baseNodeがマーカーを認識して座標を変更しているものなのだな、と推測することができます。
 
Read more »

背景が黒いWebページにQRコード載せるときは注意が必要

QRコードを配置したページの背景が黒い場合、携帯電話のQRコードリーダーの認識が悪くなることがあるようです。これは良く考えれば当たり前なのですが、画面が暗いとQRコードを読み取るカメラが明るさを勝手に調整して白い部分が光ったようになってしまうからです。

以下は背景が黒い場合と白い場合のQRコードを読み取った画面の比較画像です。背景が黒いと左のように光って、QRコードがほとんど見えなくなっています。


 
実際に試したい場合は以下のサンプルページから。
画面クリックで黒いページと白いページが切り替わるので、携帯電話をかざしたままクリックすると、カメラが自動的に明るさを調整する様子が良くわかると思います。
※トリニトロンのモニターだと輝度が低いため、この現象が起こらないようです。

サンプルページ01 (画面クリックで切り替わります)
 
以下のように、QRコードの明度を下げたり色をつけたりしてコントラストを低くくすれば回避することができます。

サンプルページ02 (画面クリックで切り替わります)
 
もちろんQRコード自体を大きくすることでも認識を上げることができます。ただ多少大きくするよりかは、明度を下げる方が認識度が高いです。

携帯の機種やモニターの明度にも関係して必ず起こる現象ではありませんし、QRコードリーダーの明るさ調整で調整すれば読み取ることもできますが、背景が黒いWebページにQRコードを載せる時はデザインに注意が必要そうです。