bf-blender / Windows (2005/03/28)

投稿日時 2005年03月29日 | カテゴリ: テストビルド

元記事:bf-blender / Windows (2005/03/28)

gabio氏による3/28付bf-blender Windows版のビルドの配布です。
大きな追加がありました。この長い週末が有効に使われたように思います。私は家族に逢う必要があり、常にいられるわけではありません。そして今日は私の誕生日であり、長い週末の間、毎日パーティがありました。;)
いずれにせよ、皆さん、よいイースターを!

注:
- Zuster氏は多くのクリーンアップを行いましたが、このほとんどはユーザの目には現れません。スピードの問題もあり、Mesh、SubSurf、Creasesなどのすべて…そしてTransformシステムのすべての部分についてのテストをお願いします。あ、そしてWidgetも…。
- SConsを使用した、MSVC 7によるビルドです。
----------------------------------
概要
- バグ修正。
- 古い挙動である、スライダー使用中に[Shift]+[Ctrl]を押すと値の増減が0.1にコントロールできる機能を復活。
- 中クリックによる、Cameraのカメラビューでの移動と回転が再び動作するように。
- Game engine!:
--Erwin Coumans氏: 物理エンジンの抽象化。
--Charlie C氏: Joystickの修正。
--kester氏: レイキャストを移動(shadows、mouse sensor、ray sensor)
--physics engine ボタンの ODE が再び使用可能に。

- 4番目の[Ctrl]ホットキーサイクルとして、マニピュレータコンボモードを追加、
- Lamp と World 用の insertIpoKey() メソッドが追加。(bpython)
- 新しい Bpy メソッド: Camera.insertIpoKey()
- ヘッダへの追加 ― もし Widget 使用中の場合 ― 三つのボタンが Widget のタイプを選択するために表示されます。([Shift]を押しながらで複数のタイプが選択可能)
- [Ctrl]+[Space]で Widget のON/OFFが切り替え可能に。
- draw_mesh_object 用のインタフェイスとして、DerivedMesh の使用に切り替え。(API work)


Commit
ton氏
Log:
バグ修正 #2311

ファイルネーム(40バイト)とディレクトリ名(80バイト)では Sequence のデータには短すぎていました。FILE_MAXFILE と FILE_MAXDIR の定義を適切なものにしました。
また、すべての strcpy() と strcat() を strncpy/strncat に、前述の定義とともに置き換えました。
あ、Sequence Pluginのパスの長さも修正しました。以前は80だけでした!

バグ修正 #2366

- 古い挙動である、スライダー使用中に[Shift]+[Ctrl]を押すと値の増減が0.1にコントロールできる機能を復活。
(私へのChris Burt氏の Assign の報告からかなり遅れてしまいました…すみません!)

Log:
すべきことを示す関数ポインタを引数として、std_rmouse_transform()関数は動作しています。新しいTransform()では違う引数を使用します。一つの関数ポインタでこれを行うのは簡単ではないからです。

当分の間、この関数ポインタは3DWindowには使用されません。

Log:
Transform の修正:

- 中クリックによるカメラビューでの Camera の移動が再びできるように。Martin にコードをチェックしてもらう必要があります…今は違う動作になっています。
- カメラビューでの Camera の回転が再びできるように。元々中マウスボタンは 'Trackball' 機能への切り替えでした。他の Rotate+中マウスボタン とは一貫性がありませんが…。
- カメラビューでのCursor中心の回転はもう「フィードバック」されなくなりました。

Martin:今は TransInfo->persinv[4][4] の使用だけだけど、viewmat と viewinv も使用しても大丈夫だと思うんだけど?

Log:
バグ修正 #2303

gammaCorrectionTables.c の gamma 関数が正しい使用と同じ結果が正しく返ってきません…Haloを使用した画像のレンダリングでマッハバンドが発生します。

theeth氏
Log:
カメラのパン/平行の軸制限のコードについて少し見直し。より Shrink/Fatten コードのように動作するようになり、マウスを引けばカメラも引き、押せば前に出ます。

また、T_CAMERA フラグをカメラの Grab 用に追加、TransData の変換時にセットされます。

Log:
axisProjection が長さ0のベクトルをチェックするようになり、もう改めてチェックする必要がなくなりました。これはカメラが完全に下を向いているときに問題が発生していました。

また、すべての NEWTRANSFORM の#define を削除、ずっと新しいコードを使うようになりました。

kester氏
Log:
大きなパッチ:
Erwin Coumans氏: 物理エンジンの抽象化。
Charlie C氏: Joystickの修正。
私: レイキャストを移動(shadows、mouse sensor、ray sensor)

Log:
Erwin Coumans氏からのパッチ: 物理エンジンの抽象化。

physics engine ボタンの ODE が再び使用可能に。

ton氏
Log:
Transform の小さな機能をいくつか:

- カメラビューでのCameraの回転の中心はCamera自身の中心にある必要があり、その時、補助の破線の描画はカメラのクリップ面の後ろにあるため動作しません。単にこの線を表示しないようにしました。

- 中マウスボタンによる、カメラビューの Grab の切り替え時の移動が二次曲線になり、パンではいい感じになり、大小のSceneでの移動が可能になりました。

- Grab と Size 時の[Shift]機能が復活しました。これは古い挙動を元にしており、[Shift]を押す前にすでに適用した Transform の最高位の正確な編集が可能になります。

G.qual が使用できないため、新しいフラグ(T_SHIFT_MOD)により解決しました。Transform() の内部ループは自分自身で[Shift]イベントを検知しなければなりません。
また、[Shift]イベントが発生中、マウス位置を格納するようコーディングしています。Martin が了承してくれることを祈ります!

- Martinの最後のコミットにより、マニピュレータによるGrabが動作しません。0の移動量が制限コードに渡され、その結果NaN(非数)が生じていました。例外を上手くキャッチできました。

- 'Trackball' でも数値入力できるように。

sirdude氏
Log:
#include と下記の修正のために追加。
KX_RayCast.h:92: error: `NULL' was not declared in this scope

Kent

ton氏
Log:
Transform の修正:PoseMode で複数のチェーンが処理できるように。

zuster氏
Log:
- 使用していない変数を削除。

sirdude氏
Log:
下記のWarningの小さな修正。
../include/MT_Quaternion.h:62: warning: declaration of 'angle' shadows a member of 'this'

Kent

desoto氏
Log:
Game Engine をコンパイルするため、応急処置を集め修正にしました。Kester氏の新しいコミットでは、二つのファイルがなくなっていました。このコミットではコンパイルが継続できるよう、これら二つのファイルを追加します。

Emilie M.氏はこれらのファイルの格納先をすばやく見つけてくださり、Ton氏はErwin氏からE-Mailを通じてファイルを受け取られ、私たちはすべてをテスト済です。動作はバッチリです! 助けてくださった皆さんに感謝します!

Log:
Particle設定パネルの RGB と Grad ボタンの Tooltip を調整。ユーザが BugTracker でこれらが全く適切でないと指摘しています。

sirdude氏
Log:
moto ファイルの二つのセクションへのこのコミットに手をつけようと思います。
いくつかの仮宣言と重複する定義についてのWarningを取り除きました。

Game engine ファイル内で、以下を修正しています:
いくつか使用されていない変数を削除。
DOSスタイルの改行コードを削除。
Warningを消すため、いくつかのファイルの最終行に新しい行を追加。

Kent

ton氏
Log:
マニピュレータコンボモードを追加、移動・回転・拡大縮小を組み合わせることができます。中心は移動のままですが。[Ctrl]キーサイクルの4番目で使用可能になります。

Log:
前回のコミットのエラー:描画フラグの混同により、拡大と回転の Widget の中心が描画されていませんでした。

zuster氏
Log:
- give_mesh_mvert を static に。

stiv氏
Log:
新しいファイル、SumoPHYCallbackBridge.cpp を SConsビルドのため SConscript に追加。

zuster氏
Log:
- get_mvert_weight と color_temperature を drawobject.c に統合(単に Weight マップの計算に使用されていただけでした)。
- two_sided の削除。(glLightModeli コールで置き換えました)
- Mesh のために drawobject.c を大きくリライト、簡単な描画機能に絞り、その後秩序と明快さをコードに再びもたらすための作業をしました。

たくさんの変更があるため、非常に注意深く作業を行いましたが、テスト中少し見落としているものがあるようです。
描画に何か変わったところがありましたら教えてください。

stiv氏
Log:
更なるBPyの新機能!
Lamp と World タイプへの新しい insertIpoKey()メソッドの追加。
Johnny Matthews氏による貢献です。

guitargeek氏
Log:
World と Lamp への insertIpoKey の追加に伴うドキュメントへの追加。

stiv氏
Log:
BPyメソッド、Object.getData() が 新しい Text3d タイプをサポートするよう更新。
Johnny Matthews氏による貢献です。

zuster氏
Log:
- クリーンアップに際し、いくつか使用されていない変数を削除。
- medge のない Mesh の修正。(常に点として描画していたようです)

Log:
- 通常の Mesh の Face 描画 でシェーディングモデルが正しく設定されていませんでした。

Log:
- lamp の線が間違った位置に描画されていました。

stiv氏
Log:
新しいBpyメソッド:Camera.insertIpoKey()
Johnny Matthews(guitarGeek)氏による貢献です。

guitargeek氏
Log:
Camera の insertIpoKey の追加に伴うドキュメントへの追加。

ton氏
Log:
Transform の新機能:

- Widget 用のアイコンを blenderbuttons 画像に追加。
- ヘッダへの追加 ― もし Widget 使用中の場合 ― 三つのボタンが Widget のタイプを選択するために表示されます。([Shift]を押しながらで複数のタイプが選択可能)
- ホットキー[Ctrl]+[Space]で Widget のON/OFFが切り替え可能に。
また、負のスケーリングがまだ満足に動かないことを付け加えておきます。
- Scale Widget で、中心部の使用が上手く動作していませんでした。(修正済)
- 負のスケーリングが適用すらしていませんでした!(修正済)
- しかし、何かを負にスケーリングすると、正に裏返るようになりました…????

最後の一つについては、Martin P の手が必要です! 私は Mat3ToSize を変更する必要があったことを記しておきます…。

Log:
Transform の二つの小さな修正、このコミットで Martin が 作業できるようになるでしょう…。

- Widget の負の Scale 時の描画がOKに。(今は scale widget のみ)
- 負の Scale の閾値(反転用)が縦方向の Y でしたが、今は軸の中心に垂直になりました。

zuster氏
Log:
注:プロジェクトファイルに追加する新しいファイル。

- 新しい DerivedMesh タイプ。現在は描画をカプセル化しているだけです。

Log:
恐怖のコミット!

- draw_mesh_object を DerivedMesh インタフェイスの使用に切り替え。
- Switch to using DerivedMesh interface for draw_mesh_object.
- コードの多くのクリーニングを終わらせるため、コードが Mesh/EditMesh 用の「偽の」DerivedMesh を構築するように。

作業の多くが終了しました ― DerivedMesh はまだコードの描画に非常に特化したものです。これは一般的なインタフェイスではないことを意味し、少し汚いです。多分動くでしょうが。

theeth氏
Log:
Transform 用のコンテクストパラメータ。
テクスチャスペース編集、Crease(後日)、そして将来的な使用に備えて。
マニピュレータはコンテクストがないと仮定します。

zuster氏
Log:
- DerivedMesh へのアクセサ、getNum{Verts,Faces} を実装とともに追加。
- edit.c を DerivedMesh のインタフェイスを使用するよう変更。

Log:
- DerivedMesh への drawMappedEdgeEM 関数を実装とともに追加。(単一マップの Edge の描画)
- editmesh のコードを新しいインタフェイスを使用するように変更。(二つのDLM の使用を削除)

Log:
- DerivedMesh への convertToDispListMesh 関数を実装とともに追加、これで移動が楽になります。
- particles と STL コンバータを DerivedMesh のインタフェイスを使用するよう変更。これは現時点では少し無駄がありますが、パフォーマンスの必要な場所ではありません。
DerivedMesh が Face と Face データ用のアクセサを持つよう、一度に変更できます。

Log:
- NMesh.c を DerivedMesh API を使用するよう更新。

theeth氏
Log:
transform.h で、Transform が未だにパラメータひとつでプロトタイプ宣言されていました。いくつかの呼び出しでコンテクストが失われていたため、Warningとエラーの可能性がありました。

残りはPET(ProportionalEdiTing)を接続しているものに制限するという概念が素晴らしいものであるという立証です。
これは、PETが同時に接続している要素のみに影響するというものです。

接続のテストが簡単に行えるということから、現在は Curve のみに働きます。まだ、改良が必要ですが(フォールオフがエフェクトの距離を元にしており、実際の距離を元にしていません)、これは概念の立証ですので…。

Log:
いいでしょう、これが前回の Transform のコミットについてのいくつかの問題を解決することと思います。

Extrude と Duplicate の際の旧 Transform の呼び出しを置き換え。extrude 用に、CTX_NOPET コンテクストフラグを追加しました。これは現時点では若干 Transform の改造として実装されており、代わりに TransInfo 内の PET フラグのON/OFFで行い、いたるところでチェックするのが好ましいでしょう。

TransInfo の Ext がNULLで初期化されているか確認。(違う場所にあるということはよく判ってはいますが、LetterRip氏がずっとこれがなかったと信じてしまうようなクラッシュをいくつか報告されました。すみませんが安全を優先しました)

Curve用の接続箇所のみへの PET がフォールオフの計算に実際の距離を使用するように。

zuster氏
Log:
- optimal でない subsurf が通常の Mesh の Face で描画されていました。

Log:
- drawMapped{Verts,Edges,Faces}EMSelect 呼び出しを DerivedMesh に実装とともに追加。
- drawobject 選択コードを DerivedMesh を使用するように変更(この前の drawobject.c での DispListMesh の使用方法を置き換える必要があります! やった!)
- まだインタフェイスにはクリーニングするところがたくさんあるでしょう。色んなものをカラー選択ルーチンへ渡すための、インデックスの計算部分の大部分はごてごてに改造されています。

Log:
- getMappedVertCoEM と drawMappedVertEM を DerivedMesh に実装とともに追加。(若干冗長ですが、まずは描画の実装ができることが先決です…クリーニングは後でもできます)
- 新しい API の使用に切り替え…EditVert->ssco の使用はすべてクリーニングされました。(追記:DerivedMesh の適切な実装を ccgsubsurf と交換すると同時に死ぬ準備はできています)

Log:
- DispListMesh に nors(Face の Normal 用)を追加…これは後で単にだめだめで厄介なだけの addnormalsdisplist によってThrowされるのを避けるだけのものです。
- displist_calc_vert_normals を displist_calc_normals にリネーム。

ton氏
Log:
Widget コードのクリーンアップ。

- 描画タイプの引数による、より一般的な呼び出し方法にしました。
- すべてのモードで透過が許容されるようにしました。(現在 Transform 中で使用されています)
- 「コンボ」モードを検知するための引数を追加、コンボ中に Translate / Scaleのハンドルへのオフセットを与えます。
- Widget がビューと平行に回転する時にも「パイチャート」を追加。
- rt==4 の時の挙動と互換性のある、Trackball を Rotate Widget に追加。
- 「ゴースト化(半透明化)」の冗長なコードを削除。

aphex氏
Log:
バグ修正 #2096:
- バッファオーバーランを防ぐため、FILE_MAXDIR と FILE_MAXFILE に使用される strcpy コールを strncpy に切り替え。残りのWindows以外のコードには手をつけていません。

theeth氏
Log:
接続制限コードのまぬけなエラーを修正。

もうクラッシュしません。わーい!

ton氏
Log:
Daniel氏の最愛のプロジェクトへの恥知らずのでしゃばりなコミット!

dl->mesh ポインタが dl をチェックしないで使用されていました…このコールが正確には何をするのかは知りませんが、ここでクラッシュしています。if(NULL) チェックにより修正しました。

zuster氏
Log:
- いくつかのコードを BLI_strncpy の使用に切り替え。(もちろん正しい文字列長とともに!)

Log:
- バグ修正、偶然 SubSurf でないMeshのデフォームを壊していました。

Log:
- レンダラ は現在、実際に Mesh (もしくは displistmesh)が所持する tface 構造体へのリンクを使用しています…これは tface を実行中に構築するシステムへの修正に問題を起こします。RE_findTFace 関数を追加し、レンダラ自身の内部で tface をアロケートできるようにしました。

Log:
- なんていう冗談! Blender が "Can't apply deform to shared mesh" エラーを出し、その後何事もなかったかのように作業を行いました。誰かがウソをついてます!

Log:
- mesh_get_derived_render の追加。
- 前回のコミットの RE_findTFAce の追加をキャンセルし、代わりに単純に MemArena を render 構造体に追加しました…レンダリングの最後に解放され、他のデータを格納するのにも同様に使用できます。
- レンダリングを DerivedMesh API を使用するように切り替え…これはいくつか必要のないコピーを行うため、若干非効率になりました。DerivedMesh 関数の定義により、このオブジェクトの render オブジェクトへの変換を修正できます。(TODOリスト)

Log:
- コピー時に DispListMesh.{editedge,editface} をNULLに。
- displistmesh の Mesh の Normal の計算。





Blender.jpにて更に多くのニュース記事をよむことができます
https://blender.jp

このニュース記事が掲載されているURL:
https://blender.jp/modules/news/index.php?page=article&storyid=1253