2008-01-01から1年間の記事一覧

wavelet tree

圧縮検索で使われる技術wavelet treeをテンプレートライブラリとして書いてみました。 →を参考にしてみました。高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」 元となる記事が大変興味深かったのだけど、どうもサンプルコードが複雑すぎるのと、…

正しい 演算子"<<" の定義の仕方

C++で何らかの型を定義して、その型を文字列に変換したいとき、演算子" class Hoge{ public: //たとえば配列のような型だったとする size_t size()const{/*略*/} int operator[](size_t i)const{/*略*/} /*略*/ }; Hoge hoge; std::cout << hoge << std::end…

画像の無限平面化

テクスチャなどに使う画像は有限の大きさを持つが、これを無限平面として扱えるようになると便利だ。 たとえば画像の任意のピクセルを参照するときX,Yでその位置を指定するが、X,Yの範囲値はそれぞれ 0 になる。 この範囲を超えてアクセスした場合、エラーと…

三角形のラスタライズ

三角形のラスタライズを行うには以下の手順を踏む 1.三角形の上下分割 2.Yスキャン 3.Xスキャン ・三角形の上下分割 三角形を上下2つに分けることでスキャン変換がしやすくなる 1.3つの頂点を縦方向にソートする 2.真ん中の頂点の高さと最上点か…

C#でパストレ

非常に眠いのだが、明日のOoOに何も用意してないので、これはまずいと思い、 前回C#で書いたレイトレを改造してパストレを書いてみた。 パストレ自体は難しくないんだが、球だけではちょっとわかりにくいので 平面を加え、シェーダーを物体から分離したりし…