2009年5月29日金曜日

日記ちゃん

 小腹が空いたんでおにぎりを作ったんだ、おにぎり。おむすび。さんかくの。
シーチキンマヨネーズおにぎりを作ったんだけど、シーチキンの油でおにぎりが炒飯のようにぱらぱらになってうまく握れないんだ。
もちろん、シーチキンの油はちゃんと切って使用したんだけど、なかなかうまくいかないもんだね。
あとマヨネーズの味がしない。

 マヨチキおにぎりを作るときは、シーチキンの油をクッキングペーパー等でがっちり取ろう。マヨネーズはありえないほど使おう。と、いう話だったさ。
もしくはおにぎりを作るな。

2009年5月17日日曜日

IndexBuffer

 DrawIndexedPrimitive()しかないものだとばかり思っていたがDrawIndexedPrimitiveUP()も存在することに昨日気がついて、それから今までずっと実装してた。
 std::vector< Vertex >とstd::vector< WORD >にデータをつめこんだあと、DrawIndexedPrimitiveUPでレンダリングする。
 ビデオカードによってはIndexBufferが使えないのもあるようなので、DrawPrimitiveUPでもレンダリングできるよう互換性ももたせる。いまどきそんなPC使う人いんのかよと思わんでもないが。それを言ったら、いまどき頂点つみこみとかせんか。

 やることは簡単なんだけど、デバッグにいちいち表示して確認してたもんだから時間がかかってしょうがないわ。

以下アバウトな実装

/** 頂点情報 */
struct Vertex
{
  float x, y, z;
  D3DCOLOR color;
  float tu, tv;

  // 頂点FVF
  enum { FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1, };
};


/** 頂点バッファ */
std::vector< Vertex > m_vertex;
/** インデックスバッファ */
std::vector< WORD > m_index;



/** 三角ポリゴンの追加*/
virtual bool addPolygon(
  const Vertex& vertex1,
  const Vertex& vertex2,
  const Vertex& vertex3 )
{
  const WORD baseIndex = static_cast( m_vertex.size() );
  m_index.push_back( baseIndex + 0 );
  m_index.push_back( baseIndex + 1 );
  m_index.push_back( baseIndex + 2 );

  m_vertex.push_back( vertex1 );
  m_vertex.push_back( vertex2 );
  m_vertex.push_back( vertex3 );

  return true;
}


/** 描画 */
bool render( LPDIRECT3DDEVICE9 device )
{
  if ( m_index.size()/3 > 0 && device )
  {
    device->SetFVF( Vertex::FVF );
    device->DrawIndexedPrimitiveUP(
      D3DPT_TRIANGLELIST,
      0,
      static_cast( m_vertex.size() ),
      static_cast(m_index.size()/3),
      &m_index.at(0),
      D3DFMT_INDEX16,
      &m_buffer.at(0),
      sizeof(Vertex) );

    return true;
  }

  return false;
}

 注意点として、D3DFMT_INDEX16と指定している以上65535以上のインデックス番号はオーバーフローしておかしくなる。適当にエラー処理は必要。

2009年5月7日木曜日

261号

261号
http://cid-8cd7cf5ea9fbca55.skydrive.live.com/self.aspx/Public/music/no%20name261.ogg

サイズ: 2.0MB
ツール: ピストンコラージュ v.0.9.1.4
     SoundEngine Free ver 3.09
音源: Timidity + eawpatchesFluid - Release 3

 ベースにハープを使うありえない音系。
楽器ごとの音域を把握したほうがいいんだろうね。
ソプラノってどこからどこまで? とかいってる俺は無縁。
近いうちに勉強したい。

 あと、音源を盛大に勘違いしてた。ありえない耳の悪さにびびれ!

2009年5月2日土曜日

日記ちゃん

『何回噛んでる?』片噛みじゃない方、教えて下さい。 -OKWave
http://okwave.jp/qa4852225.html?check_ok=1

 生まれてこの方、ご飯は片方の歯で噛むものだと思ってたけど違うんだ。
ショックを隠しきれない……。
食べ物が左右に半分こされるとか信じられないよ。
ガムとかどうやって噛むん?

259号

http://cid-8cd7cf5ea9fbca55.skydrive.live.com/self.aspx/Public/music/no%20name259.ogg
259号
サイズ: 1.7MB
製作時間: 1時間ぐらい
ツール: ピストンコラージュ v0.9.1.4

 音源を1年半ほど前に使っていたものに戻してみました。
Timidityにeawpatchesって音源を設定しwavに録音したものを使用。素直にmidiでやれ。

 同じコード進行の繰り返しをメロディの変化でごまかす実験。