bf-Blender Linux / Windows (2005/10/03)
投稿日時 2005年10月08日 | カテゴリ: テストビルド
|
元記事:bf-Blender / Linux (2005/10/03) 元記事:bf-Blender / Windows (05/10/03) + patch
gabio氏とlguillaume氏による、10/3付bf-blender Linux / Windows版のビルドの配布です。 Windows版ではさらに、 [ #2896 ] particle 拡張 - 2005/10/4版(Janne Karhu氏) [ #3110 ] EditMode での Wire シェーディング(Eric Forsythe氏) [ #3126 ] 3DView の Object 名による、Key 名と Pinned ステータスの取得(Johnny Matthews氏) [ #3130 ] Vertex Color Baking(Martin Poirier氏) が追加されています。
以下はGabio氏の記事からの引用です。
こんにちは。私はできるだけ頻繁にビルドしようとしていますが、ないよりマシでしょう。 多くの新機能が再び登場しました。Hair: driven Ipo、新 Strand (髪の毛)チャネルを楽しんで下さい…。
注:このビルドは glibc 2.3.5 とPython2.4.2 でビルドされています。2.4が使用される予定ですが、最新版でビルドしています。Pythonのテストが必要です。次のビルドでは、公式のビルド環境を使用し、Blender.org の公式のプラットフォームスペックに落とそうと思っています。
-------------------------- 概要 - バグ修正 - static Particle により、簡単に髪の毛が作成できるように。 - Constraint の古い(2.1)機能を削除…Constraint との Blend データ。 - 'Set Smooth' と 'Set Solid' を Mesh EditMode のSpecials([W])メニュー、Toolbox、3DViewのメニューに追加。 - Static Pariticle の髪の毛用に、"anisotropic" レンダリングを追加。 - 新しい hair "strand" チャネル。 - Wire Material と Particle Strand 用にシャドウバッファのサポートを追加。 - Sequence Strip の Transform のキャンセルに、右クリックを使用できるように。 - [Shift]+[Space] で、フルスクリーン/タイルウィンドウスペースの切り替えができるように。 - IpoDriver の Ver.1.0。 - 新機能! Curve の EditMode が、Solid で Extrusion、BevelCurve、Taper を描画するように。 - Curve の Resolusion の設定を Copy Attribute([Ctrl]+[C])メニューでコピーできるように。
残りは後日。前回のは…どうなるかわかりません。
Commit: ton氏 Log: Texture Font が消えるのを直す FTGL のパッチ…どうしたものか、これはピクセルマップ Font より非常に遅くなります。ButtonsWindow での [ctrl]+[Alt]+[T]による Timer では、このコミットにより2500から100に落ちました。
ascotan氏 Log: - vector クラスに比較演算子をいくつか追加。 >, >=, <, <= で、vector の大きさをテスト。 ==, != で、vector の値が「イプシロン内」かどうかテストします。
- ideasman氏の発想です。
Log: saveRenderedImage を RenderData オブジェクトに追加。
- ユーザが、ファイルネーム.拡張子(訳注:下のサンプルではmyRender.jpg)を、レンダリングパス先にレンダリングすることが可能になります。
例:
import Blender
s = Blender.Scene.GetCurrent() r = s.getRenderingContext() r.setRenderPath('C:\\') r.render() r.saveRenderedImage('myRender.jpg') Blender.Scene.Render.CloseRenderWindow()
zuster氏 Log: - Tooltip を修正、double sideをつけると、それぞれの面があるように装います。
ascotan氏 Log: 参照カウンタの修正。 * mathutils による参照カウンタで起こりうる問題を修正。 * mathutils クラスはもうメモリリークしません。
Log: - angleBetweenVecs の修正。 * 0の長さのベクトルのチェックを追加。
ton氏 Log: Shade 描画モードと、OpenGLプレビューレンダリングがライトにより更新されるように。
stiv氏 Log: Object の loc, rot などを変更した際、object->recalc フラグをセットするように。 FrameChange Scene Scriptlinks による問題を修正。
ton氏 Log: 髪の毛!
Studio Orange(@ndy、Matt、ありがとう!)のテストのおかげで、私は簡単な方法を見つけることができました。
Static Particle システムで、Wire や Halo に設定しなかった場合、1ピクセルサイズの'strands(髪の毛)' をレンダリングするようになりました。これは実際には VertexNormal と、適切な Orco Texture を持った単なる Face です。とりあえず下記画像をチェックしてみてください。
Log: 新たな GL_FRONT 描画の鎮圧により、いくつかの設定で遅くなる可能性が発生しました。これはSGI用の古い改造であるため、私は #ifdef を SGI と SUN用に置きました。
Blender でスクリーン切り替えや、によりまだ動作するかのテストと、Blender のウィンドウエリア間のボーダーのチェックしてみて下さい。すべて空と黒をちゃんと描画するでしょう。
Log: 古(2.1)の Constraint の機能の削除…ほとんどドキュメント化されておらず、予測不可能なものです!
これが何をしていたかというと:二つ以上の Constraint が同じタイプだった場合、その Constraint用の Target の位置と回転の平均を取り、最後の行の Constraint にのみ適用するというものです。おそらく、IK Constraint などをブレンドする仕掛けなのでしょう…これ以外のすべてのケースでは、いい使用方法をみつけられません(Bassam氏も)。
たとえば、三つの Empty を追加し、ひとつの Empty に、それぞれ他の二つを Target とする Copy Location を合計二つ作成します。この場合、各Constraint の間に "Empty" Constraint を挿入しない限り、動作していませんでした。 私は Blender.org の Animation Forum にもフィードバックを得るために投稿する予定です。
これは極めて簡単にオプションのひとつにできますが、まず最初に、このようなオプションの実際の使用について把握したいと思います。
Log: バグ修正:
- "Show" と "Key" ボタンがアクティブな Constraint をセットせず、IpoWindow での表示に混乱が生じていました。
また、Constraint とモディファイアの背景色を、Panel の Theme カラーを使用するようにし、より統一感がでました。
Log: バグ修正:
IpoWindow がキーのある旧ファイルを読み込む際、適切でないポインタの使用により、クラッシュが生じていました…。
Log: (モディファイアコードとともに失われていた)SubSurf 時の実際の Face 数の Info ヘッダへの表示を復活。
broken氏 Log: * 'Set Smooth' と 'Set Solid' を Mesh EditMode のSpecials([W])メニュー、Toolbox、3DViewのメニューに追加。これでもう EditButtons に切り替える必要はなくなりました。
stiv氏 Log: Curve.update() メソッドが、新しい DAG 機能を使用するよう修正。
ton氏 Log: - Static Pariticle の髪の毛用に、"anisotropic" レンダリングを追加。
これは、ディフューズとスペキュラシェーダが髪の毛の Normal(これは実際には髪の毛が微細な円柱なため、定義されていません) を使用せず、タンジェントベクトル(髪の毛の方向のベクトル)を使用することを意味します。
ディフューズ用には、現在、ライト方向を指し示す最適な髪の毛の Normal の代わりに、偽の Normal を計算しています。Ramp を含む、現在のすべてのビルトインシェーダがこれにより動作します。
スペキュラ用には、別の新たな式を、Normal の代わりに、タンジェントベクトルを使用するすべてのラインで、内積を置き換えて使用されています。
dot = vector * tangent
dot = sqrt(1.0 - dot*dot)
ディフューズ用の「偽」の Normal を使用するよりいい結果になります。公式には(論文によると)、これはディフューズにも使用されていたようですが、髪の毛が非常に平坦になってしまいます。現在は、たとえば Ramp や Oren-Nayer などを使用することで、簡単に平坦さをコントロールできます。
サンプル画像です。(数週間後には消えます)
- 髪の毛全体に適用する、新しい Texture チャネル "Strand(髪の毛)"を追加(1次元)。Orco には髪全体の、根元を基準とした、1つの固定された位置を持ちます。 注意:UV はまだ動作しません。VertexColor もです。
intrr氏 Log: Python API を、Text3D Object を正しく作成できるよう修正。これは単なる一時的な修正(コードをもう一度コピー)なので、本当の修正では、一度、すべての場所の TextObject を初期化するための、中心になる関数をひとつ作ることになるでしょう…。
私はまた、壊れた(初期化コードがないため、cu->tb == NULL な)Text Object のある、旧ファイルを読み込むことのできる、互換性のあるコードを導入してみました。
動作することを祈ります。
ton氏 Log: Orange の報告しているバグ:新しい Scene を追加し、"Link obdata" を選択すると、メモリ異常が起きていました。Pose がコピー後、再描画までに正しく再リンクされていなかったようです。(同じ Armature を多くの Object が使用していた場合)。
readfile に、まだ使用されている可能性のある、この複製エラーによりファイルが保存されたか確認するパッチを追加。
Log: 新しい髪の毛の "Strand" チャネルに、間違った Texture 位置の Input がありました…これは -1 から 1 の代わりに、0 - 1の範囲でレンダリングしていました。修正済です。 ただ、このエラーは以前私が行った Alpha のテストを改良してくれたようで、どうやら、髪は Alpha が0.0から0.5までの範囲の場合に綺麗になるようです。
Log: - Wire Material と Particle Strand 用にシャドウバッファのサポートを追加。 (Strand がスクリーンに並んでいるため、うまく塗りつぶされていませんでした)
シャドウなし:
シャドウあり:
Log: バグ修正 #3115
Layer を変更した後に Undo すると、「アクティブ Layer」を3DWindow に復帰していませんでした。その時に新しい Object を追加すると見えなくなります。
Log: バグ修正 #3112
EditMode での Mesh の選択が、新しい[Alt]+[B]のクリッピングオプションで正しく動作していませんでした。
broken氏 Log: * Blender の他の機能のように、Sequence Strip の Transform のキャンセルに、右クリックを使用できるように。
Log: * [Shift]+[Space] で、フルスクリーン/タイルウィンドウスペースの切り替えができるように。[ctrl]+[↑]/[↓]に比べ、マウスから手を離す必要がなく、非常に便利です!
intrr氏 Log: バグ#3094修正の可能性 - SDL のスレッド内でのメモリアロケーションに、通常の malloc/free を使用しました。
Log: EdgeSlide の [Shift]の微調整の修正(Warning クリーンアップの後遺症 )
guitargeek氏 Log: Loopcut 用のボトルネック解消に、イベントキューが MOUSEX と MOUSEY イベントを無視するように。
Log: Loopcut コードを少しクリーンアップ。スピードの向上と、qread() が壊れる代わりにその作業を終えてくれることを願います。私はこれがトラブルを起こしていたのだと思います。
desoto氏 Log: このコミットは、Preference ウィンドウの Infoヘッダ と 3DView のヘッダの表示を、メニューの文字と同じ色にするものです。 ヘッダの色を背景に、メニューの文字が読みやすくなっていれば、同様にヘッダの色を背景にした文字を確実に読めるようにしてくれます。暗い Theme を更に見やすくしてくれるでしょう。
ton氏 Log: クラッシュの修正:envmap のある AO のレンダリングが動作していませんでした。
envmap は現在もレイトレースなしでレンダリングされることに注意して下さい。
zuster氏 Log: - DOUBLE型の Python Buffer() のサポートを追加。
theeth氏 Log: "Pose" の Grab Transform の修正。バグ#3030: http://projects.blender.org/tracker/?func=detail&atid=125&aid=3030&group_id=9
initgrabz が正しく行われていませんでした。
Log: 中マウスボタンによる Transform の挙動を、ミーティングでの提案どおりに修正。
中マウスボタンのみでは、Global 軸を、[ctrl]+中ボタンをユーザ定義にします([Alt]+中ボタンは、Linux のウィンドウマネージャと衝突します)
(ホットキー:押した最初は Global 、次に押すとユーザ定義)
ton氏 Log: IpoDriver の Ver.1.0。
この新機能について最初に注意しておきます。これはまだ未完成であり、テストとフィードバックを得るのが目的です。下記に動作と、まだ必要な作業を示します。
この文は CMS にもあります:http://www.blender.org/cms/Ipo_Drivers.680.0.html
IpoDriver は IpoCurve に似ていますが、Bezier Curve の代わりに、他の Object のあるプロパティをその「チャネル」の入力として接続することができます。たとえば、IpoDriver は Bone の回転により "drive(駆動)" する Shape Key を持たせるのに使用することができます。もしくは Material の RGB カラーを、ある Object の XYZ の位置によりコントロールすることもできます。
(Ipo)Driver は IpoWindow で編集します。ここでチャネル(右側のウィンドウ)に今、「アクティブ」チャネルインジケータがあることに注意してください。 Driver を追加するには、"Transform Properties"パネル([N]キー)を使用する必要があります。ここで構築したい関係の種類が表示されているボタンを使用することにより、アクティブチャネルへの Driver の追加や削除ができます。
Driver Object
どの Ipo チャネルも Drive することができるようになりましたが、現在は、Object の Transform もしくは Pose Bone の Transform のみ、Driver として使用できることに注意して下さい。
現時点において、Local Transform のみが考慮されます。 Object にとっては、これは Parent による Transform のない、Location/Rotation/Scale 値(Object の "Transform Properties" パネル内で表示される値)を意味します。 Pose Bone にとっては、Pose Transform(Rest Position からの変更)のみが Driver の情報ということを意味します。(PoseMode での Transform Property にも表示されます)
Driver の割り当て
Ipo チャネルが "drive" されたとき、その割り当てはデフォルトでは1対1です。 これは、例えば Material の "R"値の範囲が0.0から1.0だけなように、各チャネルにすでにある固有の制限値によってのみ制限されます。
また、回転に割り付けられた時、実際の Ipo 内での Rotation の値は1/10小さくなります(180度は、実際の Ipo システム内の値では18.0になる)。これは Blender の古い時代の意味のない仕様なのです…秘密ですが、実はルーラー(上下だけでなく左右も)が仮想の値を正しく表示するためなのです。 Properties パネルのみが実際の値を表示します。
Drive されたチャネル内の IpoCurve を描いた場合、この Curve は Driver の Output(左右)と、Drive された物の Input(通常上下)の間の割り付けを定義します。
素晴らしい新オプション "Insert one-to-one curve"([I]キーもしくはプルダウンメニュー内)で使用します。これはまた、ウィンドウいっぱいにぴったりズームして表示するため、編集が簡単に行えます。もしこのオプションを度数で使用する場合は、180度を1.0ユニットの範囲に割り当てます。
ライブアップデート
Driver が Ipoシステムに統合されたおかげで、Ipo が評価された時はいつでも、常に更新されます。これは少なくともフレームが変わった時に起こります。 インタラクティブなフィードバックのため、Object の Transform 中の更新条件に下記のケースが追加されています。
- 他の Object もしくは Pose Bone から Drive されている Object の Ipo。 - 他の Object もしくは Pose Bone から Drive されている Shape Key の Ipo。
また、Action Ipo への Driver の挿入もできますが、現在は単にフレーム変更時にのみ評価されます。
Todo
- Driver にテキストボタンをつけ、1行の Python スクリプトを実行できるように。 - UI をもう少し隠さないように…多分3Dでの表示に? - Driver でも Global座標での Transform を可能にする。
既知の問題
- Bone のリネームで、Driver をリネームしません。 - (ファイルの)Ipo の Append が、リンクされている Driver Object を Append しません。
サンプル:http://orange.blender.org/wp-content/themes/orange/images/blog/facetest.avi
Log: IpoWindow ヘッダ:Curve がまだ全く作成されていない時、Curve メニューでクラッシュしていました。
Log: バグ修正:ActionWindow で、Mesh キーの挿入でクラッシュしていました。Ipo に関連するものです。
(そう、Studio Orange は テスト中です。)
guitargeek氏 Log: バグ#2909
LoopCut の終了時のヘッダの再描画で、このバグの二番目を修正します。私の以前のコミットで、一番目の半分を修正しています。
ton氏 Log: バグ修正 #3046
3DWindow が "Unlocked"(自身の Layer とCameraの使用が可能)で使用している時、その依存が更新されず、Scene の Layer のみを使用していました。
依存グラフのコール、DAG_scene_flush_update() をスクリーン内のすべての可視 Layer を引数として受け取るよう変更しました。
Log: バグ修正 #3138
EditButtons の "Centre" オプションがリンクされたデータの依存グラフを正しく使用していませんでした。
Log: バグ修正 #3133
- Border による画像のレンダリングが、いまだに1ピクセル未満のサイズをチェックしていませんでした。
このコードに関連し、二つの他の問題を修正をしました。
- RenderWindow 内の描画用の Theme カラーが、正しく復帰されておらず、時々間違ったパネル(半透明の)描画を起こしていました。
- Gauss を設定した画像をレンダリングした時、デフォルトで1ピクセル大きくレンダリングし、剥ぎ取るように。これは画像に「醜い」暗いボーダーができるのを排除します。 (そう、Mr.ピクセルカウンター、Goralczyk(訳注:@ndy)氏を幸せにするためです!)
Log: IpoWindow、Action Curve の更新。
Ipo が(Boneの)Action チャネルにまだ存在しない時、[ctrl]+クリックによる Curve もしくは Driver を追加できませんでした。これは古い Action コードの状態に起因するものでした…まだ汚いですが、大きくクリーンアップをする時間は今はありません。少なくとも現在はこれで動作します。
(あと、前回のコミットのテスト出力を削除)
Log: 新機能! Curve の EditMode が、Solid で Extrusion、BevelCurve、Taper を描画するように。
修正:Armature からある Action のリンクを解除する時、IpoWindow はまだ Driver を追加できていたため、クラッシュしていました。
antont氏 Log: Shape/KeyBlock の名前の取得をBPython APIに追加。mikasaari氏はこれで氏のリップシンクスクリプトの開発を続けられるでしょう(音素の名前は Shape/KeyBlock の名前のところにあります)。
Log: Action での Driver の追加も同様にライブアップデートするように。
主な変更点は、Pose 自身を編集する場合を除き、Pose の Transform時に、Action を常に更新するようになったことです。テストを願います!
broken氏 Log: * Curve の Resolusion の設定を Copy Attribute([Ctrl]+[C])メニューでコピーできるように。
|
|