2011年5月28日土曜日
Radeon HD 5xxx
http://www.4gamer.net/games/085/G008506/20090922002/
DisplayPort x6
http://www.4gamer.net/games/085/G008506/20090921001/
http://www.4gamer.net/games/085/G008506/20090921001/screenshot.html?num=021
http://pc.watch.impress.co.jp/img/pcw/docs/315/783/html/amd-10.jpg.html
多画面
http://www.4gamer.net/games/085/G008506/20090911057/
・プロジェクタブレンディング Mersive /www.realviz.co.jp/product/hardware.html
DirectX11
http://www.4gamer.net/games/033/G003329/20090922001/
半透明化処理を施すOrder-Independent Transparency(オーダーインディペンデント・トランスペアレンシー)
任意の4ピクセルを1命令でブレンドするGather命令でポストプロセシング
光の反射などの環境光処理やシャドウレンダリングにDirectCompute
http://www.4gamer.net/games/033/G003329/20090922001/screenshot.html?num=015
DirectComputeとOpenCL Bulletの対応
2011年5月26日木曜日
3D Vision
2011年5月19日木曜日
スタイライズド・レンダリング
2011年4月7日木曜日
NVIDIA 3D VISION LRバッファ操作
2011年3月22日火曜日
似非SSS
2011年3月16日水曜日
保守的な深度出力(Conservative depth output)
ピクセルシェーダで深度値を変更する場合、
その変更が前方向か、後方向かがあらかじめわかるなら、
(SV_DepthGreater や SV_DepthLessEqual)
高速化への指針になる。
2011年3月14日月曜日
2011年3月3日木曜日
DICE 3Dエンジン Enlighten
- あらかじめ表示用の多ポリゴンのシーンと、対応した超低ポリゴンのシーンを作り込んでおき、そのシーンに対応したライトマップ生成と、あらかじめ設定しておいた複数の調査点(Lightprobes)における間接光量(環境光量)をGPUとは非同期にCPUで求めます。 Lightprobesは低解像度の3Dテクスチャに展開し、Deferred Renderingで、この3Dテクスチャをサンプルしてライティングを実行する…というシンプルな実装です。ポイントはLightprobesを3Dテクスチャに展開してしまい、大局照明的な環境光ライティングをDeferred Renderingに統合してしまっているところです。 PCないしはPS3では有効なテクニックとなるかも知れません。
CPUで粗いジオメトリのシーンに対してのライトマップ生成とLightprobesにおける関節光量を計算(左) |
ライトマップをシーンジオメトリへ適用した結果(左) http://d.hatena.ne.jp/yakiimo02/20110305 |
- EnlightenはReal-Time Global IlluminationのMiddleware。入力のDirect Lightingを元に2次反射バウンス光のIndirect Lightingを計算してくれる。
- PS3版のランタイムコードはSPUを活用。SPUのコードがCUDA実装のベースとなったそうです。
- ランタイムは速度重視。単純なメッシュに対してライティングを行い、結果を実メッシュに投影したり、変化のない場合はCache情報を再利用する(Temporal Coherence)などを行って高速化している。ストリームではそのような話はなかったですが、Siggraph 2010スライドではRadiosityの2次反射Bounceを複数フレームまたいで蓄積していると書かれています。
- 最初はGPU実装だったけど、現世代のゲームはGPUに余裕がある事が少ないので、現在はGPU処理の裏でCPU/SPUにIndirect Lighting処理の計算させている。
- Enlightenは完全動的ではなく、Lightingの複雑な演算部分をツールで前処理計算させて、ツール側で実機で高速に処理ができる構造体に落とし込んでいる。
- 完全動的ではないので背景が破壊されたりする場合は少し工夫が必要になる。セッション中のデモでは天井が破壊され、室内のIndirect Lightingが背景の変化に順応する様子がデモンストレーションされていました。
- 日本の会社を含めた15社が現在Enlightenを使用して開発を行っている。Eve Online、Battlefield 3などが初期使用タイトルとなる。
- 動的オブジェクトはGIの影響を受けるだけで、GIには影響を与えない。
後半はEnlightenのCUDAを使用した高速化の話でした。
- ツールによるプリプロセスとランタイムの両方がCUDAに対応している。
- プリプロセスのレイトレ処理は自前のGPGPUレイトレではなくOptiXを使用している。
- 最初はIntel TBBを使用したマルチスレッドCPU実装だった。
- CPUの場合は1M ray/sec per CPU Core(8コアで 8M ray/sec)がGeforce GTX 470、1個で20M ray/secに高速化された。
- CUDAレイトレ実装の処理時間の50%がCPU-GPU間の転送処理らしく、その部分がネックになっている。
- CUDAの使用でレイトレ処理が約5倍高速化され、Geometry Preprocessing処理全体が2倍程度、高速化された。
- CUDAランタイムだと通常のランタイムより複雑なライティング処理が可能。NVIDIAのセッションなので、そのような話題はなかったですが、CUDAでできるのならDirectComputeでも同様にランタイムの高速化ができるような気がします。
- ランタイム部分の説明ではDirectXとCUDAの切り替えはモード変換を伴うので、遅いから注意が必要だという話もありました。
2011年2月23日水曜日
アンチエイリアス
2011年1月27日木曜日
2011年1月26日水曜日
HLSL 擬似乱数
#define aSubtract 0.2727272727272727
float4 randGrieu(float2 coords : WPOS,
uniform samplerRECT ranTexture) : COLOR
{
float4 t = f4texRECT(ranTexture, coords);
float a = t.x + t.z*cMult + aSubtract - floor(t.x);
a *= a;
float b = t.y + a;
b -= floor(b);
float c = t.z + b;
c -= floor(c);
float d = c;
a += c*cMult + aSubtract - floor(a);
a *= a;
b += a;
b -= floor(b);
c += b;
c -= floor(c); return float4(a,b,c,d);
}
2011年1月13日木曜日
DirectX マルチモニタ フルスクリーンまとめ
マルチモニタ処理
- フルスクリーンのデバイスを作成した同じ Direct3D オブジェクトによって作成されている。
- フルスクリーンのデバイスと同じフォーカス ウィンドウを持つ。
- どのフルスクリーン デバイスとも異なるアダプタを表す。
HRESULT SetFullscreenState( BOOL Fullscreen, IDXGIOutput *pTarget );
これでOutputを直接指定することができる
処理に失敗した場合は、DXGI_ERROR_NOT_CURRENTLY_AVAILABLE を返します。全画面スワップ チェーンをウィンドウ モードに切り替えられない場合、さまざまな理由があります。次に例を示します。- アプリケーションがターミナル サーバー経由で実行されている。
- 出力ウィンドウが遮断されている。
- 出力ウィンドウにキーボード フォーカスがない。
- 他のアプリケーションが既に全画面モードになっている。
2011年1月11日火曜日
R32_UINTでR32_FLOAT
inline float4 EncodeFloatRGBA( float v ) { float4 enc = float4(1.0, 255.0, 65025.0, 160581375.0) * v; enc = frac(enc); enc -= enc.yzww * float4(1.0/255.0,1.0/255.0,1.0/255.0,0.0); return enc; } inline float DecodeFloatRGBA( float4 rgba ) { return dot( rgba, float4(1.0, 1/255.0, 1/65025.0, 1/160581375.0) ); }2011年1月2日日曜日
High-Quality Global Illumination Rendering Using Rasterization
| 1576 | Reply | GPU Gems 2のアレ | Bee | 2010/06/19 03:30 | ||
| 何だか知らない間に某ゲームに使われていたようなので,ちょっと言っておくと, DX11に制限されてもよければ,今ならリストを使ったOITと同じ方法で かなり高速化できるはず.ソートすらいらないので,100Mrays/secぐらい出るかも.暇があれば自分で試してみたい. | ||||||