プロシージャルモデリングを学びたい。まずHoudiniを少し触った。公式の学習ルートは『Houdini Fundations』かららしいが、進捗が遅い…
そこでふと思い出したのが Sverchok。ドキュメントを見たらこっちの方が面白そうだった。
注意:本文はプロシージャルモデリングの基礎概念をある程度知っている前提
英語資料:Sverchok: Introduction to geometry
中国語資料:菜鸟学bpy(一)新建网格物体
Sverchokのドキュメントは、まず必要な概念を導入して、そのあとすぐ例題をやらせる。段階的なケースで理解を深める構成。
(最初から基礎概念を全部理解させようとするチュートリアルは退屈すぎるので、この方針は良いと思う。)
前置きはここまで。本文。
第2章の「円を作る」ケースで、たぶんコード変更の影響でいくつかのノードの挙動が微妙に変わっていた。他は大丈夫だったが、获取列表长度,自动生成多边形 のところだけ問題が出た。
ドキュメント通りに list range を viewer draw に繋ぐとエラーになる。
下の図の通り、4頂点の作成までは問題なし:

でもリストを生成して面に繋ぐとエラー:

ビューアで出力を見ると、手書きリストは [[[0,1,2,3]]] なのに、生成リストは [[0,1,2,3]] になっていて、角括弧が1段足りない:

viewer text で見るとさらに分かりやすく、生成リストが4つに分割されている:

解決策は list join ノードを使って wrap にチェックを入れること。これでリストが1つにまとまり、viewer draw に繋いでも問題がなくなる。
2019/11/09 更新
別案として、list joinのjoinlevel listsを3にしても、4つのデータを1つにまとめられる。
ドキュメントの例題も残り1章。終わったら学んだことを整理してメモを書くかもしれない。
(不思議なのは、Sverchokはあまり有名じゃないこと。Animation Nodesはそこそこ知られているのに。)
2019/11/09 更新
Blenderがクラッシュするバグを見つけた。原因は Viewer text mk3 ノード。
このノードに入力があり、かつ自動更新にチェックが入っている状態で、Sverchokが生成したモデルを削除しようとするとBlenderが落ちる。
下の図のキューブを削除するとBlenderがクラッシュする:

Blender v2.82.1 daily build(11/08)
Sverchok 0.6.0.0
GitHubにissue提出済み: Viewer text mk3 node bug
2019/11/13 更新
4k録画をYouTubeに上げた: Sverchok docs case
