bf-Blender / Windows (2005/07/16)
投稿日時 2005年07月18日 | カテゴリ: テストビルド
|
元記事:bf-Blender / Windows (2005/07/16)
gabio氏による7/16付bf-blender Windows版のビルドの配布です。
こんにちは。1週空きましたが、心配ご無用。 新機能が追加されています。いつもどおり、バグ報告を送る前にログを注意深くお読み下さい。 裏では多くの作業が行われています。ユーザにとって不必要と思われるいくつかのCVSのエントリはここにコピーしていません。 MSVC 7.1 でビルドされています。 しかし、今までこんなに多くの変更を書いたことってありましたっけ? --------------------- 概要 - バグ修正。 - 3DViewの回転オプション:Around Active(アクティブObjectのまわりを回転) - 画像メモリのガーベジコレクション(スピードアップ)。 - PoseMode の Constraint の Ipo が NLA に統合。 - "Auto" ハンドル(Ipo)に、水平のままにしておくためのオプションを追加。 - IKAの終焉。(IKAはもう機能しなくなりました) - Armature の EditMode/PoseMode が再び[Home]もしくはテンキー[.]に正しく反応するように。 - DataBrowse/ポップアップメニューの.fileブロックを隠しました。 - Bone が Solid でも描画できるように。 - PoseMode の Armature に選択時の Theme カラーが追加。 - Subdivide/Loop ツールの再コーディングコミットその1(新機能!!!) - bpython: Mathutils の更新&リライト。 - Solid描画モードで Material を Alpha を反映して描画するように。 (訳注:DrawExtra の "Transp") - ObejctButtons の "Draw" パネルの並べ替え。 - Armature用 の XRAY 描画オプションが、すべてのObjectタイプ用の "Draw Extra" オプションとなりました。 - Deform Parent と、Vertex Parent の BPythonのサポート。 - Bulletライブラリの追加(GameEngine の物理エンジン) - B-Bones! (何か全くわからないので、試して見てください)
今回は1ファイルのみとのこと。Blender-windows20050716.zipだけダウンロードすればOKです。 現在激しく忙しいので、訳は遅れる予定です。(汗 7/21: 半分だけ訳を追加しました。
Commit ton氏 Log: マージのエラー…PoseMode の Bone の回転で、アクションが挿入されるとき、偶然ポーズの再計算がフラッシュされていました。そのため、過去のアクションの状態が復活し、新しいキー位置の編集を妨げていました。
Log: Action Constraint が再び動作するように。見直しが必要ですが…Bassam氏からのテストファイルでそれを行っています。
さらにifdefされて、そのままになっていた古いコードを削除しました。
theeth氏 Log: 欠けていたクォータニオン関数をいくつか追加。
QuatMulVecf: クォータニオンでベクトル(float×3)を乗算(回転)。単位クォータニオンを受け取ることを想定しています。 QuatConj: クォータニオンを結合します。 QuatInv: クォータニオンを反転します。(単位クォータニオンだけを想定していません) QuatMulf: スカラ値でクォータニオンを乗算します。 QuatDot: クォータニオンの内積を求めます。 printquat: デバッグ用出力関数。
Log: 3DView の 視点回転オプション:Around Active これは、視点を周回するとき、アクティブな Object の場所に中心を固定するものです。 荒い15FPSのデモが下記にあります。 http://www.elysiun.com/~theeth/bf/around_active.html
画像メモリガーベジコレクション。 これは、画像コードにメモリのハンドリングを追加します。画像ひとつに使用されるたびタグが付けられます。 コレクションサイクルの間(サイクルの周期はユーザが決められます)、もしある画像がユーザが決めた限界よりも古い場合、そのバッファが解放されます。これは GL のメモリバッファにも適用されます。 GL メモリにロードされた画像が完全に解放される前に、二つのタイムアウトを経由する必要があります。一つめのタイムアウトで、GL メモリ上、二つめで RAM 上のバッファの解放です。
注: Python からロードされた画像バッファは、ロード完了時点で恒久のタグが付けられます。このタグは Python がその画像の使用を止めたときに削除されます。 私はいくつかタグをつける場所、特にレンダリングパイプライン内を忘れているようです。このコードについてもっと知識のある方が、念のためチェックした方がいいでしょう。 タグ付けはすべてのアクセスで行われ、レンダリング時には、恐らくパフォーマンスが低下するでしょう。レンダリングが完了した時のみタグをつけるようにされるかもしれません。
コレクトは draw_object で呼ばれており、恐らく最適な場所ではないでしょう。 Undo については安全で、どんなときでも、Undo の使用によりメモリが解放されることはありません(現在ファイルを開いているところに、blend ファイルをロードするときなど)。
UserPreference の DNA の変更: いくつかのフラグ変数を short から int に変更しました。理由のいくつかは、よりスペースが必要だったから、その他の理由は SDNA をおとなしくしておくためです。
InfoWindow の変更: いくつかのボタンを並列するブロックにグループ化し、お互いに排他的なオプションは判りやすいように色を変えました。
Matt氏が Tuhopuu で何も変更していなかったので、私がこのコミットで誰かの足をひっぱっていることはないと思います。
また、いくつかの場所(ほとんど space.c)の double の const を、f をつけて float にし、コンパイルが上手くいくようにしました。
ton氏 Log: 再び PoseMode での[Esc]により、Armature が元の位置に正しく戻るようになりました。
Log: 二つの小さな修正:
- Action が割り当てられていたとき、PoseMode での[Alt]+[R]による回転のクリアが動作していませんでした。 - 'Delete object' で、Armature/Pose の Constraint 用の Object のポインタが NULL にセットされていませんでした。(古いバグ)
Log: ワークショップで披露された二つの小さなバグ:
- update_for_new_frame() (Frame増加時、[Alt]+[A])で、3DView が今まで開かれていなかったとき、クラッシュしていました。(NULLポインタ) - Curve編集時に Proportional モードを使用すると、mallocで確保したブロックの終端以降に書き込んでいました。単に-1がここに必要なだけでした…。
Log: - Action Constraint の修正:Bone の Target(Target は実際は入力 Bone)で、相対的な回転のみが使用されていました。
- ファイル保存部分にスケール=1.0 の初期化を追加。この修正は上方互換性を少しだけ向上してくれます。
- しかしまだ、古いBlenderで読み込んだ時、Bone が180度反転するケースがあります…これが何故起こるのかはわかりません。
Log: Armature の描画の修正:
- 親Bone に向かって引かれる破線が、Rest の状態では間違った Bone に対して引かれていました。 - 破線が自身の Bone の選択色ではなく、親 Bone の選択色になっていました。
Log: Armature: "Make Parent"([Ctrl]+[P])に使用される Bone メニューが間違った添字を使用していたままでした。 コードをクリーニングし、editobject.c に移動しました。
zuster氏 Log:
- 明らかなバグとして表われた物を、 "if (fclose) fclose(file)" → "if (file) fclose(file)" として修正。Text3d.c のオーナーはチェックして下さい。
ton氏 Log: 新機能! PoseMode の Constraint の Ipo が NLA に統合されました。また、ずっと放置されていた奇妙な使用できないコードをクリーンアップ。
また、NLA のブレンディング自体もクリーンアップされ、以前はあまりに多くのデータをコピーしすぎていました。3倍は早くなっていると思います…いいテストが必要です!
あと、Action の Bake を復活。
Log: Armature: - IK Constraint が Action からの Ipo を再び使用するように。 - 前回のコミットのバグ:Object の Action が無視されていました…常に NLA を行っていました。
Editmesh: - Mesh に Edges がある場合、Edge 選択モードの時には、Edges の 選択されている物のみコピーするように。
Log: バグ修正 #2803
大きな Face が複数のオクトツリーのノードを占めてしまうことにより、半透明の影が偶然遠くにある Face と最初に交差してしまうことがありました。レイトレースミラーもしくはガラス用と同じ例外のハンドリングを行うべきでした。
Log: バグ修正 #2797
Mesh の編集中、[Shift]+[F]の "Fill" で、unsigned char を使用して、選択された Edge とリンクしている Vertex の数を数えていますが、減算もされていました…このため、この char 変数が255になり、ランダムなソリッド Mesh に "Fill" を使用した時、クラッシュし(もしくは無限ループに陥り)ます。
Log: バグ修正 #2791
アクティブな Object がない時、Apply deform を行うとクラッシュしていました(プルダウンメニューからの使用時のみ)。
Log: バグ修正 #2790
アクティブな Object がない時、[W]キーを押すとクラッシュしていました。
Log: Editor 中での Scene の切り替えで、すべてのモードから正しく終了するように。vertex/weight/texture paint はまだです。
Log: Armature の複製で、ポーズ再構築の信号を正しく送っていませんでした。
Log: バグ修正 #2774
相対パスのリンクライブラリの使用時、正しく相対のルートが設定されていませんでした…そのため、同じディレクトリにあるファイルに対してのみ動作していました。 また、MaterialButtons のボタンがロックされてしまうのが修正されました。Mesh/Object にリンクされた Material をみることができませんでした。
Log: ずっと以前から欲しい物リストにあったもの:
"Auto" ハンドルの Ipo curve に、極端な値(頂上&谷底)でもハンドルを水平(horizontal)のままにしておくオプションがつきました。[Alt]+[H]で、選択中のそれぞれの Curve に設定できます。これは Curve 毎の機能で、ハンドル毎でないことに注意して下さい。
もし満足に動作するなら、これを新しく追加する Curve のデフォルトにするか検討できるでしょう。
guitargeek氏 Log: バグ#2793の修正。
私がコーディングした時の本当に馬鹿げたミス。if ブロックのまわりに括弧を残していました。
ianwill氏 Log: スクリプトの更新: - Jean-Michel Soler氏: パスインポータ -- ai と svg モジュール。 - Jean-Baptiste PERIN氏: bvh to armatures (注:私たちが bpython に再度 Armature のラッパーを作成するまでは動作しないでしょう) - Campbell Barton: obj importer。
遅れてしまってすみません。皆さんありがとう。
- ドキュメントを少し更新。
ton氏 Log: MetaBall の EditMode では、DAG 再計算イベントが Transform 中は送られていませんでした。 つまり、EditMode 中、エレメントを移動している間はポリゴン化していなかったということです。
Log: 古い do_all_actions() の呼び出しをクリーンアップ。これは単一の Object に対してのみ想定されていましたが、その範囲外でも呼び出されていました。そのため、例えば Action キーの Ipo Curve の編集中などでクラッシュを起こしていました。
まだ、editaction.c と editnla.c に取り組む必要があります。
Log: 更なるクリーンアップ:src/ ツリーから do_all_actions() を削除、適切な再計算イベントで置き換えました。現在 Action Curve の編集中の更新は、本来あるべき方法で行われています。
Log: バグ修正 #2772
EditMesh の undo が Vertex Color を復活させていませんでした! 約1年近くも私たちの注意からすり抜けていました…。
Log: バグ修正 #2768
SoftBody の Bake の開始時、最初のフレームのアニメーションシステムの初期化が正しく行われておらず、その所為で初期状態に必要のない SoftBody エフェクトがかかっていました。
Log: バグ修正 #2763
依存グラフが、ある Armature の Bone から違う Armature の Bone への正しい関係を見失っていました。下記は Malefico氏の興味深いフェイシャルアニメーションの設定です! http://projects.blender.org/tracker/index.php?func=detail&aid=2763&group_id=9&atid=125
theeth氏 Log: このコミットは UV座標の正しい保存とサブディバイドを行うため、ラジオシティを修正します。
既知の問題:Pin のステータスが少し失われるため、オリジナルのピン止めの位置のまわりの、新しくサブディバイドされた UV が、結局ピン止めの位置ままで終ることがあります。修正してもいいのですが、単にピン止めのステータス全体を捨てるだけにするかもしれません。
また、Mesh のギャザリングの際、Material を二回追加しないため、16 Material 制限を超えにくくなっています。
ton氏 Log: バグ修正 #2762
全く無害ですが、怠惰なコードでした…。 「Vertex Color を塗った」Material を選択した時、init_render_material()も、このフラグがレンダリング中に Vertex Color を検出するためにチェックされるため、"Vertex color Light" オプションを設定していました。 現在はレンダリングコード内で適切にチェックされています。
---- 7/26追加
theeth氏 Log: ObjectMode での、バウンディングボックスによる選択の最適化。
selectprojektie(Tonの助言により、view3d_opengl_select とリネーム)を、バッファサイズを受け取るように変更、よって、バウンディングボックスはバッファサイズを、Scene 内の Object 数に適応することができます。
また、ループをより賢くしました。glSelect がバッファを描画順序と同じ順序で埋めるため、選択されていない Object の分の多くのループを節約できます(以前は、これらが選択されていないかが判明する前に、すべてのバッファを通過していました) 。
この方法はおそらく glSelect を使用している他のすべてのループに適用できるでしょう。(新人のプログラマにはいいプロジェクトです)
ton氏 Log: バグ #2747 の修正。
Edge 選択モードでの Knife Cut が、まだ Edge選択について考慮されていないサブディバイドコードを使用しているため、クラッシュが起こる可能性があります。 応急処置で、Knife が、Vertex 選択中かどうかをチェックするようにするパッチをあてました。
Johnny氏: もし新しいサブディビコードを追加したときは、この変更をもう一度行ってください。ちゃんと動作するかのいいテストでもあります!
Log: 新しい IpoCurve オプション、"Keep horizontal on extrema" のため、若干ルールを変更。Y 座標が正確に同じ時も、Auto-Handle を水平に保ちます。
そして、このオプションを、新しく挿入される Curve/Key のデフォルトにしました。
Log: Armature オプション、"Delay deform" が Transform 中にその子が更新されないのを修正…動作には、素晴らしい依存グラフコードを騙してやる必要がありました…。
Log: 修正:Pose をペーストした時、依存グラフが do_all_actions を実行するのを防ぎました。
Log: 新機能:Armature の EditMode/PoseMode が[Home]もしくはテンキー[.]による、全体像もしくは、選択対象中心の表示を正しく処理するように。
修正:NLA や Action のない Pose が、 Rest 設定がされているファイルの読み込み、もしくは EditMode を抜けたときにリセットされていました。
Log: - Object Buttons の Hooks パネルの、clear offset が正しく再描画されていませんでした。 - Particle パネルが間違ったサイズで描画されていました。
theeth氏 Log: 私のラジオシティのコミットに、私のベースリスト順序管理の実験コードからのいくつかのコードが入っていました(このマクロを使用しなかったため、削除されていませんでした)。 ラジオシティで明らかに間違っているとき、頻繁に "no vertices" と言うようになっていました。
Log: databrowse/ポップアップメニューから .file (訳注:.blenderなど)を隠しました。 これは主に、自身が使用するデータブロックを生成・読み込むスクリプトに便利で、ユーザが注意を特別に払わない、データブロックの雪崩に埋まるのが嫌だからです。
これで、User Preference に、"Hide .data" が追加され、新しく FileSelector を開くときのデフォルト値となります。 また、data select のポップアップメニューにも使用されます。
FileSelectWindow の "ghost" ボタンはこの UserPreference の設定から独立しています。個別に影響なくON/OFFできます。
注:このオプションを ON/OFF した時、時々ポップアップメニューを登録する前に少し時間がかかります。恐らくキャッシュの類でしょう。あとで見る必要がありそうです。
デフォルトは OFF です。
Log: .date を隠すコードが、databrowse が何かを選択するために使用された時(単に閲覧だけでなく、データブロックを選択した時)、正しく動作していませんでした。 見えているブロックのみを数えていましたが、正しい添え字を得るためには、見えない物も数える必要がありました。
修正済です。
ton氏 Log: Armature の3D描画をクリーンアップ。
- Solid描画モードでは、Bone もSolid で描画されるように。Outline も設定されていれば、選択カラーになります。 禁止するには、ObjectButtons の "drawtype" で行います。 Bone を Solid で表示するのに使用される色は、Theme にあります。
- EditMode の Armature の表示色は、Theme(Mesh Edit の Vertex、Edge)に追従するように。
- PoseMode の Armature にの、選択(Selection)、三つの追加の描画用の ThemeColor を持つように。 カラーは以下の通り。 - 青:Action Ipo を持つ Bone。 - 黄:IK Solver を持つ Bone。 - 緑:Constraint を持つ Bone。
- "X ray" は PoseMode でのみ動作するように…意見が必要です。もっとよくすることもできます。 - "Draw Names" オプションも Theme Color を使用し、選択も示すように。
修正:
- Armature の EditMode で、変形された Mesh が Rest ポジションに戻るように。
- Border 選択が PoseMode で、Bone の 'active' フラグをクリアしていませんでした。 - マウスクリックによる選択で、破線が Bone に近い場合、動作していませんでした。
Log: Constraint の "influence" スライダが、一度Ipoが設定されたあとで動作していませんでした。変数が頻繁に初期化されていました。
ところで、前回のコミットを説明するいいWebページができました。
http://www.blender3d.org/cms/Armature_draw_modes.629.0.html
intrr氏 Log: ラジオシティの "Replace Meshes" が実際に Mesh の置き換えだけでなく、Lamp や Camera、その他 "Collect Meshes" 段階で選択されていたものまで消していました。
ton氏 Log: 二つの小さなバグ:
- Armature の Solid 描画で、負のサイズの Armature が上手く描画されていませんでした。 - Layer Ipos が見えない Object で評価されていませんでした。(依存グラフを回避する新たな例外…!)
Log: 小さな修正をいくつか:
- 「バージョン修正」を少しクリーンアップ。カレントファイルを更に遅くしていました。(Armature はすべてが評価され、更にカレントレイヤにない場合、加えてコンバートがOKかも確認していました)。 クラッシュを起こす古いファイルがあれば送って下さい!
- Path Constraint を持つ古いファイルの読み込みで、修正を追加する必要がありました。
- エラー "bad call to addqueue' が、ヘッダのないウィンドウを FileWindow として使用したときに発見されました。
Log: 新たに古いバグが地獄に行きました!(訳注:原文は Another old bug bites) 実際のエラーはシンプルでした…しかし、現在、依存グラフのおかげで上手く実行できることに感謝せざるを得ません。
バグ #2397: Dupliframe が、使用している Constraint を評価していませんでした。
guitargeek氏 Log: Subdividion/Loop ツールの再コーディングコミット#1をどうぞ。
Ton氏は私がこれを行うことを推薦され、完了を手伝ってくださいました。以下にコミットを駆け足で紹介します。 Ton has been pushing me to get this in and finish it up with help, so here is a run down of the commit
修正された機能: Subdivide は Edge ベースになり、複数のカットができるように。 Loopcut が再コーディングされ、複数のオプションを持つように。 Knife ツールも複数のオプションを持つように。
新機能: Edgeslide Edgering select
削除された機能: [Alt]+[B]の Edgeloop 選択 (Edge選択モードで[Alt]+右クリックを使用して下さい) [Shift]+[R]の Faceloop 選択 (Face選択モードで[Alt]+右クリックを使用して下さい) 旧 Subdivide (Smooth のみ、新しい物が動作するまで残してあります)
Todo: Subdivide Smooth の数式が壊されています ― ここに何かヘルプ関数が使用できるでしょう。(editmesh_tools.c の alter_co を探してみてください) Edgeslide のマウスコントロールの調整が今のところ改造くさくなっています。 Edgeslide に、比例ではない移動の追加。 新しい Loopcut に Smooth オプションの追加。
多分まだ何か忘れていると思います。
下記に詳細があります。 http://wiki.blender.org/bin/view.pl/Blenderdev/EdgeSubdivision
Log: 前回のコミットの Warning をクリーンアップ。明示的キャストをいくつか追加。多分 double から float への Warning が残っているのみです。これ以上は後ほど。
また、Edgeslide の移動が差し当たり少し速くなりました。
Log: もしLoopcut がキャンセルされた場合、スクリーンから最後のプレビューラインを取り除くためのリフレッシュ動作がされていませんした。
報告してくださった Desoto 氏に感謝。
ton氏 Log: Armature "XRay"モードが Solid 描画モードでも上手く描画されるように。動作には、3DWindow に「描画後」の Object を集める新機能を追加する必要がありました。これは最後、Z バッファのクリアの後に描画されます。
同じ方法が OpenGL の綺麗な半透明描画に使用することができます。システムは用意できていますが、あとで実行します。
この大きなコミットは、Global 構造体からのグローバル変数のクリーンアップにより起こりました。多くの変数は未使用もしくは単にもう必要がなくなったものです。汚い G.Zbuf も、View3D space 構造体の、属する場所に移動しました。
Log: 三つの修正:
- Armature の EditMode で、Armature が子をデフォームしている間、SubSurf を作成し続けている所為で非常に遅くなっていました…これはまだ応急処置です。
- Armature での[Ctrl]+[A] が多くの古いコードを使用していたので、そのすべてを削除しました!ちゃんと動作しています。
- 3DWindow のない時に、"Set smooth" もしくは "Set solid" を使用しているファイルを読み込むとクラッシュしていました。
guitargeek氏 Log: Chris Burt氏の提案により、いくつか追加と変更しました。
1. Loopcut と Edgeslide の確認に、[Enter]とテンキーの[Enter]が使用できるように。 2. Loopcut で、カットするループを選択した時、カット数を数値入力できるように。(130未満)
3. Loopcut のカット数がヘッダに表示されるように。
ascotan氏 Log: Mathutils の更新。 - また、プリプロセッサの修正と、前回のコミットのクリーンアップをいくつか含んでいます。
- リライトとバグ修正。 ---------------------------------- 以下が私のチェンジログです:
- Rand() を修正、毎回シーディングしなくなり、生成される乱数の質もよくなっていると思います。
-fixed Rand() so that it doesn't seed everytime and should generate better random numbers
- いくつかの返値の型エラーをより適切なものに変更。
- 初期化されていない変数のクリーンアップと、必要のないオブジェクトの削除。
- NMesh が ラップされた vector を返すように。
- World が ラップされた 行列 を返すように。
- データがあれば、Object.getEuler()と Object.getBoundingBox()はラップされたデータを返すように。
- Object.getMatrix() が、ワールド空間であればラップされたデータを返し、ローカル空間であれば、新しい行列を返すように。
- Vector()、Euler()、Mat()、Quat()はすべて内部的には、内部データブロックを消すことのない、ラップオブジェクトを呼び出すようになりました。
- すべてのメソッドの(不必要な)メモリアロケートを削除。
- Vector のリサイズメソッドが新しい、データがラップされていない Vector にのみ適用可能に。
- Matrix()、Quat()、Euler()、Vector() は、タプルやリスト、コピー用の自身のオブジェクトなど、どんなシーケンスリストでも受け入れるように。Matrix は複数のシーケンスを受け入れます。
- Slerp() を修正、動作が正しくなり、値は0から1の間に制限されるように。
- Euler.rotate が内部の Rotate 機能を行うように。
- スライスがすべてのタイプにおいて上手く動作するように。
- Vector * Vector と Quat * Quat が定義され、内積を返すように。
- Mat * Vec と Vec * Mat が定義されました。
- #include を ヘッダファイルから .c ファイルに移動しました。また、mathutils のプロトタイプ宣言を修正しました。
- gen_utils に、INCREF 用の新しいヘルパー関数を追加。
- ヘッダファイルのインクルードを大きくクリーンアップ ― Mathタイプのアクセス用に、Mathutils.h をインクルードしました。
- matrix.toQuat() と .toEuler() は適切な Matrix のサイズを取るよう修正されました。
- パラメータなしの Matrix() は、デフォルトでは0の行列ではなく、同一の行列を返すように。
- printf() は4桁ではなく、6桁表示になりました。
- printf() はオブジェクトの説明も出力するようになりました。
- Matrix は [x][y] の添え字をサポートするように (例:matrix[x][y] = 5.4)
- Matrix[index] = value は integer ではなく、シーケンスを使用して下さい。これでシーケンスを通じ、Matrix の行が設定されます。index は、Matrix の行のサイズ未満にして下さい。
- Matrix のスライス演算はシーケンスにより動作するように(Matrix の行)。例:mymatrix[0:2] はこの Matrix データにアクセスする、ラップされた二つの Vector からなるリストを返します。
- スライスの適用に失敗しても、データを変更しなくなりました。
- Matrix * スカラの乗算のエラーを修正。
- euler.toMatrix()、toQuat() はもう繰り返し使用しても、「変形」することがなくなりました。
- toEuler()、toQuat()、toMatrix() が使用された時、ラップされたデータはラップされたオブジェクトを生成します。
- Quat を角度/軸、軸/角度から作成できます。
- 4x4 Matrix は3D Vector で乗算可能です。(大勢の需要)
- vec * quat / quat * vec が定義されました。
- vec.magnitude は vec.length の別名です。
- すべての self、内部メソッドは自身へのポインタを返すようになったため、print vector.internalmethod() や print vector.internalmethod().nextmethod() が行えるようになりました(もうprint matrix.inverse() は 'none' を返したりしません)。
- 以下のメソッドは廃止が予定されています。(まだ機能しますが、正しい関数の使用が推奨されています): * CopyVec() - Vector() の機能で置き換えられました。 * CopyMat() - Matrix() の機能で置き換えられました。 * CopyQuat() - Quaternion() の機能で置き換えられました。 * CopyEuler() - Euler() の機能で置き換えられました。 * RotateEuler() - Euler.rotate() の機能で置き換えられました。 * MatMultVec() - matrix * vector で置き換えられました。 * VecMultMat() - vector * matrix で置き換えられました。
- 新しい構造体のコンテナは、Python オブジェクトデータもしくはラップ用に内部でアロケートされたBlenderデータを参照します。 * ここで説明を:Math 構造体は「シンプルなラッパー」もしくは「py_object」として機能しています ― 動的に作成されたデータは現在、Pythonによるメモリ管理がされている「py_object」となります。
* 一方、もしデータがBlenderのG.mainから帰って来た場合、Mathオブジェクトは「シンプルなラッパー」となり、データは他のPythonオブジェクトの用に、構造体から直接アクセスできます。
theeth氏 Log: Databrowse には.ファイルの隠蔽を正しく取り扱うための、新しいコードが必要でした。 これが何かと、何故かを説明するコメントを追加。
また、コンパイラが駄々をこねないように、明示的なキャストを追加しました(ほとんどが double から float)。
ton氏 Log: 新機能:
- Armature 用の XRAY 描画が、すべての Object タイプの、一般的な "Draw Extra" オプションになりました。その描画を最後にまわし、Zバッファをクリーニングした後に再び行います。
- Solid 描画モードでは、"Draw Extra" の新しいオプション、"Transp" をセットすることにより、Alpha 付きの Material を表示するようになりました。これも半透明の描画を最後に行いますが、半透明面のソートは行いません。まだ表示に問題はないようです。
注:これは Mesh の EditMode では無効になります。このすべてのしゃれた特殊描画モードは、単に動作がほぼ不可能になっているだけです。
- Object Buttons の "Draw" パネルを再度並べ替え。
修正:
- do_versions が内部で UserPreference をチェックしていました(新しいOpenGLテクスチャキャッシュ用)。 そこでは行えないため、usiblender.c で行うべきです。(まぬけな例外処理の所為)
- 同じエラーが、古いファイルの読み込みで、Armature のバージョン変更(昨日のコミット)を常に修正しない現象を起こしていました。
- Outliner の選択の描画が、3DView選択中でも起こっていたため、不必要に遅くなっていました。
Log: 非常にいやらしいバグを修正…古のどこか ― 私は1.4まで追跡しました ― で、どうやらポインタとの比較で Warning もしくはエラーがでているようなのですが…私は実際ににそんなことをした記憶はありません。Irix のコンパイラの所為の可能性もあります。
以下のような、配列もしくはハッシュリストでの Edge のソートに使用されていたものでした。
if( ((long)v1) > ((long)v2) )
long はポインタサイズを定義しているため、32/64ビットで動作するはずですが、ここは、long でその値を SIGNED にキャストするところじゃないのです!
Ken Hughes氏がこれを発見されました…記述によると、彼のシステムが calloc を使用する時、返ってきたポインタは common アドレスではなく、long を負の値にします。 (どうやら)ほとんどのOSの持つアドレス空間はいまだに long の下位部分に収まるので、これは追跡するのが非常に困難なバグです…。
とにかく:私は二つの(long)のキャストをポインタの比較から取り除きました。これが私たちのすべてのOSに対応しているかコンパイルのフィードバックが必要です。
もしそうであれば、多くのこのような改造をすべて私たちのコードから削除するか、もしくはこれらのキャストを unsigned long にします…。
これにより、バグ#2709 と、#2710 の修正が確認されています。Ken氏に感謝!
Log: バグ修正 #2826
Lamp の Shadow Buffer の初期化が偶然 Lamp の ob->obmat に変わっていました。現在まで現れることはありませんでした(依存グラフ)。
Log: バグ修正 #2799
Sequence エフェクト、"gamma cross" が2.36から動作していませんでした。ガンマテーブルが初期化されていなかった所為です…。
Log: Guillaume LeCocq氏によるバグ報告。
'xray' と 'transp' の両方を設定すると、正しく動作していませんでした。もう一つ新たにチェックと、描画順の変更が必要でした。現在、半透明Object は Xray でも上手く描画されます。
Log: Armature の Bone の名前が Solid 描画の上に表示されるように。
zuster氏 Log: - subsurf_make_derived_from_editmesh を、インクリメンタルによる進行の前に、サブディビジョンレベルがマッチしているかチェックするよう変更(もしレベルが変更されていると、新しいサブディビジョンオブジェクトを構築する必要があるため)。
guitargeek氏 Log: Edgeslide に、[Ctrl]によるスローを追加。マウスコントロールはまだ完全ではなく、これは正しい動作ができるようになるまでの、単なる一時的な修正です。
zuster氏 Log: - mesh_changed 中でのインクリメンタルな SubSurf 計算が、実際の計算の前に、その Mesh が SubSurf を使用しているか確認していませんでした(subdiv==0の時にクラッシュ)。orz
ton氏 Log: Armature の Append でクラッシュ…やっかいな物ですが、再び動作しています。
theeth氏 Log: BPython による、デフォーマへの Parent と、Vertex Parent のサポート。
これは二つの新しいメソッドを BPY Object タイプに追加するものです。 - makeParentDeform - makeParentVertex
両方ともベースは makeParent です。実際には、私は makeParent の Parent 処理部分を内部関数へ分離したため、皆で再利用できます。また、ここでなくなっていた、DEP_graph リフレッシュフラグを追加しました。
makeParentDeform は Parent タイプを正しい変形(Armature や Curve)のために適宜に設定し、もしその親と子が変形できるタイプかをチェックします。
makeParentVertex は与えられた、どの Vertex を使用するか親に伝えるための、添え字のタプルのものを強制的に追加します。同様に Object タイプのチェックも行います。
また、ドキュメントも含まれています。
テストファイルがここのパッチにあります。 http://projects.blender.org/tracker/?func=detail&atid=127&aid=2833&group_id=9
Tonへの注意:Vertex Parent を行う際、この関数が呼ばれたときにその Object がスクリーン上にある場合のみ、破線の Parent へのラインが正しく更新されます。そうでない場合は、その破線はおかしくなり、新たな再計算が親もしくは子 Object で呼ばれた時のみ直ります。
guitargeek氏 Log: 新しい Subdivide コード内の UV Color の修正その1。
三角形の UV Color は恐らく Subdivide されても上手くいくでしょう。 四角形では、頂点の3つが正しくなります。4つめは作業中です。
Log: 新しい Subdivide コード内の UV Color の修正その2。新しい Subdivide による UV と Vertex Color をチェックしてみて下さい。
condition が > 1 をチェックすべきところを、< 0 をチェックしていました。
intrr氏 Log: ラジオシティの "Collect Meshes" を TFace の "Invisible" の設定を無視するように修正。
これが何かを壊していないかを祈ります ― こちらでは動作は良好です。
erwin氏 Log: Bullet 衝突判定と物理エンジンのタイプを追加。 これは game Engine (Ketsji) の衝突判定と物理演算を改善するでしょう。
Bullet はオプションで、ODE quickstep solver を使用します。
このコミットが何も壊していないことを祈ります。
ton氏 Log: 更なる Armature 関連:
B-Bones! (ここでの B は 'block' もしくは 'bezier' もしくは 'b-spline')
- EditButtons の Armature パネルのオプションでON/OFFします。
- B-bones の大きさ変更は EditMode でのみ動作します。[Alt]+[S]で Bone がふくらんだり、縮んだりします。また、Constraint による変形に対しても動作します。
- PoseMode では、Bone ごとの設定の Buttons パネルもあります。 ここには、"Segments" ボタンがあり、Bone を、Roll を含め、前・次の Bone の間で補間することができます。
- 補間のコントロール用のボタン。("In" と "Out" はまだ満足に動作していないため、使用不可です)
注:これはまだデフォームできません! 現在の主な目的は、この描画方法が Armature のアニメーション・Pose に上手く役立つかのテストです。 まだ適切な補間方法の検討が必要です…恐らく Bezier は限定的すぎるでしょう。
erwin氏 Log: bullet 物理演算システムのための準備。
|
|