2006-08-01から1ヶ月間の記事一覧

GPUPPURUT開発8

やはりGDXUTのフルスクリーン処理にまだバグがあるようです。一度フルスクリーン化した後にAlt+Tabを押した後、またフルスクリーンに戻ると、見た目はちゃんとフルスクリーンされているように見えます。ですがマウスポインタを画面の端へ持っていくとウィン…

GPUPPURUT開発7

Direct3Dでフルスクリーンの時、Alt+Tabを押すとDirect3DのDeviceがLost Device状態になります。Lost Deviceの時にWndProc関数内でIDirect3DDevice9->Reset()を呼び出すようにしたいとき、DefWindowProcを呼び出した後にReset()を呼ばないとちゃんとフルスク…

GPUPPURUT開発6

GPUPPURUTのDirect3Dで実装したほうのGDXUTでteapotを描画するテストプログラムを書いていたのですが、3つ目の窓を作ったときteapot描画でおかしくなるバグが発生しました。 この原因を探すのに数時間掛かってしまったのですが、結局teapotのメッシュを作成…

GPUPPURUT開発5

今日もGPUPPURUTの開発をしてたのですが、まだ終わりそうにありません。 win32api関連で複数ウィンドウを作るときのバグがまだ残ってます。 やはり後2,3日以上かかりそう。ブースト会議までにそこそこまともなデモを作ることができるだろうか。 一応デモにな…

GPUPPURUT開発4

土日はGPUPPUR開発はやらない予定だったのですが、予定が遅れているため少しGPUPPUURUTの開発をしました。 趣味のプログラミングと仕事のプログラミングで大きく違うことの一つは、仕事のプログラミングだと期限までにある程度完成させないといけないという…

GPUPPURUT開発3

今日もGPUPPURUTの開発を行っていました。 だるくてあまり進んでないですが、GDXUTとGGLUTを一つのVC++2005のプロジェクトにまとめまり、要らないコードやファイルを削除したりしました。 GPUPPURが将来日本人だけでなく、外国の人にも使ってもらうかもしれ…

GPUPPURUT開発2

GPUPPURUTにはDirect3D用のGDXUTとOpenGL用のGGLUTがあって、両者のインターフェースは同じものとなっています。(というかなる予定です) typdef GDXUT GUT;GUT ut;ut.initialize(500, 500, std::string("title")); //縦横が500x500のサイズでウィンドウのタ…

GPUPPURUT開発

Direct3DのDXUTとOpenGLのGLUTのような3D描画に必要だけど面倒なウィンドウ作成、破棄やイベント処理等をやってくれて、Direct3DとOpenGLの両方に対応していて、マルチウィンドウに対応していて、さらにDXUTやGLUTより機能が少ない(必要最低限なことしか実装…

また忘れてしまった

ついこの前に学校で作業したものをそのままにして家で作業の続きができないという痛い目に会ったのに、昨日も同じ事をしてしまいました。 そういうわけで、今度からソースコードをDVD-RWにでも焼いて持ち運ぶことにしようと思います。ソースコードのバックア…

ACとは

未踏ユース採択者のブログとかを読むとACの人やACらしい人がいるようです。 ACについては登さんのブログ http://d.hatena.ne.jp/softether/ に詳しく書いてあるのですが、簡単に言うとhackerみたいな者だと思います。自分はhackerに憧れているのでAC度試験と…

GPUでレイトレーシング

はてなだいやりーで日記を書くを選ぶと22日なのにデフォルトで21日と書かれるのと、夜遅くて注意力が落ちてるせいで、この日に書いた日記を22日の日記で間違えて上書きしてしまった。 バックアップとか、ブラウザのキャッシュとかは無いので、私の記憶が蘇り…

Cgが・・・

昨日、cgGLLoadProgram関数でエラーでて困ってたのですがfragment shaderのdo while文をとったプログラムだと動きました。Cg言語のバグかドライバのバグかは知りませんが、とりあえずこのバグを回避するためcgc.exeでコンパイルしたファイルを使ってみること…

はぁ

今日、久しぶりに学校へ行き、GPUPPURUTを開発しました。設計をいろいろ変更しながらもだいぶ作業が進みました。 ところがどっこい、ソースコードを学校のPCに置いたままにしたため家で開発できナー。 というわけで土日はCg言語とかGLSLあたり弄ってようと思…

未踏ユースのコミュニティサイト

未踏ユースのコミュニティサイトが公開されました。 http://www.wikihouse.com/mitouyouth/未踏ユース関連の方々がコミュニケーションをとることができる集い場ということで、以前未踏ユースをやってた方が今やってる人にツッコミしたり、今やってる人は自分…

現在の状況

お盆休みでちょこっとしか開発してナー。 未踏ユースのIPAに出す計画表等はだいたい完成した。以前AGEIA Developer SupportのDiscussion ForumでHW Batched Raycastsの質問をしたのですが 昨日のお昼頃確認したときはまだ返事がありませんでした。今確認しよ…

GPUPPURUTのワイド文字列対応

GPUPPURUTをマルチバイト文字列とワイド文字列の両方に対応させるため、それぞれの文字列に対応したメンバ関数を用意することにしました。(まるでwin32apiのようにfuncAとfuncWを作ってるような感じだ)ですが、glutの関数はマルチバイト文字列にしか対応して…

GPUPPURUTのコンストラクタが

例えば、 class Hoge { public: Hoge(int foo); Hoge(double bar);protected: init(); Hage hage; Hige hige; Huge huge; };Hoge::Hoge(int foo): hage(), hige(false), huge(NULL) { ::hogefunc(foo); }Hoge::Hoge(double bar): hage(), hige(false), huge(…

GPUPPURへのツッコミ

あるBBSにてGPUPPURの感想が書いてあったのですが、SPAM防止のため書き込めないようになっていたので代りにこちらで返答させてもらいます。はじめまして、GPUPPURを開発している者です。 ツッコミありがとう御座います。 >ray castingについてはPPUのライブ…

ソフトウェアスケジュール

未踏ユースのみなさんは、今頃作業スケジュールを書いているか、もう書き終わってるんじゃないでしょうか。今日作業スケジュールを書いてたんですが、開発項目が15個ぐらいになりました。ドキュメント、サンプルの作成も含めて15項目です。まだ途中なので増…

GPUPPURのライバル?

GPUでレイトレーシングを行う研究がされていて、以下の場所にその研究の論文などがあります。 http://www.gpgpu.org/cgi-bin/blosxom.cgi/Advanced%20Rendering/index.html ここの A Comparison of Acceleration Structures for GPU Assisted Ray Tracing ht…

グラフィックスAPIとwindow

GPUPPURは基本的にDirectXとOpenGLとPhysXのAPIさえ使えばいいと思ってたのですが、DirectXとかOpenGLを使うプログラムには windowの作成、破棄 作成したwindowへレンダリングできるようにする windowに送られるメッセージの処理等 が必要となります。 上の…

GPUPPURの目標など

未踏ユースの提案書に書いたGPUPPURの目標などについて、そのままコピペで下に貼ります。かなり高い目標を設定してしまったと思うのですが、GPUPPURを広く使ってもらうようになるためにはこれぐらい実装しないとダメなんだろうなぁ。目的 3Dグラフィックスを…

GPUPPURでのラスタライズ

今回はGPUPPURでラスタライズ法をどのように行うかについて説明します。 おおまかに説明すると、最初にPPUを使って可視判定を行い、視点から見える図形のみをGPUで通常の方法でレンダリングします。 まず最初に、PPUへ描画したい図形を送って、レイを送って…

GPUPPURでのレイトレーシング

GPUPPURでのレイトレーシングについて説明しますが、絵とか図を使ったほうが分かりやすくなりそうだけど、大きな絵はアップロードできないのでがんばって文字だけで説明します。 まずは、描画したい図形をPPUへ送ります。このときPhysXのAPIを使って図形情報…

PPUとは

最近、ゲームの世界の中の物体を物理的に正しく動かせて現実感を向上させるために、物理シミュレーションを行うコンピュータゲームが増えている。 ゲームに必要な物理シミュレーションに要求される負荷が今後増大することを考え、物理シミュレーション専用ハ…

ラスタライズ法とレイトレーシング法

レイトレーシング法とラスタライズ法 コンピュータで3次元空間の一部を2次元の画像で表現する方法には様々な手法がある。 現在の一般的なコンピュータでリアルタイムに3次元図形を2次元に変換して描画するときにはラスタライズ法が使われている。一方で、時…

はじめまして

未踏ユースに採用されたのでHatena::Diary始めることにしました。提案テーマのGPUPPURについて GPUとPPUを組み合わせて3Dグラフィックスを表示するライブラリ(CPUも使いますが) レイトレーシングとラスタライズの両方を行う。片方だけ使ったり、レイトレーシ…