※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

開発とかパッチとかって何なの?

http://pc11.2ch.net/test/read.cgi/cg/1267155836/25-27
25 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2010/02/28(日) 10:23:37 ID:iKQB5vE2
恥ずかしがり屋ではなく、冷淡で機械的とお考え下さい。亦、BlenderスレッドにAAを貼り付けているのは私ではありません。

大体こんな感じです。
http://blender2ch.hp.infoseek.co.jp/cgi-bin/bbs39v23/bbsdata/300-0.png
ソフトウェアの作り方から順を追って説明致しますと、
まずは人間が読み易い文章(プログラミング言語。Blenderの場合はC言語及びC++言語)で書かれた「ソース コード」(作業手順書)を作成し、
それを「コンパイラー」という種別のソフトウェアで変換(コンパイル又はビルド)することにより、
最終的にコンピューター上で動作するファイル(「バイナリ」。「実行ファイル」や「exeファイル」とも呼ばれる)が出来上がります。
blender.exeがこの「バイナリ」に相当します。
Pythonスクリプトの場合は、スクリプト自体は「ソース」(ソース コード)であり、
使用時にその都度Pythonコンパイラーがバイナリ コードを生成しています(例外あり)。

次にBlender開発プロジェクトの全体像についてですが、まずは中核プロジェクト(ブランチ)として「trunk」があります。
現在のtrunkは2.5xの開発ブランチとなっており、2.48や2.49をリリースしていた旧trunkは開発を完了し「2.4」に名前を変更されました。
このtrunkは延々と開発が続いている訳ですが、一定の進捗が得られた時点で
都度Blender開発グループがソースをコピーしてビルドし、公式サイトで公開しています。
これらが「公式ビルド」と呼ばれるもので、2.5 alpha0や2.5 alpha1、或いは今後リリースされるであろう2.5 beta2や2.6等がこれに相当します。

26 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2010/02/28(日) 10:25:03 ID:iKQB5vE2
一方、この様に公式ビルドとしての提供を前提としている性質上、
trunk上では機能実験やあまりに荒削り又は大掛かりな新機能の開発は行えません。
そこで、Blender開発グループはそういった目的の為にtrunkのソースをコピーした開発ブランチを幾つも設置しています。
「bmesh」(新メッシュ編集システム開発用), 「freestyle」(輪郭線描画システム開発用),
「collada」(.dae(collada形式)の入出力システム開発用)、「render25」(レンダリングシステムの内部改造用)等色々あります。
各開発ブランチは、開発が進行し続けるtrunkとの齟齬が生じない様trunkから定期的にソースをコピーし同期(マージ)を取っています。
各ブランチは、基本的には開発が完了した時点で結果をtrunkに反映させ(コミット)て役目を終えるのですが、
開発ブランチによっては、例えばcolladaブランチの様に、開発しながら頻繁にtrunkにコミットするものもあります。

これらの様々な開発ブランチやtrunkの開発状況は外部の人間でもリアルタイムで見られ、亦ソースも入手出来る様になっており、
そうしますとコミットや公式ビルドのリリースを待たずに新機能を試したい人間も出てきます。
そうした物好きや或いは公開して意見を募る為に開発者自身がビルドするものが「非公式ビルド」であり、
そういったビルドを専門に扱っているサイトがGraphicAll.orgです。

27 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2010/02/28(日) 10:25:49 ID:iKQB5vE2
http://blender2ch.hp.infoseek.co.jp/cgi-bin/bbs39v23/bbsdata/300-1.png
最後に「パッチ」(パッチファイル)と呼ばれるものについてですが、
これは機能的にはソースを書き換える為のもので、専用の書式で記述されております。
これを公式(trunkや各ブランチ)からコピーしたソースに適用し適用(書き換え)後のソースをビルドする事により、
自分や他者の作った新機能の追加やバグフィックスを施した「改造版Blender」が出来上がります。
私がほぼ毎週末にBlenderスレッドに貼り付けているものはこの改造版と、そのビルドに使用したパッチへのリンクです。
GraphicAll.orgではこういった私家版も扱っています。

パッチは働き掛け等により公式に採用(コミット)される事もあります。
例えば今回私のビルドに使用致しましたfluid particles enginパッチの開発者はBlender開発メンバーでもあり、
同パッチは間もなくtrunkにコミットされる予定です。





CUDAについて


579 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/03/29(日) 13:52:48 ID:BoWqW1Oi
過去スレに張られてた良翻訳をコピペてみる

[Bf-committers] CUDA backend implementation for GSoC?
http://lists.blender.org/pipermail/bf-committers/2008-December/022348.html
          ____
       / \  /\ キリッ
.     / (ー)  (ー)\  Blender の CUDA 対応の課題について解説するお。
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |
     \     `ー'´   /

CUDA/OpenCL を Blender と一緒に動かすのにはいろいろと課題があるお。メモリ帯域幅が最大の課題だお。
説明するとこういうことだお。Core i7 だとシステムメモリから毎秒 20 GB のデータを取り出せるお。
PCIe バスの最大値は毎秒 4 GB だお。ハイエンドの GF8 カードの場合、内部的には毎秒 100 GB だお。
他にも山ほど課題があるお。GF8 内部にはメモリが3種類あるお。グローバル、スタティック、ローカル
だお(名前は忘れていいお)。でもってプロセッサのブロックとゆーものがあって各ブロックは1度に
1つのプログラムを実行できるお。やる夫の記憶が正しければ1ブロック=8ストリームプロセッサだから、
128ストリームプロセッサのカードだったら16個の SIMD プロセッサがあることになるお。ストリーム
プロセッサにはベクトル演算とスカラ演算のユニットがあるから、うまいこといけば一度に4×8回ぐらいの
浮動小数点乗算を実行できるお。うまいこといけばの話だお。

話をメモリに戻すと、メモリの特定の場所にアクセスできるのは1度に1つのブロックだけだお(メモリバンク
を使ってるんだと思うお)。各ブロックにはスタティックメモリがあるんだけど容量は 16 KB しかないお。

てなわけで、まあ CUDA/OpenCL で Blender 的なことをやるのは可能だけど山ほど制限事項があって大変だお。
少量のデータをカードに取り込めばよくて、そのデータに施す大量の処理があるような状況だとすごくうまく
いくけど、それ以外の場合はわせdrftgyふじこlpだお。OpenCL に CPU 用のな実装が出るかどうかは
要注目だお。もしそういう実装が出たら、Blender の一部を OpenCL で書いて、利用可能なときだけ GPU 版の
OpenGL を使うとゆーよーなことが始められるかもだお。


597 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/03/30(月) 23:24:09 ID:w/D4Df4U
579
一言で言えばハードウェアの対応待ちかw


599 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/03/31(火) 01:09:14 ID:yOgWjbOx
 597
 いや、ちょっと誤解があるかと
 以下スルー歓迎な長文スマソ

まず前置きとしてBlender開発陣がGPGPU系の対応予定をなにも明言していない事実があります
その上で、OpenCLのCPUとの共存性に期待できるんじゃまいかとティモシータソが言ってくれたのが>>579に引用したポストです。翻訳者には多謝

CUDA対応デバイスはOpenCL使用上でドライブできます
現時点で多い誤解として、OpenCLがCUDAとかを包むラッパだと
認識されてたりするんですが実はもっと低いレイヤで定義しようとしてる代物で、実際に

      / ─    ─ \    勘違いしないで頂きたい
    /   (●)  (●)  \  最終的にはOpenGLをOpenCLの
    |      (__人__)     | オプションとしてまとめ得る(キリッ

なんて提案まであります。

なんかばらばらにやっちゃってるストリーミングプロセッサ系とか
ヘテロジニアスなCPUとかの叩き方の仕様まとめようぜーってスコープを
曲げようとしないあたりが格好いいんですが、
一方大多数の予想を裏切る事なく、順調にクロノスの仕事は延期し続けています。



Blenderは誰のためのものか?


302 :名無しさん@お腹いっぱい。:2009/04/19(日) 01:29:20 ID:2o84Pz2S
Interview with Ton Roosendaal (Blender) by Sabine Niederer
http://www.blendernation.com/2009/04/17/interview-with-ton-roosendaal/

このインタビューの中で、Ton から「Blender は誰のためのものか」という面白い
話が出ていたので紹介。聞き取り間違いがあったらスマソ。

(2:08) That's why Blender is considered also complicated and sometimes
difficult to learn, but it is not like bad designed interface. It has
been designed for people who know what they want to do. It's like a
grand piano! You can say, about, "I can't use this piano. It doesn't
make me automatically off concerts!" Well, we have to be pianists,
right? Otherwise it does not work consistently. And a lot of people
think especially for open source or for free software that it is meant
for everybody. And Blender is not meant for everybody. Blender is
only meant for people with passion for 3D and really want to spend a
lot of time on it and then also get a lot out of it.

(意訳:そういうわけで Blender は複雑で時おり習得が難しいとも考えられている。
でもそれはインタフェースの設計が悪いからじゃない。Blender のインタフェースは
自分が何をしたいか分かっている人々のために設計されてきているんだ。
言うなればグランドピアノみたいなものさ。人はこんな風に言うかもしれない。
「このピアノ使えねー。俺が自動的にコンサートできるようにしてくれねーし!」
ってね。でもね、私たちはピアニストでなければならないんだ、そうでしょう?
さもないとピアノはうまく働かない。大勢の人が、特にオープンソース、
あるいはフリーソフトウェアに対して、それらは万人向けを意図して作られている
と考えている。でも Blender は万人向けを意図して作られてはいない。
Blender は、3D に情熱を持っていて、膨大な時間をそれに費やしたいと本当に
思っていて、なおかつそこから多くのものを得たいと思っている人々のための
ソフトウェアであることを意図しているんだ。)