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

C++0x のconceptが却下されるのか?

C++

という噂があるらしい。が、ほのめかすだけできちんと説明してくれてる記事がなかなか見つけられない…。conceptsはある意味C++0xの目玉機能の一つだと思ってたのにぃ。。テンプレートがより明示的でわかりやすくなるものらしいと楽しみにしていたのだが、ポ…

三角ストリップ頂点インデックスの展開

三角ストリップになった頂点インデックス並びを、普通の三角頂点インデックスに展開するための最短変換コードを考えました。もういちいち毎回悩まなくてもいいのです!ループの中に条件判定もないし、おまけにreserveもかましてるので、パフォーマンスも完璧…

空ドームに、サボテンに、、

空ドームが完成した。砂漠の中にいます。ウォークスルーカメラを完成させて下さい。CADとかツール系の仕事ばっかやってると本来OpenGLでできること、まだまだやりたかったことを忘れてしまいそうになるね。それはとてももったいないし、さびしいことだ。もっ…

vc2008SP1でtr1::bindを使う

C++

vc2008のSP1でtr1::bind()を使う場合は、 std::tr1::bind( &shScene::Draw, this->m_scene, _1 ), だとどうも、「_1」が不明ですとか言われてしまう。これは std::tr1::bind( &shScene::Draw, this->m_scene, std::tr1::placeholders::_1 ), という感じで「p…

ExclusiveMMTimer(マルチメディアタイマーラッパ)

(2015年11月1日更新:以下、lc_timerCBの引数後ろ三つを、DWORDからDWORD_PTRへ修正。timeSetEventの第三引数が正しくreinterpret_castできないことがあったため) Win32のnative環境で高精度タイマーと言えばマルチメディアタイマーだが、今回はこのマルチメ…

WindowsFormアプリでのマウスホイールコールバックについて

C++/CLI でWindowsFormアプリ開発な場合、マウスホイールのコールバックは、デフォルトではFormのコールバックの中にない、というか見当たらない。だからわざわざ、Form作成時に呼ばれるLoadコールバックの中で、 this->MouseWheel += gcnew System::Windows…

飽きないように

研究意欲や創造性、というのは、季節の移り変わりのごとく周期的にやってくるもののようだ。、、いや、自分の場合だけかも知れんが、。。何かを達成した後は、しばらくそれをやる気が沸いて来ない。。やりたいとかやらねばとかはずっと思っていて、その情熱…

OpenGL Simple Frame

OpenGLアプリをさくさくたくさん作りたいと常日頃から考えているのだが、OpenGLアプリを作成するたびに、フレームワークの中であちこちに散在する決められたコールバック関数の中に、毎回同じようににOpenGLの定番コードを、思い出しながらあるいは本やサイ…

OpenGLスターターコード

OpenGLSimpleAdapterを使って、OpenGLを使った描画が簡単にできるようになったのはいいが、OpenGLを使った本格シーン描画コードがとりあえずいきなり欲しい、カメラとかライトとかマテリアルとかテクスチャとかきまりきった初期化コードを1から毎回書くのは…

コールバック・オブジェクト(〜そしてboost::functionを知る)

C++

ライブラリやアルゴリズムの内部に、外部モジュールで定義したコールバックを登録しておいて、アルゴリズムの方で何かあったら、その登録しておいたコールバックが呼ばれるようなしくみを作りたい。 例えばアルゴリズムが発したエラー通知やメッセージを受け…

CPUクーラー変えた

Core2DuoE8600についてきた純正のCPUクーラーがうるさいなーと思うようになってきたので、 Spire MOSTRO SP678B0-1-J に変えてみた。 取り付けは、マザーボードの裏側に台座を取り付けなくてはならないので、マザボにつながってるありとあらゆるボードやケー…

マーチングキューブズ(6)14グループの描画確認

コンフィギュレーション#6の件などで、マーチングキューブズの穴問題について各種文献を調査中だ。 ところでその中で気付いたのだが、15グループを基本コンフィギュレーションとしている文献が結構見受けられる。これまでの考察により、私としては256通り…

マーチングキューブ(5)…そしていやな予感

コンフィギュレーション#6のループ形状作成とテセレーションについて考えてみた。が!。何通りも可能なソリューションがエッライぎょうさんあるやないかーい。全然14パターンとかそういう単純な話ちゃうやないかーい。ルネッサーンス! まずループ二つがいい…

マーチングキューブズ(4)穴のあくケース

マーチングキューブにおける問題点。グループ#6の場合。一見どちらのテセレーションでもよさそうなのだが、片方だけしか使ってないとこのような穴形状を生じてしまう。たしかにアルゴリズムの持つ本質的な不具合といえそうだ。 これはサンプリングが粗いか…

マーチングキューブズの旅(3):各エントリの相対配置について

暇つぶしとしてのマーチングキューブズ自作研究も3回目を迎えたよ。今回は、各グループにおける、各コンフィギュレーションエントリと、そのプライマリコンフィギュレーションとの相対配置関係を情報化することを考えよう。 マーチングキューブズにおいて予…

マーチングキューブズの「14通り」を探す旅(2)

前回に引き続き、あまり語られてこなかったマーチングキューブズ法の謎を追う旅の途中だが、ここでは前回示した、14グループとそのコンフィギュレーションの探索を行った際の、実装上の詳細とノウハウをメモしておく。格子内の8つの頂点について、IDを振る…

マーチング・キューブズ法の「14通り」の謎を解く

Isosurfaces: Geometry, Topology, and Algorithms作者: Rephael Wenger出版社/メーカー: A K Peters/CRC Press発売日: 2013/07/31メディア: ハードカバーこの商品を含むブログ (1件) を見るマーチング・キューブズ法(Marching Cubes)は、3次元格子の頂点位…

流れるように生きてこそ

流体の動きを見ればわかるように、やはり物質の流れの中に生き、そして自身も究極には物質の流れ・渦のようなものでしかない我々としては、周囲状況との協調を無視しては決して生きていくことなどできないと知れば、純粋科学のようなものをいくらどんなに極…

オブザーバーパターンエンジンの自作を検討しよう

C++

ユーザーインタフェースつきのアプリケーションを作成する上で、オブザーバーパターンは必須だろう。あるボタンが押されたときに、「このクラスのあの値とあの値を更新して、あれを再計算して、こっちのウィンドウのここんとこの表示も更新して」、なんてや…

やっぱりMFCでしょ

(はじめに:「再頒布」の読み方は「さいはんぷ」。だよん) WindowsアプリケーションをC++で作るとき、ユーザーインタフェースのところをMFCで作るべきか.NETで行くべきかと今更のように毎回悩んでしまう輩も多いのではないだろうか。今回一仕事を終えたタ…

2次元の等高線を作成する関数テンプレート

2次元の等高線を作成する関数テンプレートを作成したよ。よかったら使ってみてくれ。縦横の格子の各頂点に高さ、温度、密度などの「値」がセットされていたとして、あとは閾値さえ与えてやれば、 等高線の輪郭線形状 等高線の輪郭線形状で囲まれた図形領域の…

vector, list, set, dequeのパフォーマンスを実験したよ

C++

やあ子供たち。今日はSTLのstd::⇒ vector, list, set, dequeのパフォーマンス測定の実験をしたよ。以下のようなコードだ。試してみてくれ。 #include <iostream> #include <vector> #include <list> #include <algorithm> #include <ctime> #include <set> #include <deque> using namespace std; #define N 1000000</deque></set></ctime></algorithm></list></vector></iostream>…

MFCが進化しているみたいだ

C#とかVBとかの華々しさに押され気味だったかに見えたネイティブC++だが(C++/CLIのことじゃないよC++/CLIはどっかに飛んで行け!)、そんなネイティブC++で使用する、これからはもう廃れていくだけだと思っていたあのMFCが、VC++2008から、実に10年ぶりくら…

粒子法シミュレーション:浮力

粒子法シミュレーションでは、粒子間の相互作用計算しかしてないのに、シーンの構築さえ適切に行ってやれば、いろいろな身近な物理現象によく似た挙動が簡単に再現できてしまうところが楽しい。物理現象と呼ばれているものは、人間がそれを見てどこで抽象化…

3年ぶりのスノボ

久々に志賀高原にスノボしに行った。もともと遊び慣れていない上に3年ぶりに行ったので結構忘れてたことや知ったことなどをメモ。 東京のレンタカーは会社によってはチェーンを貸してくれない、スタッドレスはあるが4駆じゃなかったり、そもそも東京でレン…

MFCと不毛な時間

(後日記)VC++2008からMFCは再び進化を始め、C++のネイティブコードの重要性を再認識し始めたマイクロソフト戦略の一部なのか、TR1やらMFCの新機能、FeaturePackの配布など、いろいろされているようなので、以下のMFCを過去の遺物と割り切ったような語り方…

Microsoft Visual Studio 2008 Service Pack 1

Microsoft Visual Studio 2008 Service Pack 1 がいつの間にか出ていたわけだが、、気をつけよう、インストールは結構時間かかるよ!少なくとも30分から1時間くらいはみといた方がよさそうだぜこれは。。 あと再頒布可能パッケージ(←何て読むのこれ?)も、…

粒子法もどき:小胞のシミュレーション

弾性体のパラメータがひとまずわかってきたので、今度はこの弾性体を膜に見立てて、一定数粒子からなる中身が膜に包まれた構造を持つ小胞をたくさん作成して、赤血球のようなものが互いに絡み合いながら、然るべき経路を旅する様子を再現してみた。 それなり…

関数オブジェクトを作って遊ぼう

C++

便利な自作ファンクタをいくつか作ったのでメモ。ありそうでないので自作してみたよ。 mem_comp 任意型のオブジェクトについて、指定したメンバ、メソッドの値で、比較演算を行う。比較演算述語を指定することも可能。デフォルトは比較される対象の型の、les…

粒子法ししおどし〜弾性体による

弾性体を導入し、日本の伝統的なシシオドシライクなシステムを作ってみた。そろそろ飽きてきた気もするが、PUMP面環境は意外にいろいろ試すのに便利だから何かと流用してしまう。今回は右側のポンプの回転数を落としているがそれはシシオドシの喜びを際立た…