■
導入
実行中、Redshiftは3Dアプリケーションのスクリプト/コンソールウィンドウに多数の有用なメッセージを表示します。 混乱を避けるため、デフォルトの動作ではこれらのメッセージのサブセットのみを出力します。 スクリプトウィンドウですべてのログメッセージを表示するには、Redshiftの冗長レベルを「Debug」に設定します。 このオプションは[System]タブにあります。
3dアプリケーションのスクリプト/コンソールウィンドウとは別に、Redshiftはすべてのメッセージをログファイルに保存します。
ログファイルメッセージの解析を学ぶことは、レンダリングエラー、レンダリングの失敗、認識されないシェーディングノード、テクスチャの欠落などのレンダリングエラーを診断する場合に役立ちます。また、レンダリングのプロセスをよりよく理解し、レンダリングを最適化する方法をいつでも知ることができます。
■
ログファイルの場所と構造
Redshiftのログファイルの場所は、Redshiftの[System]タブを使用して各3Dアプリケーションでカスタマイズできます。 ただし、ほとんどのユーザーは、次のデフォルトの場所を使用します。
Windows
C:\ProgramData\Redshift\Log
Linux
~/redshift/log
Redshiftのログフォルダには、次のようなフォルダのリストがあります。
Log.Latest.0 Log.20150904_1236.0 Log.20150904_1231.0 Log.20150903_1950.0 … and so on
各ログフォルダは、 “Redshiftセッション”を表します。 Redshiftがインストールされ、3Dアプリケーションの起動時に自動的に初期化されると仮定すると、3Dアプリケーションを起動するたびに新しいログフォルダが作成されます。
最新のRedshiftセッションは、「Log.Latest.0」フォルダに含まれています。 残りのフォルダには最後の数セッションが含まれます。
フォルダ名の最初の部分は年 – 月 – 日形式の日付で、2番目の部分は時間です。 したがって、上記のリストでは、Log.20150904_1236.0という名前の最初のフォルダは2015年9月4日12:36に作成されました。
フォルダ名の末尾の数字は、同じ時間:分の時間内に複数のログファイルが競合する場合に使用されます。たとえば、3Dアプリケーションを非常に迅速に開閉すると、同じ分に複数のログファイルが作成されます。Redshiftがそれを検出すると、フォルダ名の最後の数字がインクリメントされ、フォルダ名が.1または.2で終わるように表示されます。 このようなログフォルダの競合は、複数のインスタンスのMayaを使用して複数のフレームを同時にレンダリングする場合など、3Dアプリケーションの複数のインスタンスを使用してレンダリングする場合にも発生します。
■
標準的なログファイル
初期化
ログファイルの最初の部分は、Redshiftのバージョン、パスの場所、およびいくつかの基本的なCPUとGPU情報に関する情報を出力します。 これらのメッセージは、Redshiftの初期化段階の一部としてプリントされます。
PCIe(PCI express)の性能を測定するために、各GPUで迅速な診断が実行されます。 PCIe(「the bus」とも呼ばれます)は、GPUと残りのコンピュータを接続するコンピュータコンポーネントであり、レンダリングパフォーマンスに影響を与えます。 悪いマザーボードドライバまたはハードウェアの問題は、PCIeのパフォーマンスに悪影響を及ぼし、レンダリングのパフォーマンスを低下させる可能性があります。 理想的には、固定メモリの帯域幅は、5または6GB / sに近くなければなりません。
初期化段階で最後にプリントされた行も非常に重要です!これは、レンダリング中にRedshiftがどれくらいのGPUメモリ(別名「VRAM」)を使用できるかを示します。 同時に他の3Dアプリケーションを実行している場合、Redshiftは少ないVRAMを使用できます。 ここからわかるように、ビデオカードには4GBのメモリが搭載されていますが、Redshiftでは3.2GBしか使用できませんでした。 これは、このコンピュータには他の3DアプリとChromeウェブブラウザが稼動していたためです(どちらも大量のVRAMを消費する可能性があります)。 VRAMの使用方法の詳細については、このドキュメントをお読みください。
Version 1.2.90, Sep 3 2015 Plugin filename: C:\ProgramData\Redshift\Plugins\Maya\2015\nt-x86-64\redshift4maya.mll Plugin path: C:\ProgramData\Redshift\Plugins\Maya\2015\nt-x86-64 Local data path: C:\ProgramData\Redshift Core data path: C:\ProgramData\Redshift Primary license path: C:\ProgramData\Redshift Preferences file: C:\ProgramData\Redshift/preferences.xml Extensions path: C:\ProgramData\Redshift\Plugins\Maya\2015\nt-x86-64\extensions Loading extensions... Done! Cache path: C:\Users\panos\AppData\Local\Redshift\Cache Redshift Initialized Windows Platform Release Build Number of CPU HW threads: 8 CPU speed: 3.50 GHz Total system memory: 31.93 GB Initializing GPUComputing module (CUDA). Ordinal 0 CUDA Ver: 7050 Device 0/1 :Quadro K5000 Compute capability: 3.0 Num multiprocessors: 8 PCI busID: 1, deviceID: 0, domainID: 0 Theoretical memory bandwidth: 172.800003 GB/Sec Allocating mem for bandwidth test... Running bandwidth test... Measured PCIe bandwidth (pinned CPU->GPU): 5.633076 GB/s Measured PCIe bandwidth (pinned GPU->CPU): 5.506496 GB/s Measured PCIe bandwidth (paged CPU->GPU): 3.497317 GB/s Measured PCIe bandwidth (paged GPU->CPU): 3.443535 GB/s Estimated GPU->CPU latency (0): 0.022481 ms Estimated GPU->CPU latency (1): 0.021672 ms Estimated GPU->CPU latency (2): 0.022058 ms Estimated GPU->CPU latency (3): 0.021900 ms New CUDA context created Available memory: 3282.3281 MB out of 4096.0000 MB
Scene extraction
Scene extractionとは、Redshiftが3Dアプリケーションから独自のメモリにデータを取得するプロセスです。 そのデータにはポリゴン、ライト、マテリアルなどが含まれます。シーンに多量のオブジェクトやポリゴンがある場合、抽出段階が長くなることがあります。 シーンに該当する場合は、Redshiftプロキシを使用することをお勧めします。
Redshiftは、ログファイルに複数フレームのメッセージが含まれている場合に便利なフレーム番号も出力します。
Redshift for Maya 2015 Version 1.2.90, Sep 3 2015 Rendering frame 1 Scene extraction time: 0.01s
レンダリング – 準備段階
これはRedshiftのレンダリングステージの第一歩です。 Redshiftは、レイトレーシング階層のシーンメッシュのファーストパス処理を行います。 レイトレーシング階層は、レンダリングを高速化するためにレイトレーシング中に使用されるデータ構造です。 したがって、レイトレーシング階層の構築は非常に重要なステージです! シーンに多数のオブジェクトやポリゴンが含まれていると、レイトレーシングの階層構造に時間がかかることがあります。 テッセレーション/ディスプレースメントのステージもここで発生します。
最初のレイトレーシングの階層構造が完成した後、Redshiftはシーンのテクスチャを引き渡して、それらのいずれかを変換する必要があるかどうかを判断します。 Redshiftは、既定では、すべてのテクスチャを独自の内部形式に変換します。 この種の自動処理を避けたい場合は、テクスチャプロセッサを使用し、テクスチャをオフラインで前処理してください。
GPUメモリの割り当てについては、次の章を参照してください。
================================================================================================= Rendering frame... ================================================================================================= License for redshift-core 2015.10 valid until Nov 01 2015 Preparing ray tracing hierarchy for meshes Time to process 0 meshes: 0.00s Time to process textures: 0.000017 seconds Time to process all materials and shaders: 0.106537 seconds Allocating GPU mem...(device 0) Allocating GPU mem for ray tracing hierarchy processing Allocating VRAM for device 0 (Quadro K5000) Redshift can use up to 2860 MB Geo/Tex: 2287 MB / 256 MB NRPR: 262144 Done! (0.01s). CUDA reported free mem: 335 MB Ray Tracing Hierarchy Info: Max depth: 128. MaxNumLeafPrimitives: 8 Extents: (-10.477668 -3.309501 -13.272833) - (12.148574 3.309501 11.673424) Time to create tree: 7 ms (0 7 0)
レンダリング – 事前パス
Redshiftは最終フレームをレンダリングする前に、すべての事前パスを実行する必要があります。 この例では、Irradianceポイントクラウドを計算します。
可能性のある他の事前パスは:
各事前パスの開始時に、RedshiftはGPUのメモリ(VRAM)を設定する必要があります。この場合、Redshiftは約2.8GBまでのVRAMを使用できます。”ちょっとまって、上記のいくつかの段落で、Redshiftは最大3.2GBまで使えると言っています!”と思うかもしれません。
VRAMが低いのは、2つの理由からです:
- Redshiftは、GPU空きVRAMの100%を使用しません。 デフォルトでは、90%を使用します。 しかし、Redshift Memoryタブでその割合を増減することができます。
- Redshiftが初期化されると、その動作のためにVRAM(数十MB)を使用する必要があります。 そのメモリは、ここではカウントされません。
VRAMが割り当てられた後、Redshiftは割り当てられなかったVRAMの量と現在の空きを出力します。 この場合は336MBです。 3Dアプリケーションとオペレーティングシステムが問題なく機能できるように、いくらかVRAMの空きを残しておくことが重要です。
各事前パスの終わりに、Redshiftは事前パスがどれぐらいかかったかをプリントします。 この場合、Irradianceポイントクラウドは1.36秒かかりました。
Irradiance point cloud... Allocating VRAM for device 0 (Quadro K5000) Redshift can use up to 2860 MB Geo/Tex: 2028 MB / 256 MB NRPR: 262144 Done! (0.03s). CUDA reported free mem: 336 MB Total num points before: 55 (num new: 55) Total num points before: 85 (num new: 37) Total num points before: 144 (num new: 59) Total num points before: 209 (num new: 65) Total num points before: 318 (num new: 109) Total num points before: 442 (num new: 124) Total num points before: 560 (num new: 118) Total num points before: 678 (num new: 118) Total num points before: 799 (num new: 121) Total irradiance point cloud construction time 1.36s
レンダリング – 最終画像
これは、Redshiftがイメージをブロック単位でレンダリングする最後のレンダリングステージです。 ブロックは「バケット」とも呼ばれます。
Redshiftは、事前パスの場合と同様に、このステージでもVRAMを割り当てる必要があることに注意してください。
ブロックがレンダリングされている間、Redshiftは各ブロックの行をプリントアウトして、一般的な進行状況を追跡できます。 また、ブロックのレンダリングに要した時間も表示されます。 シーンの複雑さによっては、一部のブロックではレンダリングに時間がかかることがあります。
事前パスと同様に、Redshiftは最終画像のレンダリングに要した合計時間をプリントアウトすることで終了します。
Rendering blocks... (block size: 128) Allocating VRAM for device 0 (Quadro K5000) Redshift can use up to 2860 MB Geo/Tex: 604 MB / 213 MB NRPR: 1208448 Done! (0.01s). CUDA reported free mem: 319 MB Block 0/40 (0,0) rendered by GPU 0 in 6ms Block 1/40 (0,1) rendered by GPU 0 in 6ms Block 2/40 (1,1) rendered by GPU 0 in 17ms Block 3/40 (1,0) rendered by GPU 0 in 6ms … and so on … … and so on … … and so on … Block 39/40 (6,1) rendered by GPU 0 in 5ms Time to render 40 blocks: 0.70s Rendering time: 2.49s (1 GPU(s) used)
統計
これはログファイルの非常に重要な部分です! プロキシ、メッシュ、ライト、固有のポリゴン、インスタンス化されたポリゴンなどのさまざまなシーン統計情報を提供します。このような統計情報を知ることは、シーンをプロファイリングするときに役立ちます。 一例として、ライトが多いシーンは、ライトが少ないシーンよりレンダリングに時間がかかることがあります。 統計を使用すると、シーンに多数のライトが含まれているかどうかをすぐに調べることができます。
また、シーン内にいくつの固有のポリゴンやストランドセグメント(髪の毛用)があるかを素早く見つけることができます。 「固有」とは「インスタンス化されていない」ことを意味します。 あなたが森林をモデリングしているとし、同じ100万ポリゴンの木が1000回インスタンス化されているとすると、「1 million unique triangles(100万の固有三角形)」と「1 billion total triangles(10億の合計トライアングル)」が表示されます。
おそらく、最も重要なデータエントリは、GPUメモリを参照するものです。
ログファイルの一番下に、「Ray acceleration and geometry memory breakdown」があります。 これらの図は、シーン内のポリゴンとスプライン(プリミティブ)を表しています。 これらの数字の合計は、どのコアからのアクセスも必要とせずにすべてのプリミティブに適合させるためにどれくらいのGPUメモリが必要かということです。
ログファイルの一番下に、「Ray acceleration and geometry memory breakdown」があります。これらの図は、シーン内のポリゴンとスプライン(プリミティブ)を表しています。これらの数字の合計は、まったくアウトオブコアアクセスを必要とせずすべてのプリミティブに適合させるためにどれくらいのGPUメモリが必要かということです。
数行上になると、「GPU Memory」セクションが表示されます。 「uploads」の数字は、データをGPUに送信するために必要なPCIe転送の量を示しています。これらの数字は、「Ray acc. And geometry memory breakdown」の合計よりも小さくなることがあります。これは、Redshiftが絶対に必要とするデータをGPUに送るためです。 この例では、カメラから見えないパーセンテージのポリゴンがあるため、必要なPCIe転送は少なくなりました。ただし、アウトオブコアアクセスが原因で(または他の理由で)GPUにデータを再送信する必要がある場合もあります。そのような場合、「uploads」は潜在的に「Ray acc. And geometry memory breakdown」の合計よりも大きくなる可能性があります。
パフォーマンスをプロファイリングするときは「‘upload」の数字、、特に「many gigabytes」の範囲に入る場合は、気にする必要があります。 これは、ジオメトリアップロードとテクスチャアップロードの両方に適用されます。
cene statistics General counts Proxies: 0 Proxy instances: 0 Meshes: 2 (2 TriMeshes, 0 HairMeshes) Instances: 0 Point cloud points: 0 Lights: 1 Sprite textures: 0 Geometry Unique triangles pre tessellation: 762 Unique triangles post tessellation: 762 Unique hair strand segments: 0 Total triangles: 762 Total hair strand segments: 0 Largest triangle meshes: 760 triangles : pSphereShape1 2 triangles : pPlaneShape1 GPU Memory Device 0 geometry PCIe uploads: 3.05 KB (cachesize: 604.83 MB) Device 0 texture PCIe uploads: 0 B (cachesize: 213.73 MB) Matrices (for instances/points): 0 B Rays: 1.40 GB Sprite textures: 0 B Textures Device 0 stream and upload time: 0.00s File loading time: 0.00s File decompression time: 0.00s GPU Cache too small penalty time: 0.00s GPU Ray Accel. And Geometry Memory Breakdown (rough) Acceleration Structures: 10.33 KB Main primitive data: 9.01 KB Extra primitive data: 3.05 KB
終了フレーム
Redshiftはフレームレンダリングを終了すると、イメージを保存し、フレームの合計時間を表示します。 合計時間には、抽出、準備、事前パス、最終レンダリング時間が含まれます。
Saved file 'C:/Users/panos/Documents/maya/projects/default/images/tmp/untitled.iff' in 0.01s Rendering done - total time for frame 1: 2.58s