2016年9月3日土曜日

Freestyleでエッジの分割をコントロールする

Freestyleで描線をきれいにつなげられるようになったら、次は良さげな感じに線を
分割したくなるもの。というわけでFreestyleでのエッジ分割の設定をざっくりメモ。

まずは一番簡単な長さを指定して分割する方法。
これはラインスタイルのストロークで『2D長さ』を指定します。


サンプルとしてこんな感じのシーン(下図左)をつくり、前回の行って設定をしてエッジ
が全部繋がるようにしてレンダするとこんな感じ。(下図右)

 
これに『2D長さ』を左から100、200、300と指定するとこんな感じになります。  

次は角度を指定して分割する方法。
こちらは2D角度で指定します。

こちらもサンプルシーンをつくってエッジが繋がるようにレンダするとこんな感じ。
 
これに『最小2D角度』を90°、100°、110°と設定してみるとこうなります。

  

最後はマテリアルの境界で描線を分割する方法。
こちらは『マテリアル境界』をONにします。


前回のティーポットで試してみるとこんな感じ。
左が前回の設定のまま、右が先端だけ別のマテリアルを指定した場合。


で、マテリアルは内容が同じでも名前が異なってさえいれば境界にエッジが引かれるので
こんな感じに、注ぎ口の端面部分で描線を分割できます。

2016年8月21日日曜日

FreeStyleで描線がつながったきれいなエッジを出す設定

昨日行われたこちらのblenderユーザーのミートアップイベントに行ってきました。
で、内容はさっそくまとめが作られているようなのでこの辺りを見ていただくとして。

今回FreeStyleを実際の作品に使用されている事例についての発表があり、その中で
3Dモデルのエッジが細かく分割されすぎたり、途切れて欠けてしまうことがある。
とのお話が。

そういえば、自分も最初の頃はそんな感じで困ってたような・・・。
じゃあ、どうやって対策したんだっけ?と改めて考えてみると、普段は設定済みの
テンプレを使っているため意外と思い出せないもので。

で、いい機会なので復習ついでに手順をまとめてみました。
それでは以下から。

まずはじめに適当なシーンを用意しました。
プリセットオブジェクトのユタティーポットを追加、Subsurfモディファイヤで
細分化レベルを3にしています。こんな感じ。


で、FreeStyleを有効にして、線の太さの指定だけ絶対→相対的に変更して、
あとはデフォルト設定のままレンダしてみます。とこんな感じに。


早速注ぎ口の下側でラインが一部欠けているところがありますね。
このレンダのエッジがどのように分割されているか分かりやすくするために
線の入り・抜き設定をつけて再度レンダしてみます。


入り抜きはLineStyleの『厚さ』に『Along Stroke』モディファイヤを追加しています。
各項目の数値は画像を参照。で、この状態でレンダするとこんな感じ。


注ぎ口の形状で、上側ラインの本体につながる手前あたりの曲がった部分と、
下側ラインの先端から左下に向かって緩やかにカーブしていく部分のエッジが
描線が細かく分割されているのがわかるかと思います。
また注ぎ口の先端の開口部の稜線もかなり細かく分割されている感じです。

で、ここからが対策です。
まずはFreeStyleのオプションで『面のスムーズさ』をオンにします。


つぎにLineStyleの設定で『ジオメトリ』に『Bezier Curve』モディファイヤを追加。


最初から『Sampling』が追加されているのでその下に『Bezier Curve』がきます。
以上で対策完了。

これでレンダしてみるとこんな感じに。

最初の画像で細かく途切れていたエッジがそれっぽい感じにつながりました。
わかりやすく比較するために入り抜きの太さに加えて、色も変えてみるとこうなります。
まずは対策前のレンダ。


次に対策後のレンダ。


描線の入り側が細く赤く、抜き側が太く青くなるように設定しています。
いい感じにつながったエッジがレンダされるようになりました。

で、実際何がどう変わったのか?といえば、追加した『Bezier Curve』で
3Dデータのメッシュのエッジを直接レンダするのでなく、それらの頂点を含む
ベジェ曲線に近似した上でそのカーブをレンダする、という感じ。

3Dモデルをいじらずともお手軽にそこそこいい感じになるので良さげです。

2016年6月12日日曜日

GTX1070 ベンチマーク Cycles・Luxrender・OpenGL

GTX1070が先日発売されましたが、3DMarkなどゲーム系のベンチマーク結果
見かけるもののCUDAやOpenCLなどGPGPU用途での評価はあまり見かけないので
やってみました。
Cycles、LuxrenderのGPUレンダリングモードで試してみました。

環境は以下のとおりです。
 OS:Windows10 pro
 CPU:Core i7-5820K
 RAM:16GB
 GPUドライバ:GeForce Game Ready Driver 368.39
 GPU:GTX970、GTX1070

ちょうどGTX1070対応の上記バージョンが入手できるようになってたので
ドライバだけ先に更新してから970のベンチマーク、換装、1070のベンチマークという
ながれで実施しました。


各ベンチマークの内容は以下のとおりです

まずはCyclesでのベンチマーク。
定番の下記リンクにあるシーンファイル、BMW27.blendでテストしています。
Cycles benchmark (updated BMW)

ただしGTX1070を含むPascal世代のGPUではシェーダーモデルのバージョンが
6.1となり、現在のblender2.77aのCyclesではこのバージョンに対応していません。
このため通常どおりにインストールしたままの環境ではPascal世代のGPUを使って
CyclesでのGPUレンダはできないのですが、下記のページを参考に対応する
cubinファイルをcyclesのアドオンフォルダに追加することで、とりあえずはGPUレンダ
が動くようになります。

GTX 1080 GPU problem when trying to render in Blender

ただし、詳細は後述しますがあくまでも『とりあえず』といった感じです。


次にLuxrenderでのベンチマーク。
こちらも定番のLuxmarkを使用しました。
今回は最新版となるLuxmark v.3.1がリリースされていたので、Binariesの項に
あるWindows 64bit用のファイルをダウンロードして使用しました。


以上のベンチマークのスコアは下記のようになりました。
スコアはすべて970, 1070の順で記載しています。
スコアのとなり、丸括弧内の値は各ベンチマーク実行時の最高GPU温度です。
温度の取得はSpeedFanで行いました。


Blender 2.7 Cycles Benchmark rev4
 1:24.51 (75℃) 1:56.54 (67℃)


Luxmark v.3.1
 LuxMark OpenCL GPUs LuxBall HDR (Simple Benchmark: 217k triangles)
 11513 (73℃) 16623 (74℃)

 LuxMark OpenCL GPUs NeumannTLM-102 SE (Medium Benchmark: 1769K triangles)
 7450 (76℃)     9516 (70℃)

 LuxMark OpenCL GPUs Hotel lobby (Complex Benchmark: 4973K triangles)
 2508 (80℃)     3517 (78℃)


以上の結果で気になるのはLuxmarkで順当にスコアが伸びているのに対して
Cyclesでの値が逆に悪くなっている点です。これはどうやら追加でインストールした
CUDAの実行ファイルが古いバージョンのSDKで作られている可能性が考えられます。
Pascal世代のGPUに対応した新しいCUDA SDKは現在α版が公開されたようですので
こちらを利用してビルドされたものを使用して、再度評価をしたいところです。

で、CyclesはGPUレンダリングにCUDAを使用しているわけですが、Luxrenderでは
OpenCLをGPGPUのためのフレームワークに使用しています。
そのためCUDAのバージョン依存の影響を受けずGTX970に対して良い結果が出ています。
またスコアは3〜4割向上していますが、ベンチマーク時の最高温度はほぼ同じ程度に
とどまっているので消費電力あたりの性能が改善されていることが感じられます。

またGPU温度に関してはアイドル時の温度が手元の環境では室温28℃において
GTX970が37℃、GTX1070が41℃でした。
これは前者がメーカーオリジナルの開放型クーラーなのに対して
後者はnVidiaリファレンスクーラーという違いが大きいかと思います。

手元のケースではGPUを挿しているスロットがちょうどケース吸気ファンからの冷たい
外気が直接あたる位置にあるため、開放型クーラーではその恩恵をうけられていましたが
筐体外排気のダクト一体となった密閉型のリファレンスクーラーでは外気が当たったと
してもあまり影響はありません。

動作時の騒音としてはGPU換装の前後での違いは自分では感じませんでした。
ベンチの結果をみても冷却に問題はなさそうなので心配ないかと思います。


最後についでにOpenGL関連のベンチマークも行ったので結果を載せておきます。

CINEBENCH R15 OpenGL
156.00 fps 153.18 fps

SPECviewperf12
catia-04    50.85  69.89
creo-01    30.64  44.69
energy-01    5.81   8.74
maya-04   94.56 117.86
medical-01  27.40  41.82
showcase-01 60.94  94.49
snx-02     5.80   6.83
sw-03     45.73   53.96

ゲーム系のDirectX関連の評価結果はよく目にしますがOpenGLの評価結果は
CINEBENCHくらいしかみないので、3DCGや3DCADでの利用も考慮すると
GPUの買い替えなどでの判断材料が少なくていつも悩ましいところです。

SPECviewperfではMaya、catia、creo(旧Pro ENGINEER)、Solidworksなど
の3DCAD、3DCGツールの描画エンジンをベースにベンチマークを行うので、
実際の各アプリケーション、特に3DCADでのOpenGL描画のパフォーマンスが
想定しやすくおすすめです。


結果としては、価格と性能、発熱や消費電力といったバランスがGTX1070の
良いところかなという印象です。発熱や消費電力などを気にしないのであれば
時期的に値段も落ち着いた980Tiも選択としてはありかな、という感じでしょうか。

---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手

2015年7月19日日曜日

LuxRender v1.5RC版が公開されていた

ふと気づけばLuxRenderの開発者のひとりjeanphiさんからv1.5RC1リリースのお知らせが。
さっそくそのリリースノート的なものを訳してみたのが以下。


LuxRender v1.5RC1 release


みなさんこんにちは

バージョン1.4のリリース以降、本当に多くの進捗がありました。
そして今ここにバージョン1.5系の最初のRC版を公開することができ
とてもうれしく思っています。
バージョン1.4ではLuxRenderそれ自身にはそれほど大きな変更はありませんでした。
しかし新たなレンダリングエンジンのコアとなるLuxCoreは従来のレンダリングエンジン
であるLuxRenderとほぼ同様の機能を備えるほどに多くの機能が実装されてきました。

レンダリングスピードの改善、ガスや液体などボリュームオブジェクトの処理の改良、
新しいマテリアルとテクスチャの導入、ボリュームエミッション、ストランドの改善、
より進んだBlenderや3DSMaxやその他ソフトウェアとの統合などです。

そういった新機能がどのようなものかはこちらのwikiで画像とともに説明されています。
Reality向けプラグインの作者であるPaolo氏が新しいレンダリングモードでの10倍以上の
レンダリングスピード向上についてテストした動画をこちらで公開しています。

このRC版について何か気づいたことがあればフォーラムバグトラッカーでの報告を
お願いします。

LuxRenderの開発に関わるすべての開発者の絶え間ない取り組みと、ユーザーの皆さんから
のフィードバックに感謝いたします。

我々のプロジェクトを気に入り、LuxRenderのさらなる改善にご助力を申し出ていただける
方にはこちらでの寄付もご検討いただければ幸いです。

今回v1.5RCの配布用ビルドは公式ページのダウンロードエリアから入手できます。

またソースファイルは下記の当プロジェクトのmercurialリポジトリから入手できます。
LuxCore: http://src.luxrender.net/luxrays/commits/tag/luxrender_v1.5RC1
LuxRender: http://src.luxrender.net/lux/commits/tag/v15RC1
LuxBlend: http://src.luxrender.net/luxblend25/commits/tag/v15RC1


バージョン1.4からの変更点を以下にまとめておきます。

LuxCoreの新機能

・OpenCLマイクロカーネルの性能改善と、OpenCLコンパイル時の負荷を低減。
・nVidiaの協力のもとOpenCL関連のパフォーマンスが改善しました。
 (基本的にはnVidiaのハードウェアに依存するものではありません)
・バイアスドパスレンダエンジンがレンダリングの精度とスピードのバランスについて
 より細かな調整ができるようにいくつかパラメータが追加されました。
・IntelのEmbreeテクノロジーを取り入れることでトライアングルインターセクションの
 より高速な処理が可能となりました。
・エリアライトによる頂点カラーの補完が改善されました。
・レンダリングの終了条件を設定して適応的分割レンダリングが可能となりました。
・オートリニアトーンマッピングが利用可能になりました。
・ライティング検証のためのイラディアンスパスが導入されました。
・Blenderとのメッシュ変換のスピードが改善されました。
・カメラレスポンスファイルが更新されました。
・metal2マテリアルにフレネルパラメータが追加されました
・blenderのプロシージャルマテリアルを標準のlxsファイルパーサでサポート
・OpenCLのSobolサンプラーが改良されました
・以下のテクスチャが刷新されました。
 substract, blackbody, irregulardata, lampspectrum,
 fresnel (color, luxpop, sopra, preset), pointiness
・サイズが大きなテクスチャ画像を使用した際のメモリ使用量が削減されました
・新しいglossycoatingマテリアルの追加
・新しい平行投影カメラの追加
・雲をシミュレーションするためのボリュームクラウドテクスチャの導入
・バンドテクスチャに幾つか新しい補完モードを追加
・strandシェイプオブジェクトのサポート
・mixマテリアルのバグ修正
・ボリューム関連のバグ修正
・ライトの処理に関するバグ修正
・OpenCLでのレンダリング時のモーションブラーのバグ修正
・hybrid CPU/GPU レンダラの削除


LuxRenderの新機能

・luxcore レンダラエンジン選択時に新しくLuxCoreに追加された機能に対応しました。
・ソースコードからのビルドがより簡単になりました。 (WindowsとOSX)
・イメージマップの位置に関するバグ修正 (幾つかの条件で1ピクセルずれていました)

LuxBlendの新機能

・プロキシに対応
・アルファ透過への対応
・マテリアルのリアルタイムプレビューを改善
 (mixマテリアルの修正、ボリュームのサポートを追加)
・ライトグループに対応
・カメラクリッピングプレーンに対応
・hitpoint data形式のテクスチャに対応
・blenderでのリアルタイムシーンプレビューとエディットモードでの多くの改善
・UIの改善(統一性と安定性向上のためコードの大規模なリファクタリングを実施)
・イメージマップの処理に関する改善
・ボリュームテクスチャの改善
・カラーランプのサポート
・パーティクルのモーションブラーに対応
・オブジェクトの可視性に関する改善
・カメラシフトへの対応
・LuxCoreの新機能への対応を追加
・領域レンダリング時のバグ修正
・ボリュームエミッションに対応


ざっとですが以上となります。
最近リリースされたばかりのblender 2.75aでもv1.5RC1は利用できたので
あれこれ試していきたいところです。



---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手

2013年4月8日月曜日

Freestyleのマージが完了。


というわけでめでたくFreestyle統合版ブランチがtrunkへマージされた模様。
これに関して開発者の方からコメントが出ていたのでちょっと訳してみたり。


拝啓 親愛なるみなさんへ

 皆さんの多くが既にご存知のように、Freestyleブランチとして知られている
soc-2008-mxcurioniブランチがついにtrunkへとマージされ、BlenderにFreestyleが
統合されました。この新しい機能はblenderの公式リリース、バージョン2.67の一部と
して利用できるようになるでしょう。もともとGoogle Summer of Code (GSoC)
2008のひとつとしてはじまったこのプロジェクトは、5年の開発期間ののちに大きな
到達地点へとたどり着く事ができました。
 今回の統合によってblenderは3Dのシーンデータをもとに2Dのエッジをさまざまな
スタイルで描画可能なNPR(Non Photorealistic)表現のためのレンダリングエンジンを
備える事になります。

 Freestyle統合プロジェクトは多くの人々にサポートされてきました。
このような他に例を見ないプロジェクトに携わる事ができたことにたいして、様々な
手段や方法でそれを支えてくれた皆さん、励ましてくれた皆さんに感謝の言葉を
述べたいと思います。

 そうした謝辞を述べる上で一番に取り上げたいのはMaxime Curioni氏です。
彼はGSoC2008としてのFreestyle統合プロジェクト当初のリーダーです。全ての
統合に向けた作業は彼の手により始まりました。そしてGSoCの期間が終了した後も
彼はプロジェクトをさらなるステージへと進めました。この多大な尽力が無ければ
今のFreestyleは存在しなかったといっても過言ではないでしょう。

 同じくオリジナルのFreestyleの開発者であるFrédo Durand氏、Stéphane Grabli氏、
François Sillion氏、Emmanuel Turquin氏を忘れるわけにはいきません。

 またbranchのレビューワーとしてBrecht Van Lommel氏、Campbell Barton氏、
Sergey Sharybin氏、IRIE Sinsuke氏にも多大なご協力をいただきました。
レビューのコメントや提案は統合に向けたコード全体の品質向上とBlenderオリジナルの
コードとの統一性や一貫性の改善に心強い助けとなりました。

 Freestyle統合版は多くのコントリビューターの皆さんからのコード提供により機能の
拡張や改善が行われてきました。Alexander Beels氏からはすばらしいパッチを
提供していただきました。このパッチによりFreestyleのレンダリングスピードは
条件によっては最大185倍にまで高速化されました。その成果は4ヶ月にもわたる
テストと議論の賜物です。
 Bastien Montagne氏からはtrunkへの統合にむけて大規模なコードクリーンナップの
パッチを提供していただきました。彼の忍耐強い取組みによりコーディングスタイルに
関するコードレビューがとても順調に進んだ事に感謝しています。

 Freestyleのドキュメント整備についてはその多くがユーザーの皆さんの主導で行われ
ました。その中心となったFlokkievids氏、Light BWK氏、Lee Posey(jikz)氏に感謝を。
彼らの成果は公式のBlenderドキュメントの一部、Freestyleマニュアルの初版として
皆さんのお目にかかる事でしょう。

 そして、最後になりましたが最も大切なこと、Freestyle統合版をプロジェクトの
初期から支えてくれた皆さんへの感謝を忘れるわけにはいきません。
 5年にわたるFreestyle統合版の開発はたくさんの方々、アーティストやブランチのビルドやテストを行ってくれた皆さんに支えられてきました。そういったbranch段階からの
ユーザー、特にBlenderArtists.orgのFreestyleスレッドで、書き込みを盛り上げてくれた
皆さん、バグレポートを提出してくれた皆さん、ブランチのビルドを更新してくれた
皆さん、Freestyleを利用したたくさんの作品を投稿していただいた皆さん、
そしてそこでの多くの励ましの声に助けられてきました。
 彼らのサポートとフィードバックは、このようなボランティアによるフリーソフト
開発の本質である事は疑いの無いものです。以下に支援いただいた方々のお名前を
挙げるとともに、皆さんに感謝し喜びを分かち合いたいと思います。
(すみませんがコメントやアドバイスを頂いたものの名前を挙げきれない方も多くいます。
ご容赦ください。)

3Duaun, blendman, bmania, bupla, Chris Burton, Mark Cannon
(pyrosever), Vicente Carro, Cloud_GL, crazycourier, Dazzle, delic, devroo,
Écrivain, edna, FEDB, flokkievids, Forrest Gimp, hinabita, holly, Ike AhLoe,
IRIE Shinsuke, Naoki, Nathan Letwory (jesterKing), Johan Tri Handoyo, Jonathan
Hudson, JO5EF, mzungu, Lee Posey (jikz), Light BWK, loopduplicate, macouno,
mato.sus304, mclelun, mib2berlin, Mohe & Shiratama (Moonlight Jellyfish), NRK,
octane98, pancreasboy, patricia3d, Paul Hartsuyker (paulhart2), procreaciones,
robi, Rylan Wright (RONIN), s12a, Nakeyta Schulz, Stéphane Grabli, tksg8086,
treatkor (tkroo), tungee, Uncle Entity, Unhurdof, Victor / tokiop, viralata, and yoff.

2.67の正式リリースに向けて今後はFreestyleのバグフィックスとドキュメントの整備を
中心に進めていく予定です。
今後もバグレポートやコメント、提案などいただければ幸いです。

敬具



とこんな感じ。
開発者の皆さんひとまずお疲れさまでした。
かなり早い段階から自前ビルドして使っていたので、使っていただけどはいえ
感慨深いものが。

せっかくなので統合&2.67リリース記念で何かやりたいところ。

---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手

2013年3月8日金曜日

Cube買った的な。


コンパクトカーだと思った?残念!3Dプリンタでした!!的な。

とりあえず本体のみ購入。

本体には緑色のPLAフィラメント1カートリッジ、固定用グルー、ACアダプタ、
USBケーブル、USBメモリなど出力に必要な最低限のものがセットでついてくる。
で、その本体に+$150くらいで、3DCAD、好きなフィラメント3カートリッジを
セットにできる仕組み。

本体のみにするか、セットにするか迷ったけど、追加のフィラメント買うにしても、
最初に感じをためしてから選びたかったし、3DCADはblenderがあればSTL吐ける
からいいか的な感じ本体のみを購入。

で、注文から到着までは…

 2/4 白Cubeをオンラインで注文。すぐにオーダー確認のメールが来る。
 2/18 発送予定のはずだけど連絡なし
 2/22 おかしいと思って問い合わせたら白に注文が集中してて在庫切れとのこと。
    銀ならすぐに出荷できます、とのことなのでオーダー変更してもらう。
 2/25 銀Cube発送のメール来る。
 3/1 到着するも不在
 3/2 土曜の午前中に再配達してもらって受け取り完了。

という感じなので、順調に行けば注文から1週間くらいで納品されそうな予感。
問い合わせはメール書けばすぐに対応してくれたのでよさげ。

で、ものは届いたものの、玄関がぱんぱんだぜ的な。


茶色い段ボールの外箱は45 x 45 x 65cmくらい。
覚悟はしていたけどでかい。とりあえず開封してく。
この外箱開けるとこんな感じで内箱というか化粧箱的なものが。


これが36 x 38 x 47cmくらい。こいつをあけると・・・


本体が。
さっそく説明書に従って設定してサンプルデータを出力したのがこんな感じ。


よさげ。次はblenderで作ったデータを…



早すぎたんだ。腐ってやがる…的なsuzanneが出力される罠。
積層の方向とか、肉厚の取り方とか調整していきたい感。

---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手

2013年3月2日土曜日

Freestyleの薄い本的な。


そういえばCOMITIA103でサークル、スザンぬクラブにてblenderとFreestyleによる
イラスト&解説本的なものを頒布していたりした。


というのを当日はおろか、終了して一ヶ月近く経ってからブログに書いたりする残念感。
おもしろかったのでまたやりたい。
あとサークルブースまでお越しいただいた皆様ありがとうございました。

というかもう一ヶ月経っちゃったのか。そろそろ次のなにかをやって行きたい感。

---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手