2008/4/24 木曜日

DirectX プログラミング

カテゴリー: プログラミング — shige @ 19:08:06

例えば沢山のオブジェクトを描画したくて DrawPrimitive の頂点バッファを作るとき、その頂点バッファをどうやって作るのが正しいのかということについて。

[方法1]
DrawPrimitive で描画する単位で CreateVertexBuffer を使って頂点バッファを作成しておく。(配列とかリストにしておく)
それを順番に DrawPrimitive で描画していく。

[方法2]
一回だけ CreateVertexBuffer を使って全てのオブジェクトの頂点バッファを作成しておく。
それを StartVertex でオフセットを指定して DrawPrimitive で順番に描画していく。

最初は StartVertex を指定するのが面倒くさいと思って 1 の方法でコーディングしていたのですが、オブジェクトの数が何十万とかになってくると CreateVertexBuffer が E_OUTOFMEMORY を返すようになってきました。

で、2の方法に変更すると問題なく動くのでやっぱり正しいのは2なんでしょうね。

一人でプログラミングしていると、誰にも聞けないのでやたらと時間がかかるときがあります。最初は「E_OUTOFMEMORYというのなら幾つまでなら作れるのか?」という視点で調べて、全く情報がないことに途方にくれていました。そのうちに書き方が違うのではないかということに気付いたのですが、それでも「正しい書き方」についての情報も見つけることはできませんでした。きっと知っている人には低レベルの問題だったのでしょうけど。

2008/4/18 金曜日

ポルトガルの軍艦

カテゴリー: 旅行 — shige @ 23:24:20

Waimanalo Beach Park にあったクラゲに注意の看板。

p1000660.JPG

ポルトガルの軍艦て何だ?と思ったら、カツオノエボシの英名なのね。変な名前。

2008/4/9 水曜日

Roomba

カテゴリー: 雑談 — shige @ 21:21:36

思ったよりちゃんと掃除してくれますね。

Roomba は部屋のマップは作らずに、前面の衝突センサーによって壁にぶつかったら向きを変えて、時間をかけることで部屋のすべてを掃除するというアルゴリズムだそうです。ですから1回しか通過しない場所もありうるのですが、見てる限りではほぼ全てのエリアを掃除しています。壁にぶつかった時の向きの変え方が賢いのでしょうか。ごみの多い場所は念入りに掃除したり、椅子の足にぶつかったときなどはちゃんと回り込んで掃除してなかなか可愛らしい奴です。

p1000689.JPG

さて日本で売っている Roomba はスケジュール機能付の 570 とスケジュール機能なしの 530 だけですが、US ではさらにスケジュール機能なしモデルには 510、スケジュール機能付モデルには 550, 560, 580 という型番のものがあります。とはいってもそれぞれ本体は同一で、付属しているオプションが違っているだけですが。

その中でも 550 は iRobot のサイトに掲載されていないモデルなのですが、これは 560 の Costco 専用モデルということのようです。ですからもし 570 が欲しいのなら Costco で $280 で 550 を買って、$59.99 でリモコンを買い足せば約 $340 で 570 が手に入るということになります。

とりあえず使ってみた感想としては、$280 だったら絶対買いです。40,000円でちょっと微妙かなという感じ、日本での価格の80,000円前後というのはないかな……。

とはいえその掃除の仕上がり具合には非常に満足しています。

2008/4/2 水曜日

iRobot

カテゴリー: 雑談 — shige @ 17:34:28

ついに念願のRoombaを手に入れた!

日本で買うと8~9万円するけれど、USで買えば$300以下なので、以前からハワイに行くときには買おうと思っていました。でも去年の夏にハワイに来たときにはどこの店にいっても置いていなくて、それ以来探し続けていたのです。

それが今日、Costcoに最後の一つが置いてあるのを発見したのです!マシ・オカ風に「ヤッター」と叫びたい気分です。円高も手伝って約28,000円で手に入れることができました。

2008/4/1 火曜日

休暇

カテゴリー: 旅行 — shige @ 21:17:40

別に何をするわけでもないのですが、またハワイです。

HTML convert time: 1.206 sec. Powered by WordPress