From BlenderWiki

Jump to: navigation, search

スレッド処理の向上

Blender が(ずーっと以前からの)レンダリングはもちろん、もっと最近の依存グラフや、その他多くのタスクもマルチスレッド(つまり、マルチコア CPU 上で複数のタスクを平行して実行可能)になりました。

これによりある問題が起こります ― 8コアCPUで、8から16のスレッドを実行するのはいいのですが、基本的にこれらスレッドは CPU コアの利用権待ちに多くの時間を浪費し、さらにスレッド管理とコンテクスト切替にかなりの CPU 時間がかかってしまうため、80以上になるとまずいのです…。

爆発的なスレッド数の主な原因は OpenMP の使用によるもので、このライブラリは小規模なコードの実行の並列化を、本当に簡単に行えるのです。そのため(長期に渡って実行し、緊急でない)タスクを決め、これらの OpenMP の使用を対応する私たちのマルチスレッドコードの呼び出しに置き換え、あまり多くのスレッドを実行しないようにしています。

現在、以下の Blender のツール・領域が更新されています。

  • モディファイアー:
  • ペイント・スカルプト(途中):
    • スカルプト・ペイントの全コード。スピードは非常に変化しやすく、知覚できない場合から、ベストで最大20%以上の場合もあり(ストローク処理全体)、いくつかのポストプロセスも若干スピードアップ(法線の更新などでは20%高速化)しています。rB1991ee173865rB2e77c413ab3cdcrB0b157f7c6cf3brBa5c419f4ccbrB6703d413f9b3rBb871160ddなど。
  • その他:
    • 煙シミュレーション、最大5%スピードアップ。rBf30b0c60cffc
    • パーティクルの内部コード。rBc1b76285eef7ab)
    • いくつかの低レベル「ライブラリ」コード、例えばクロスシミュレーション(他の Blender の部分にも影響)で最大2%スピードアップ。rBd08e9883bdfcrB971f9e1c25dae

コンポジティング

  • 2D Stabilization(2Dスタビライゼーション)ノードに Invert(反転)オプションを追加。(ea67f55)
  • Mask(マスク)ノードのラベルにマスク名を使用するように。(f1555c8)
  • Track Position(トラック位置)ノードの出力としてトラックの速度を公開するように(速度はピクセル毎フレーム)。(2339a84)
  • ブラー時に画像境界を延長するオプションを追加。(cc55f97)

Image Editor(UV/画像エディター)

  • RGBチャンネルを個別に表示できるように。(43bf78c)

その他

  • 翻訳 UI 使用時に翻訳されたマニュアルへの「リダイレクト」の修正、再度使用可能に。(rBA9a875bfb2693)
  • Object Mode(オブジェクトモード)に Select More/Less(選択の拡大縮小)を追加。de79d04 (3097119)
  • オブジェクトグループのコピー・ペーストに対応。(90250f8)
  • トランスフォーム:バーチャルカーソル位置の格納に対応。
    (回転モードに合わせ)Grab(移動)で[Shift]キーを離しても「ジャンプ」しないように。(e6abc3a)
  • Blender Internal(Blender 内部):サブフレームレンダリングに対応。63de1e7

OpenVDB キャッシング

OpenVDB用ポイントキャッシュUI

煙シミュレーションが OpenVDB をバックエンドとして使用しキャッシュできるように。(rBe9452f909cdb) シミュレーションフィールドは以下の名前の下の .vdb ファイルにあります。

  • "color"
  • "density"
  • "heat"
  • "heat old"(前フレームでの温度)
  • "flame"
  • "fuel"
  • "react"(リアクション座標、炎で使用)
  • "velocity"
  • "shadow"(ビューポートレンダリング用に計算されたボリュームの影)
  • "texture coordinates"(Turbulence(乱流)で使用)


注意:

  • フィールドの存在はシミュレーション設定に依存します。例えば"texture coordinates" は High Resolution(高解像度)有効時のみ書き込みされます。
  • High Resolution(高解像度)有効時、低解像度に関連するフィールドには " low" の接尾辞が付きます。


Vector Transform(ベクトル変換)ノードがビューと Blender 内部レンダーに対応

(rBa6aaaad9795e)

Blender 内部レンダーでの Cubemap world テクスチャ

キューブマップの World(ワールド)テクスチャが Blender Internal エンジンビューポートで対応されました。(rB771f73b6bedb)

注意:

  • Image(画像)タイプを Environment Map(環境マップ)にする必要があります。
  • 環境テクスチャのフォーマットは、Blender が作成した環境テクスチャのフォーマットです。
  • 'World Background(ワールド背景)' 表示オプションをONにします。
  • ▼Influence(影響)の 'Horizon(水平)' をONにします。

ビューとゲームエンジンでのキューブマップ反射

キューブマップ反射がビューポートとゲームエンジンで対応されました。(d80f8ba)

注意:

  • Image(画像)タイプを Environment Map(環境マップ)にする必要があります。
  • マッピングの Coodinates(座標)は "Reflection"(反射)に設定する必要があります。
  • 環境テクスチャのフォーマットは、Blender が作成した環境テクスチャのフォーマットです。
  • 環境テクスチャ用の Geometry(ジオメトリ)オプションは利用できませんが、反射はノーマルマップテクスチャでデフォーム可能です。
  • 反射のデフォームはテクスチャスタックの順番に依存します(ノーマルマップは環境テクスチャの下に入れる必要があります)。

矩形と楕円のスポットライト(ビュー&BGE)

スポットライトが単一または複数の軸でスケーリングできるようになりました。これは円と矩形のスポットライトの両方で働きます。(e60d535) 現在のオブジェクトをスケーリングする Python API が使用可能です。

Text(テキスト)オブジェクトのネイティブクリップボード統合

Text(テキスト)オブジェクトのコピー/ペースト機能がシステムのクリップボードと統合しました。テキストのペースト時、Blender からコピーしたように、スタイル(ボールドなど)が維持されます。(a143aeae)

システムクリップボードとのコピー&ペーストの統合