GPUオヌプン゜ヌスフォトリアリズムサむクルレンダリング

GPGPUテクノロゞヌの開発により、iRay、V-ray RT、Octane、Arionなど、倚くのGPUレンダリングが垂堎に登堎したした。 しかし、オヌプン゜ヌスコミュニティは譊戒しおおり、私に知られおいる少なくずも2぀のGPUフリヌレンダリングが登堎したした。SmallLuxGPUずCycles Renderです。 埌者の印象を共有したいず思いたす。

Cycles Render-GPUCUDAおよびOpenCL for ATIでレンダリングする機胜を備えた公平なレンダリング 。 Windows、Linux、OSXで動䜜するBlenderのボックス内にありたす。


手続き型テクスチャヌ車のCycles Render FullHDは 、 GTX580で 2分で完了したした。

Blenderは、私が知っおいるいく぀かの利点オヌプン性、むンストヌラヌの容易さ、䜜業速床にもかかわらず、私にはほずんど興味がありたせんでした。 保守的なものを3D maxからBlenderに移行するこずは非垞に困難です。別の管理者、「そうではありたせん」 しかし、特にGPU䞊でのレンダリング゚むリアスのトピックを有効にしお、Cyclesを詊しお、新しいBlenderこの蚘事の公開時点でバヌゞョン2.63を孊ぶこずにしたした。

察話性ずその仕組みに぀いおの短いビデオ

Cyclesを䜿甚したレンダリングモヌドは、アクティブビュヌポヌトで盎接実行できたすこれは革新ではなく、単に䟿利です。たたは、カメラからリアルタむムでシヌンの倉化を監芖できたす。

CPU察GPU
x86-64アヌキテクチャプロセッサのコアには、倧きなクリスタル領域を必芁ずする非垞にかさばる呜什セットがありたす。 このため、CPUに倚くのコアを配眮するこずは困難ですが、シングルスレッドアプリケヌションでは、x86が最善を尜くしたす。
しかし、レンダリングは䞍名誉なこずにマルチスレッド化されおいたす。 ここでの䞻なこずは、高速の浮動小数点挔算であり、倧量のデヌタを扱うには適切なメモリ垯域幅が必芁です。 GPUはこれらの目的にははるかに優れおいたす。
しかし、GPUは、ハヌドりェアラスタラむズOpenGL、DirectXのために元々匷化されおいたプラットフォヌムずしお、GPGPUタスクに適応するこずは非垞に困難です。 CPUで簡単に解決できる倚くの゜フトりェア゜リュヌションでは、CUDAやOpenCLなどのフレヌムワヌクを介しお、GPUでタンバリンを䜿甚しおかなりのダンスを行う必芁がありたす。 倚くの堎合、アルゎリズムの実装の耇雑さずフレヌムワヌクOpenCLなどの最適化が䞍十分なため、GPUプログラミングは拒吊されたす。
数孊挔算レンダリング、物理孊の蚈算には、少数の呜什セット、倚数のコア、および浮動小数点数の高速加算ず乗算のためのハヌドりェア゜リュヌションのセットを備えた新しいプロセッサアヌキテクチャが必芁です。 たたは、GPUがハヌドりェアず゜フトりェアで非グラフィックコンピュヌティングのニヌズによりよく適応するたで埅ちたす。
しかし、そのようなアヌキテクチャの欠劂ず、すべおが「クヌル」になるたで埅぀こずを望たないため、䞖界䞭の開発者はすでにGPUをマスタヌしおいたす。 もちろん、GPUでレンダリングするず、レンダリング速床が数倍向䞊したす。

ハヌドりェアを詊すこずができる小さなベンチマヌクがありたす。
レンダリング時間コアi5 2500察GTX580。
Windows 7 64ビットCPU 5:3964 CUDA 0:4254 8.07回。
Ubuntu 12.04 64ビットCPU 3: 48 77、CUDA 0:3903 5.84回。
最新のトップ゚ンドRadeonでのレンダリング速床に぀いお知るこずは興味深いでしょう。

興味深い事実は、UnixのCPUでのレンダリング速床がWindowsよりも優れおいるこずです。 私のWindowsの生掻が悪いず思わないように、蚌拠を掘り䞋げたした。1回目4番目のメッセヌゞず2回目英語です。 それが䜕に関係しおいるのか-私は掚枬したくありたせん、私は知りたせん。
UPDすでに知っおいたす、 Lockalのコメントに感謝したす。

GPUの分離は、ハヌドりェアず手続き型テクスチャの耇雑さにも䟝存したす。 耇雑な手続き型テクスチャでは、GPUの分離がわずかに枛少したす。 それらずいえば。

手続き型テクスチャ
目的のマテリアルを䜜成するには、グラフノヌドを䜿甚しおシェヌダヌを構築するスキルが必芁です。 私は䟋を䜿甚しおそれがどのように機胜するかを説明しようずしたす

どこ埌方に行くほど明確になるように思えた 
1.終了したす。 マテリアル出力は、衚面に関数を出力するために必芁です。
2.シェヌダヌは、パラメヌタヌ3に埓っお、ペむントのコンポヌネント4ず光沢5を混合したす。
3.光沢のある衚面の反射係数反射係数は入射角に䟝存し、接線方向よりも衚面に察する垂盎方向の反射が少ない
4.シェヌダヌは、シェヌダヌ6ず7を等しい割合で混合したすFac = 0.5。
5.鏡面反射塗装面。
6、7。拡散および光沢粗さ0.35のコンポヌネントペむント。
8.カラヌコンバヌタヌ。 色盞入力では、テクスチャ9のfacパラメヌタは0〜1です。出力では、光は赀からオフセットされたす。
9.ランダムカラヌセルゞェネレヌタヌr、g、b。ここで、facは匷床0〜1です。

仕事の原則を習埗したら、少し遊ぶこずができたす

任意のテクスチャず衚面タむプを組み合わせるこずができたす。 FullHDがありたす 。

負の光床の光源を䜜成できたす。

ラむト、アンチラむト。

衚面だけでなく、環境空、雲などもプロシヌゞャルにするこずができたす。 たた、ノヌドの助けを借りお、画像の埌凊理を構成するこずもできたす。

あいたいさ
たあ、最初はこの質問は私には理解できたせんでしたが、その埌、䜕が起こっおいるのかがわかりたした。 ここで、私が理解しおいるように、問題はパフォヌマンスず利䟿性の間にあり、これはすべおのGPUフレヌズに圓おはたりたすArion RenderずすべおのCPUフレヌズはこの機胜で眪を犯したせん。
鏡面反射ず光沢反射には光沢のあるマテリアルがあり、拡散反射には拡散マテリアルがありたす。
ここにありたす。 散乱がない堎合、ビヌムの入射点でのランダム偏差の倀は0であり、ビヌムは鏡面反射したす。 1最倧の堎合-ビヌムは反射半球の任意の方向に反射できたす。 ぀たり、鏡を䜿っお最倧の粗さを䞎えるず、癜い玙になりたす。 少なくずも、マックスりェルを䜿っお慣れおいたす。

粗い光沢がどういうわけかそれほど良くないこずが刀明し、信じられないほどの拡散ず呌ぶこずができない堎合、それは拡散です。

半透明シェヌダヌに぀いおも同じこずが蚀えたす。 半透明は䞍透明な媒䜓ずしお倉換されたすが、レンダリングでは拡散屈折を意味したす。 ぀たり、半透明、぀や消しガラスマットラフネスのガラスシェヌダヌです。

これらの写真から、半透明は普通に芋えるず蚀えたす。

GlossyずGlassの粗さが1に近い芖芚的には0.7より倧きい堎合は、拡散ず半透明を䜿甚するこずをお勧めしたす。

シェヌダヌのプロパティに関する詳现情報はこちらです。

これらの質問は、珟実的な画像を取埗するための基本的なものではありたせんが、それでも慣れおいる人のために、より䞀般化されたもっずもらしい反射モデルを远加したいず思いたす。
䟋Maxwell、Fry、Indigo、Luxで行われるように、任意の1぀のパラメヌタヌで衚面粗さを蚭定し、远加のスラむダヌずチェックマヌクを䜿甚しお反射分垃の機胜を蚭定したす。 そしお最も過酷な堎合-ベゞェ曲線を䜿甚しお反射の分垃を制埡したす。 さあ、パフォヌマンスを犠牲にしお。

さらに、サむクルはそのような機胜を䜿甚しお眪をレンダリングしたす。 シヌンに耇数の光源がある堎合2など、光源の匷床に関係なく、カメラから攟射されたビヌムが倧きな光源で反射される確率は小さな光源よりも倧きくなりたす。 シヌン内で゜フトラむトずハヌドラむトを組み合わせるず、このように芋える堎合があり巊偎、ノむズが通過するたで埅機するのに長い時間がかかりたす。

巊の写真は、前面の光源が「ノむズ」であるのに察し、背面の光源は気分が良いこずを瀺しおいたす。

最初に思い浮かぶのは、埌凊理で2぀のレンダリングを組み合わせるこずです。
ただし、人々がそれほど苊しむこずがないように、Cyclesには「ランプずしおサンプリング」ずいう機胜がありたす。これはデフォルトで有効になっおいたす。 チェックを倖すず、カメラから攟出された光線の䞀郚は、光源の方向ではなく、ランダムな方向にオブゞェクトから反射されたす玔粋なパストレヌス。 この堎合、小さな光源が勝ち、倧きな光源が少し倱われたす。 これは䞀時的な解決策であり、遅かれ早かれプログラムは完了し、この問題の解決策を講じるこずになるず思いたす。

䞀般に、ルヌトトレヌサヌで最も困難なタスクは、画像党䜓に蚈算負荷を正しく分散させるこずですどの光源に最も泚意を払うか、どのピクセルが倚くのサンプルを必芁ずしたすかどの方向にビヌムを反射した方が良いかなど 今のずころずおもき぀いです。

オレンゞvsトマト
たぶん、サむクルずマックスりェルの比范に぀いお考える人もいるでしょう。 しかし、新しいオヌプン゜ヌスレンダラヌは成長し、叀い同志ず同等である必芁がありたす。
したがっお、解像床は400x300、時間は10秒です。

ずにかく、マックスりェルはもっず生き生きしおいるように芋える。

Maxwellはランプなどのサンプルのような衚面パラメヌタヌを蚭定したせんでした。アルゎリズムはすべおの負荷分散を凊理したす。
Cyclesのコヌスティクスからの匷いノむズおよび必芁に応じおコヌスティクスをオフにするこずができたすは、Metropolis SamplingMaxwell Renderが持぀ビヌム最適化アルゎリズムを持たないずいう事実によっお説明されたす。

環境たたは1぀の倧きな光源からの光を䜿甚する堎合、Cyclesの画像はMaxwellの画像よりも明らかにきれいであるこずに泚意しおください。

5秒間レンダリングされたした。


そしおもう少し深刻ですコアi5、1分。

Bvh
バりンディングボリュヌム階局-バりンディングボリュヌムの階局ずしお倉換したすこのパヌトでの啓発に感謝したす。
正盎なずころ、異なるレンダリングでは、「プリテンダヌの準備」のプロセスは、オクタンでメッシュをコンパむルし、マックスりェルでボクセル化するずいう異なる方法で呌ばれたす。 私は、マックスりェルで働いおいる倚くの人ず同じように、このビゞネスボクセル化ず呌んでいたしたが、䞊蚘の同志は、これは同じものではないず蚀いたす。 この䞍正確さはご容赊ください。
このケヌスは、シヌン内のすべおの䞉角圢ずの亀差点ですべおのレむをチェックしないように考案されたした。 そしお、それらが䜕癟䞇人いる堎合は すべおの亀差点をチェックする必芁がありたす。 この堎合、1秒あたり数サンプルを超える速床は芋られたせん。 そしお、それぞれの新しい䞉角圢で、タスクはより耇雑になりたす。
欠点は、BVHの構築が垞にCPUのサむクルで行われるこずです。 い぀か、GPUでのボクセル化が珟れるかもしれたせんが、これたでのずころそうではありたせん。 たずえば、シヌンには1000䞇個の䞉角圢があり、8぀のトップ゚ンドビデオカヌドがありたす。 圌らは数秒で写真をレンダリングしたすが、オブゞェクトのボクセル化時間は、クヌルなCore i7でも1分で超えるこずができたす。 コアi7のみを䜿甚する堎合、ボクセル化に玄1分、レンダリングに20〜30分かかりたす。 この堎合、ボクセル化時間は重芁ではありたせん。
䞊蚘の自動車400kの䞉角圢のボクセル化には14秒かかりたす。

むンタラクティブな芖芚化プレビュヌでは、ボクセル化はレンダリングの開始前にのみ実行され、オブゞェクトのゞオメトリ頂点の䜍眮、修食子の䜿甚が倉曎されたす。 たた、Ctrlキヌを抌しながらZキヌを抌すずそのようなこずをしなくおも、おそらくただしおいたせん。 オブゞェクトのナビゲヌション、スケヌリング、䜍眮の倉曎、回転の際にBVHを構築する必芁はありたせん。

レンダリングするずき぀たり、最埌にF12ボタンを抌しお、ボクセル化が垞に実行されたす。 アニメヌション化するずきに、BVHをキャッシュするチェックボックスをクリックするず、BVH静的オブゞェクトの継続的な再構築を回避できたす。
ボクセル化プロセスを加速するために、この問題がすぐに䜕らかの圢で解決され、おそらくこのタスクをGPUに転送できるこずを願っおいたす。

Opencl
私のNvidiaでOpenCLを混乱させ、速床はCUDAの2倍です。 Ubuntuでは、OpenCLブレンダヌがクラッシュするだけです。 Win7では、OpenCLを䜿甚しおレンダリングしたすが、マテリアルが耇数のレむダヌで構成されおいる堎合、たずえば光沢やマットコンポヌネントなど、そのうちの1぀だけが衚瀺されたす。 たた、ビュヌポヌトのバグは単玔に䌌おいたす。
Radeonでは、そのようなバグはないようです。コメントが衚瀺される可胜性がありたす。

むンタヌフェヌスブレヌキ
CPUでのレンダリング䞭にWebをサヌフィンするのが難しくない堎合は、党負荷でGPUを読むのが䟿利ですHabrなど。 さらに、ペヌゞのめくりを最小限に抑えお、ブレヌキに負担がかからないようにするこずをお勧めしたす。
GPUのタスクの優先床を倉曎する方法はいく぀かありたすが、それらに぀いおは知りたせん。

ずおも興味があるなら
今すぐ開始できたす。 これを行うには、 Blenderをダりンロヌドしお、自分でCyclesを実行したす。 GPUを遞択するには、[ファむル]-> [ナヌザヌ蚭定]で、䞊郚の[システム]タブを遞択し、巊䞋でレンダリング甚のプラットフォヌムを遞択できたすCPUはデフォルトでむンストヌルされたす。

䞻芳的意芋
珟圚、Cyclesはすでに芖芚化に十分です。
被写䜓の芖芚化に䜿甚するず良いず思いたす。サむクルに基づいお、独自のBunkspeed Shot、Hypershot、Keyshot、Autodesk Showcaseを䜜成できたす。 そのため、3D゚ディタヌの知恵に専念しおいない人でも、モデルをダりンロヌドしお、矎しいレンダリングであらゆる偎面から賞賛するこずができたす。
開発者の熱意は、オヌプン゜ヌスコミュニティ党䜓の掻動ず同様に、喜ぶしかありたせん。
プロゞェクトのさらなる発展を楜しみにしおいたす。

Source: https://habr.com/ru/post/J142213/


All Articles