アカウント名:
パスワード:
リアルタイムレイトレーシングはいつかできる事は分かりきっていた事だけど、とにかく製品レベルになったのは素晴らしい。ただどこまで実用レベルなのかは怪しいとは思う。
レイトレーシングってのは例えばタイルに球みたいなのだと大昔のPCでも自前実装でもできたりするけどちょっと複雑になると(水やガラスが混ざると)とてつもない時間がかかる。例えば水平線上の太陽みたいな単純な絵でもきちんと描画するとCPUで一晩掛かったりする(でこぼこの波は反射したり透過したり複雑な経路を辿る為)。ボトルネックとなるのは多分メモリ周りで、なぜかと言えばどの画素を描画するにしても画面内全てのオブジェクトと交差判定をしなければならない。その為GPUらしい並列処理はしづらいだろう。ついでに一画素一レイではなくてたくさん計算して平均を取らないと変な絵にもなる。具体的にはエイリアスだとかぼやけたりする。それから普通レイトレ系(プリレンダ)をやってる人はポリゴンリッチ・テクスチャプア、というかテクスチャはわざわざ自分で描かずに既存のマテリアルを使ってると思う。だってその方が「正しい」し、絵を一枚作るのが目的の場合が多いから作業コスト削減が至上というのもある。
しかし実用レベルになればゲームからUIまで圧倒的な影響がある。何より絵を作るのが簡単。シェーダーを書かなくていいし、テクスチャも描かなくていいし、作品を超えても使いまわせるはず。例えば蛇口の形状なんてのは世代が変わっても一つで十分だし、幾何学的に正しく作れば改良する余地もない。ゲームならポリゴン数や絵作りに応じてとか色々あるかもしれないけど。特に反射や透過や影が関わればいろいろ工夫して誤魔化して何とかしなきゃいけない。一方できる絵は単純に実写レベルのリアルな絵だけなので(輪郭描いたりいろいろすればトゥーンにもなるけど要は画像加工の延長)シェーダーを使った画作りは今後も一定の需要はあるとは思う。軽いし。次いでUIとしても便利。何より現実にあるオブジェクトがそのまま画面内に見たとおりに持っていけるのでスキューモーフィズムが帰ってくる。仮にモバイルにレイトレチップを積むとすればレイトレーシング以外の仕事ができないから休ませるのは勿体ない。単純な形状ならそこまで重くないから散々使われるだろう。もちろんPCにもね。もちろん今レイトレやってる人にも便利。レイトレーシングなんてソフト落としてきてモデリングしてボタン押せばできるが時間がかかる。CUDAとか使えるらしいがそこまで早くはならないらしい。重い処理をGPUでやれるなら単純に助かる。すぐプレビューできるだけでも効率的。
間違いなく今後レイトレーシング主流にシフトしていく事になるだろうけど、シェーダーにできてレイトレではできない事が結構あるから(ポストエフェクトとか)単純に数年で置き換わるといえばどうだろう。特にある程度経たないとUI一般の処理には使えないだろうからもしかするとしばらくは二分化するかもね。
今のところはそこまでの影響は無さそうです。
DirectX Raytracing [nvidia.com]やOptiX [nvidia.com]のドキュメントを見る限り、結局のところジオメトリの複雑さに応じて処理は遅くなりますし、反射回数を増しても処理は遅くなりますので、重要度が低いオブジェクトは簡略化するなどのモデリングは必要となります。
オフラインレンダリングレベルのパストレーシングをそのまま実装するのも無理です。10 Giga rays/sではフルHDで60 FPSだと1ピクセル1フレームあたり約80レイ程度になり、1反射ごとに1レイ使う計算なので、1ピクセル1フレームあたり数サンプル程度が限界になると思います。それで愚直にパストレーシングを実装するとノイズだらけになるので、「AIを使ったデノイザ」とか「ハイブリッドレンダリング」とか言っているのだと思います。
職人芸的シェーダも少なくとも近い未来には無くならないと思います。レイとオブジェクトの交点計算や、レイがヒットしたときの処理はプログラマブルシェーダによってカスタマイズでき、特殊な形状や質感を表現するために様々なシェーダが作成されるはずですし、そこではテクスチャも多用されると思います。
スキューモーフィックなUIに関しても現実のオブジェクトをモデリングして適切なマテリアルを設定するのは一般的なアプリ作成者にとっては大変ですし、現実のオブジェクトを模したものが必ずしも分かりやすい訳でも使いやすい訳でもないですし、現実のオブジェクトに対応するものが無いものも多くあります。
補足:他にレイトレが便利なのはポリゴンを使わなくてもいい。というかレイトレの場合法線が正しい方向を向いていないといけないからそういう形式で形状を表現しないといけない。例えば球は球として表現する。別にそうしなくてもいいけど自前実装ですらそうする。複雑な形状の場合はNurbsという形式を使うのが基本かな。要するに固定機能シェーダー・プログラマブルシェーダーをラスター形式だとすれば、レイトレはベクター形式を好む。
それから実は
レイトレって、光線と物体の交点とその場所の法線の方向を取得しなきゃいけないけど、NURBSみたいなのは現実的に役に立つんですか?CADの論理演算とかとは比較にならないほどの演算量が必要になりますよ。結局ポリゴン化してエミュレートするなら、ゲームでのレイトレの利点はさほどないような…映画、CM、建築・照明デザインの確認やプレゼントとかでは高速化の需要はあるでしょうが。
10 Giga Rays/sとかいう数値も、ベンチマークとなるオブジェクト空間のデータを公開しなきゃ意味のない数字でしかない気がします。
十年くらい前からNvidiaはB2Bを強化していてゲームはついでです今回もゲームはたぶんついでまあ回路規模が大きくなればそのうちゲームにも普及するでしょうけどその前にシュリンクが止まるか或いはプラズマ液晶戦争のようにポリゴンでいいやってなるか…
デモにレイトレらしい動画が一つもないからねとりあえず疑惑モードで様子見している。
以前のUnreal Engineのデモ [youtu.be]では一回反射・光源たくさんの分かりやすくて軽い処理をわざわざしてましたね。実際ゲームで安定して30fpsくらい出すとなるとそれでは実用とは言えない。一回反射でリアルっぽい絵が欲しいだけならシェーダーでも天球を描画あるいはあらかじめ天球を作っておいてそれを参照すれば二倍以内の処理でできてしまうし、透過や屈折の多いシーンを忠実に描写したところでどこまでインパクトがあるかというのもあるし、必要かどうかも怪しいといえば怪しいですけど。乱反射の表現はシェーダーでは難しいですが。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人はmoriwaka -- Anonymous Coward
これは凄い (スコア:1)
リアルタイムレイトレーシングはいつかできる事は分かりきっていた事だけど、とにかく製品レベルになったのは素晴らしい。
ただどこまで実用レベルなのかは怪しいとは思う。
レイトレーシングってのは例えばタイルに球みたいなのだと大昔のPCでも自前実装でもできたりするけどちょっと複雑になると(水やガラスが混ざると)とてつもない時間がかかる。
例えば水平線上の太陽みたいな単純な絵でもきちんと描画するとCPUで一晩掛かったりする(でこぼこの波は反射したり透過したり複雑な経路を辿る為)。
ボトルネックとなるのは多分メモリ周りで、なぜかと言えばどの画素を描画するにしても画面内全てのオブジェクトと交差判定をしなければならない。
その為GPUらしい並列処理はしづらいだろう。
ついでに一画素一レイではなくてたくさん計算して平均を取らないと変な絵にもなる。具体的にはエイリアスだとかぼやけたりする。
それから普通レイトレ系(プリレンダ)をやってる人はポリゴンリッチ・テクスチャプア、というかテクスチャはわざわざ自分で描かずに既存のマテリアルを使ってると思う。
だってその方が「正しい」し、絵を一枚作るのが目的の場合が多いから作業コスト削減が至上というのもある。
しかし実用レベルになればゲームからUIまで圧倒的な影響がある。
何より絵を作るのが簡単。
シェーダーを書かなくていいし、テクスチャも描かなくていいし、作品を超えても使いまわせるはず。
例えば蛇口の形状なんてのは世代が変わっても一つで十分だし、幾何学的に正しく作れば改良する余地もない。
ゲームならポリゴン数や絵作りに応じてとか色々あるかもしれないけど。
特に反射や透過や影が関わればいろいろ工夫して誤魔化して何とかしなきゃいけない。
一方できる絵は単純に実写レベルのリアルな絵だけなので(輪郭描いたりいろいろすればトゥーンにもなるけど要は画像加工の延長)シェーダーを使った画作りは今後も一定の需要はあるとは思う。軽いし。
次いでUIとしても便利。
何より現実にあるオブジェクトがそのまま画面内に見たとおりに持っていけるのでスキューモーフィズムが帰ってくる。
仮にモバイルにレイトレチップを積むとすればレイトレーシング以外の仕事ができないから休ませるのは勿体ない。
単純な形状ならそこまで重くないから散々使われるだろう。もちろんPCにもね。
もちろん今レイトレやってる人にも便利。
レイトレーシングなんてソフト落としてきてモデリングしてボタン押せばできるが時間がかかる。
CUDAとか使えるらしいがそこまで早くはならないらしい。
重い処理をGPUでやれるなら単純に助かる。すぐプレビューできるだけでも効率的。
間違いなく今後レイトレーシング主流にシフトしていく事になるだろうけど、シェーダーにできてレイトレではできない事が結構あるから(ポストエフェクトとか)単純に数年で置き換わるといえばどうだろう。
特にある程度経たないとUI一般の処理には使えないだろうからもしかするとしばらくは二分化するかもね。
Re:これは凄い (スコア:2)
今のところはそこまでの影響は無さそうです。
DirectX Raytracing [nvidia.com]やOptiX [nvidia.com]のドキュメントを見る限り、結局のところジオメトリの複雑さに応じて処理は遅くなりますし、反射回数を増しても処理は遅くなりますので、重要度が低いオブジェクトは簡略化するなどのモデリングは必要となります。
オフラインレンダリングレベルのパストレーシングをそのまま実装するのも無理です。10 Giga rays/sではフルHDで60 FPSだと1ピクセル1フレームあたり約80レイ程度になり、1反射ごとに1レイ使う計算なので、1ピクセル1フレームあたり数サンプル程度が限界になると思います。それで愚直にパストレーシングを実装するとノイズだらけになるので、「AIを使ったデノイザ」とか「ハイブリッドレンダリング」とか言っているのだと思います。
職人芸的シェーダも少なくとも近い未来には無くならないと思います。レイとオブジェクトの交点計算や、レイがヒットしたときの処理はプログラマブルシェーダによってカスタマイズでき、特殊な形状や質感を表現するために様々なシェーダが作成されるはずですし、そこではテクスチャも多用されると思います。
スキューモーフィックなUIに関しても現実のオブジェクトをモデリングして適切なマテリアルを設定するのは一般的なアプリ作成者にとっては大変ですし、現実のオブジェクトを模したものが必ずしも分かりやすい訳でも使いやすい訳でもないですし、現実のオブジェクトに対応するものが無いものも多くあります。
Re: (スコア:0)
補足:
他にレイトレが便利なのはポリゴンを使わなくてもいい。
というかレイトレの場合法線が正しい方向を向いていないといけないからそういう形式で形状を表現しないといけない。
例えば球は球として表現する。別にそうしなくてもいいけど自前実装ですらそうする。
複雑な形状の場合はNurbsという形式を使うのが基本かな。
要するに固定機能シェーダー・プログラマブルシェーダーをラスター形式だとすれば、レイトレはベクター形式を好む。
それから実は
Re: (スコア:0)
レイトレって、光線と物体の交点とその場所の法線の方向を取得しなきゃいけないけど、NURBSみたいなのは現実的に役に立つんですか?
CADの論理演算とかとは比較にならないほどの演算量が必要になりますよ。
結局ポリゴン化してエミュレートするなら、ゲームでのレイトレの利点はさほどないような…
映画、CM、建築・照明デザインの確認やプレゼントとかでは高速化の需要はあるでしょうが。
10 Giga Rays/sとかいう数値も、ベンチマークとなるオブジェクト空間のデータを公開しなきゃ意味のない数字でしかない気がします。
Re: (スコア:0)
十年くらい前からNvidiaはB2Bを強化していてゲームはついでです
今回もゲームはたぶんついで
まあ回路規模が大きくなればそのうちゲームにも普及するでしょうけど
その前にシュリンクが止まるか或いはプラズマ液晶戦争のようにポリゴンでいいやってなるか…
Re: (スコア:0)
デモにレイトレらしい動画が一つもないからね
とりあえず疑惑モードで様子見している。
Re: (スコア:0)
以前のUnreal Engineのデモ [youtu.be]では一回反射・光源たくさんの分かりやすくて軽い処理をわざわざしてましたね。
実際ゲームで安定して30fpsくらい出すとなるとそれでは実用とは言えない。
一回反射でリアルっぽい絵が欲しいだけならシェーダーでも天球を描画あるいはあらかじめ天球を作っておいてそれを参照すれば二倍以内の処理でできてしまうし、透過や屈折の多いシーンを忠実に描写したところでどこまでインパクトがあるかというのもあるし、必要かどうかも怪しいといえば怪しいですけど。
乱反射の表現はシェーダーでは難しいですが。