2008-01-01から1ヶ月間の記事一覧
glBegin( GL_POINT ); では、いくらやっても正しい点描画は得られない。正しくは、glBegin( GL_POINTS ); だ!。
本日の、Form1におけるPaintコールバックはこんな感じだ。Teapotが、オレンジ色の背景の中で、静かにしっかりと回転する。背景のオレンジ色は、64FPSでもって、赤と黄色で交互に背景をクリアしているので、しかもティアリングがないため、オレンジ色に見える…
ファイル名を指定して実行から、dxdiag を立ち上げると、PCの構成部品の詳細(CPU、グラフィックカード、サウンドカード…etc)を一度に知ることができます。しかし、EM64T対応(WindowsXP64とかが動く)かどうかとか知りたかったら、CPU-Zというフリーソフト…
リアルタイム描画環境を実現するゲームループができたところで、次に気になるのがティアリングだ。例えば30FPSで、トップのFormの中に、OpenGLもしくはDirect3Dを関連付け、SwapBuffers()もしくはdevice->Present()を使って、バックバッファをFLIPすると、ひ…
Windowsにおける、リアルタイムアクションゲームのメインループのあるべき姿について方々で調べたところ、システムのタイマーを使うのではなく、ループを自分で作ってしまうアプローチが妥当というか、ポピュラーなようだ。これはGDI、OpenGL、Direct3Dのい…
上述の文脈の流れで、STLのforeachなど、動作の述語引数として、関数オブジェクト、関数ポインタともに受け取るような関数は、 template< class T > void DoSomething( T func ) { int a, b; char* buff; .. func();// Tは引数なしで呼び出せる「何か」でさ…
ある決まったインタフェースのセットをクラスが持つように要求するとき、そのインターフェースのセットそのものをまとめて、「ポリシー」と呼ぶ。そのポリシーを持っているクラスそのものを「ポリシーの実装」や 「ポリシークラス」と呼んだりもする。 たと…
膀胱鏡内視鏡手術というものをやった。 半身麻酔は麻酔のための麻酔をするので本当に最初の細い針が背中でちくっとするだけだった。あとは太い針が入った(らしき)あとは、かすかに背骨の真ん中の方で針が動くときに、チロッ!という痛みがあるかないかくら…
Windowsで、ファイルをコピーする処理を実装するとき、小さなファイルはいいのだが、大きなファイルともなると、数十秒間はコピー処理から帰ってこないことがよくある。そこで思いつくのがプログレスバーなのだが、これがなかなかいい方法がない。 .NET 環境…
また、今日はASP.NETを始めるべく、IISをコンポーネントに追加した。IISはそもそも.NETFrameworkをインストールする前(即ちVSなんかをインストールする前)からコンポーネントとして既に追加されていなくてはならないらしい。が、今回のようにそうでない場…
Formの中に作成したpanelをOpenGLの画面にした状態で、フォームのサイズをマウスで変更すると、サイズを拡大した場合には再描画がされるのに、縮小すると更新されない…。SizeChanged コールバックの中では、Invalidateを呼ぶようにするともちろん描画更新さ…
Curiously Recurring Template Pattern (CRTP)とは、己自身を型パラメータとして実体化したテンプレートクラスを、己自身が継承している様を指す。このようなテンプレートクラスでは、その型パラメータとして受け取った任意型に対し、(それが任意型であるが…
using namespace Microsoft::DirectX::Direct3D;の下で、Fontとしてみても、System::Drawing::Font とバッティングしてしまうので、結局、わざわざMicrosoft::DirectX::Direct3D::Font としなくてはならないのであった。あるいは、Microsoft::DirectX まで見…
改行をbrに変換してくれるツール。便利だ。
本日のお気に入りソフトはFrapsだ。これを常駐させておくとOpenGLやDirectXアプリの画面の四隅のうち設定した場所に、その画面のFPSをリアルタイムに表示してくれる。自作の3Dソフトでやってみたところ、小さいモデルで30FPS、重たいモデルでは6か12であっ…
プロジェクトの「共通プロパティ」>「参照設定」の中に、Microsoft::DirectX::Direct3D があるから安心しただけではだめで、 Microsoft::DirectX や、Microsoft::DirectX::Direct3DXも、追加しておいた方がいいようだ。using namespace Microsoft::DirectX …
vc2005/vc2008ならば、OpenGLアプリも、Win32ではなく.NETで作りたいところ。そんな時はOpenGLSimpleAdapterを利用するのが一番速くて簡単だと思うが、本日記はそのからくり(というほどでもないが)の説明にあたるのでよければ参考にして欲しい。 WindowsFo…
エクセルお勉強のページ。あとははてなの使い方をちょっと覚えた。わかりにくいなあはてなのヘルプ。
C#のサンプルはたくさん見かけたが、C++/CLIでのサンプルは、結局わかりやすい記述がどこにも見つけられなかったからメモ。C++/CLI でやってるヤツなんていなかったりして。 private: System::Void panel1_MouseMove(System::Object^ sender, System::Window…