HEXA BLOG
ヘキサブログ
プログラム
無駄の撲滅
こんにちは、ケイタです。
先週東京で初雪が観測されましたが、
昨晩は積もるほどの雪が降りました
そのおかげで今朝は雪化粧された東京の街を見ると言う珍しい体験が出来ました
今は雪はすっかり止んでいますが、まだ路面は凍結しているところが多いので、
夜になって視界が悪くなり、気付かずに滑って転んだりしないように注意が必要そうです
さて、ゲーム機のCPUのスペックが上がるのと同様に、GPUの性能もどんどん上がってきていますが、
それでもゲームで表現したいグラフィックスに性能が及ばず、GPUの処理をオーバーしてしまう場合が多々あります
そこで今回はGPUへの処理負荷軽減の基本的なテクニックを紹介しようと思います
紹介するテクニックを実行しても、必ずGPUへの処理負荷が軽減されるとは限りません。予めご了承ください。
何も描画しないのが最速
早速身も蓋もありませんが、プログラムを書かなければバグは発生しないと同様に、
何も描画しなければGPUへの負荷はほぼ0となります
もちろんゲーム中に何も描画されなければゲームをプレイすることが出来なくなってしまうため、
必要最低限なものだけ描画するというのを念頭に置くのが大切です
カメラに写っていないものは描画しない
前述したように、ゲームの中で必要最低限なものだけ描画するのが大事なので、
カメラに写らないもののは描画の処理そのものをキャンセルするようにしましょう。
これは視錐台カリングを行うことで、大部分が解決するのではないでしょうか
使わない描画設定は切る
機能がONになっているだけでGPUへの負荷が大きくなってしまう描画設定がいくつか存在します。
特にアルファブレンドなどはピクセルシェーダーに大きく負荷をかけるので、
うっかり不透明描画を行っているのにアルファブレンドがONになっていたということがないように注意しましょう。
この場合、描画結果は思った通りになっているのにGPUの負荷だけ高いので気付きにくい場合が多いです
しかし、頻繁に描画設定の切り替えを行うと、動作させるゲームのプラットフォームによっては
かえって処理負荷が高くなることもあります
それを防ぐため、描画前に使うマテリアルごとにソートしておく仕組みや、描画設定のキャッシュ化がされていると尚いいのではないでしょうか
無駄なピクセルシェーダーを動作させないようにする
ピクセルシェーダーとは、名前にピクセルと付いているように、描画するポリゴンの1ピクセルごとに動作するシェーダーです。
そのため、描画するピクセルシェーダーのプログラムが遅く、さらにその描画するピクセル数が多ければ多いほどGPUへの負荷は大きくなります。
そのピクセルシェーダーを最低限動作させるのに簡単な方法として、Zテストを利用する方法が挙げられます
例えば下の画像ではグリとブランが草原の上に立っていますが、画面の多くをブランが占めています。
このブランの後ろには草原が広がっていますが、その草原はブランに隠れて見えないため、
ピクセルシェーダーが動作したとしても無駄ということになります
このような場合、草原を描画するピクセルシェーダーを動作させないためには、
草原より先にブランを描画してしまうのが最も簡単です。
ピクセルシェーダーが動作する条件として、描画しようとするピクセルの奥行き情報を比較し、
手前であると判断されたらピクセルシェーダーが動きます。
そのため、ブランを先に描画してしまえば隠れている草原のピクセルシェーダーは動作しなくなります。
(ただし、Z比較がONになっている場合に限ります)
つまり、カメラから見て手前にあるものから先に描画すると、無駄なピクセルシェーダーの動作を抑えられる場合が多いということになります。
いかがでしたでしょうか?
GPUの性能が上がり、それにつれて求められるグラフィックス表現の幅も広がっています
しかし、その分GPUにかかる負荷も大きくなり続けています。
そのことを踏まえた上で、出来るだけGPUに処理負荷をかけないプログラムをあらかじめ書いておくと、
就職活動用の作品の制作終盤で処理落ちに苦しむことが少なくなるのではないかと思います
それではまた
CATEGORY
- about ヘキサ (166)
- 部活動 (6)
- CG (18)
- プロジェクトマネジメント (1)
- 研修 (5)
- 美学 (1)
- いいモノづくり道 (230)
- 採用 -お役立ち情報も- (149)
- プログラム (188)
- デザイン (99)
- ゲーム (274)
- 日記 (1,104)
- 書籍紹介 (113)
- その他 (875)
- 就活アドバイス (20)
- ラーメン (3)
- ライフハック (25)
- イベント紹介 (10)
- 料理 (23)
- TIPS (7)
- 怖い話 (3)
- サウンド (5)
- 子育て (1)
- 筋トレ (1)
- 商品紹介 (21)
- アプリ紹介 (31)
- ソフトウェア紹介 (33)
- ガジェット紹介 (12)
- サイト紹介 (10)
- 研究・開発 (34)
- 回路図 (4)
- アナログゲーム (40)
- 交流会 (21)
- 報告会 (3)
- インフラ (25)
- グリとブラン (6)
- カメラ (9)
- クラフト (27)
- 部活 (14)
- 画伯 (15)
- カレー (6)
- 音楽(洋楽) (6)
- 映画・舞台鑑賞 (43)
- 飼育 (5)
- いぬ (8)
- ねこ (19)
ARCHIVE
- 2024年
- 2023年
- 2022年
- 2021年
- 2020年
- 2019年
- 2018年
- 2017年
- 2016年
- 2015年
- 2014年
- 2013年
- 2012年
- 2011年
- 2010年
- 2009年
- 2008年
- 2007年