OpenSubdivで独立頂点があるとエラーが出る不具合

現在、フキダシの指示に従って3Dデザインしていくだけで3DCGが上達する「お手本モデラー」を開発中です。
さらにプロのデザイナーが3Dデザインする過程を記録してフキダシのお手本にして、プロの技術が学べる予定です。


https://otehon.cco24.com

そこで困ったプログラミングの解決策をシェアします。
ディズニー傘下の「Pixar」がオープンソースで公開している3Dモデルの曲面化ライブラリ「OpenSubdiv」でエラーに悩まされました。
頂点や面の3DデータをOpenSubdivに渡したらそれを、指定したmaxlevelまで曲面にしてくれます。
最初はそれほど苦労しなかったのですが、公式サイトを見て解決したことがあります。
https://graphics.pixar.com/opensubdiv/docs/subdivision_surfaces.html#non-manifold-disconnected-vertex
普通の3Dプログラムでは面を構成する頂点インデックスが頂点を指し、面の頂点インデックスで使われない頂点があってもOKです。
ところがOpenSubdivはなぜか独立した頂点があるとエラーが出ます。
特に三角形のあるモデルに、ラインなどがあると独立頂点となってエラーがでます。それなのにReleaseビルドだとエラーが出ないこともあり、Debugビルドでは必ずエラーになるので、最初エラーに気づきませんでした。
そこで独立頂点を無くして、すべての頂点がいずれかの三角形面や四角形面に属するようにしたら無事解決しました。

ホームページを公開したおかげで

2002年、8年間在籍した大阪大学を中退し、ほぼニート状態になった。
当時から「ニート」と言う呼び名だったかははっきり覚えていないが、病気とは言え、学校も仕事も行っていないのは、言われなくても恥ずかしいことだった。
「ほぼ」と言ったのは実家が会社を経営していて、数合わせで役員をしているだけで、手伝いぐらいしかできず、親の会社の後も継げない病状だった。
ただ1つ特技があると言えば、子供の頃からパソコンでプログラミングなどをしてきたことだけだ。
本題だが、最初ホームページを作った時は特に目的もなく、ただ自分のホームページを持つことに憧れがあっただけで、これで仕事になるとは思いもしなかった。
大学在学中に初めてホームページを作ったのだが、まずさっき特技と言った創作物を公開することにした。初めて公開したのはWindowsゲーム作品「FREIGHT」で、元々は中学生の時に買ったパソコン「X68000」で開発したものをWindowsに移植したものだ。タイトルの意味通り貨物列車のサイコロゲームだ。
FREIGHTは2Dゲームだったが、次第に3Dゲームを作りたい欲求が大きくなっていた。
そのために3Dアニメーションツール「Cyberdelia」と、ポリゴンモデラー(3Dオブジェクトを作成編集するツール)「Centigrade」を開発し、ホームページで公開した。僕自身が自作の3Dゲームを開発するのにこれらも使ったので、ホームページを見てくれる人にもダウンロードして3Dゲームを作ってもらうためだ。
そんな時、試しに出版社の人に2つのソフトウェアの開発過程を入門書に出来ないか、初めて本の企画を提案してみた。当時は企画書と呼べるものでもなかったのだが、「工学社」と言うIT系の出版社からOKの返事をもらえたのだ。
だが今でこそ18冊も本を出版しているが、1冊目は本当に書くのに苦労した。いきなり何を書いていいのか全くわからなかったのだ。そこで共著しようとしたりもしたのだが、それもうまくいかず、結局下手でも何とか単著で出版は出来たのだった。こんなに下手でもいいのか、と調子に乗って下手なまま、ホームページで公開したコンテンツの作り方を2冊目、3冊目と書いていった。しかし「説明が足らん」などクレームもあり、解説文を多く書くようにして、今ではマシになったと思う。
こうして、2004年に技術書作家デビューしたのだが、ニート呼ばわりされないように、できるだけ毎年本を出版している。ほとんど本を書くためにホームページを公開しているようなものだ。
技術書を商業出版したいなら、ホームページでコンテンツを公開して、それを企画書に書いて提案すればいいだろう。