【雑記】 |
2005/12/30 |
その後計算式の見直し(一箇所ミスってた)やステップ条件を少々工夫、人工的なパターンでもほぼ問題なく表示できるレベルにはなったと思う.
アニメーションもレンダリングしてみたが、アルゴリズムの破綻無くレリーフマップが欠ける事も無くちゃんと動く事も確認、調子に乗って今度は無限平面ではなくオブジェクトにも適用してみる.
実際の所これはかなり効果が見えるものを選んでいるのだが、特に球面など曲面では輪郭が変更されない事もありノイズパターンなどでは若干バンプが強くかかっているかなぁ、程度の違いしか出ない、逆に背景の構造物など平面に近くパターンも比較的人工的で映像内でアップで映されるオブジェクトについては効果が高いと思われる. 後問題点として (これはLWのSDKがそういう作りになっているからという話だが) 現状サーフェス版のプラグインではUV座標でのテクスチャが使えない、UVの荷重情報を全部自前で計算すれば何とかなるかもしれないので、今後の課題という所.
# まぁ「マップ」と言ってもその実体は世間一般のイメージのマッピングというよりはむしろ局所的レイトレーシング/レイキャスティングなんですが(^ ^;; ----------------- TANEさんがクロスシミュレーションをやっているらしい、この人も色々やってるなぁ〜と、結果出たら見せて欲しいなぁという事を何故かこっちに書いとく(笑) 、、、しかし何故にDで?(他にも何故にPOVでとか何故にCygnusでとか、、、いや、今更何も言いませんが(ぉ ----------------- まぁ今年はここまでで一区切りにしましょう、というトコロ(^ ^;; 結局帰省は2日延び、明日帰る事にしました、それでは皆様も良いお年をm(_ _)m
|
2005/12/29 |
更に継続中、やっぱり帰省が延びた. 最終的に漸進法と二分法を組み合わせてみた、漸進法で大まかな解の位置を見積もってから二分法で正確な解に漸近化させる.
無限遠方まで含め比較的勾配の緩いノイズ系のパターン(TurbulenceやCrumpleなど)では非常に上手く行く、人工物のような勾配が急なパターンではまだ不十分なのだが、確かGPUの奴でも結構急勾配は苦手な筈で、色々改善する論文が出ていた筈で特に有限テクスチャを想定しないLWのプラグインでは結構プリミティブな問題になる可能性もアリ :-< 速度的には上の画像の場合Pen4 2.8GHzで2.5min程度だが、パターンによっては5.0min程度かかってしまう X-< 中々難しい、、、 # ちなみにこの凹凸はフェイクなので無限平面に球がめり込むと色々ユカイな事になる. ----------------- 経過) 昨日のParallax Mappingに続きRelief Mappingにも手を出してみる.
んー、微妙. 実装は初期の論文にある二分検索で行ったのだが、この方法だと有限の解像度の単純なテクスチャと異なり複合テクスチャなどでテクスチャの勾配が激しいものだと誤差が結構出ていたり、VParam使ってしまうと有限計算にならないので解への収束が結構悪かったりする(時間もかかるし、画像でも解の収束が悪くてアーティファクトが出ている個所がちらほらと) :-< 最近の手法では球トレースを繰り返す方法もあるのだけど、LWのVParam実装だとこのアルゴリズムは扱い難い. なかなか上手く行かないものだねぇ、という事で取り敢えず諦める(えー 、、、やっぱ帰省延びてるなぁ(苦笑) 追記) リベンジしてみた 無限平面という特性上二分検索ではエラーを拾いまくるので、素直にステップ切ってやってみた.
上で見る限りでは良好なのだけど、LWのテクスチャ関数はやっぱ遅いなぁ、、、問答無用の全画面HyperVoxelのようなカンジ. 上ではレンダリングしてないけど無限遠方では結構ステップ数が苦しくなるし、テクスチャをダイレクトにサンプリング(プレゼンハムのアルゴリズムなどで辿れる)できれば簡単なのだけど、LWのVParam全体ではどうにもならない、、、うーむ. ----------------- ちなみに昨日のParallax Mappingの結果
、、、作った時は良いと思ったのだけど、改めて見てみるとイマイチパッとしないかもなぁ(苦笑) まぁ、サーフェス設定なんてものは8割以上は基本設定で詰めて、プラグインなんてのは残り1割2割をどれだけ詰めるかってモノなんで、結構地味な話なんですけど ;-) 追記) もう少し分かり易い画像が出来た
こうして見るとノイズ系のパターンよりも機械的な規則的パターン(機械の表面のモールド+塗装など)に使う方が効果的かもしれない. 取り敢えず無限平面に実装してみたけど、サーフェスの特定のチャンネルに対しParallax Mappingを適用した結果をReMappingするプラグインなんかも面白いかもしれないなぁと思ったり(作る要領は昔7.5b用Surface Mixerを作ったのと同じような方法でサーフェスのチャンネル単位でキャプチャすれば出来そう、プラグインの影響はそのプラグインが対応してないと無理だけど)
|
2005/12/28 |
すみません、バグ出しました. Type-Lでシェーダだけ適用してPixelFilterがセットされてないと落ちてましたorz 修正版です. その他思いつきの機能としてエッジのサーフェス固有設定の検索順序を変更、多分よりサーフェス設定し易いようになっていると思います(細かくいじってないと分からない部分ですが、サーフェスごとに極端な色を設定して前バージョンでのラインごとの色の出方と比較すると分かり易いと思います) またこれに伴いエッジ設定が安定したのでType-Rにエッジの太さを指定するパラメータ追加、両バージョン共Shader設定のプリセットファイル生成機能とShaderUtilで生成されたプリセットを指定して一括適用できるよう変更(プリセットが指定されない場合はデフォルト設定が適用される)等々. 、、、単なる日記ネタでもバグ有で公開するとやっぱり血の気が引くような気分になりますな :-< # ちなみにデモって言っても別にシェアウェアにする予定とかでは無くデモンストレーションの意味です、このHPの趣旨自体友人に「今こんなことやってるよ」というデモンストレーション的意味合いのモノですので ;-) ----------------- ほぼ年内の仕事完了、後少量の残務を以って仕事納めの予定、終わったら用事もあるので今年は少々実家に帰ってくる予定. 後少しだぁぁぁ!! # 実家にはPCを持って帰らないので別の勉強がはかどる、今年の夏はVHDLの本とか読んでいて (あくまでイメージを掴むだけ、実際に回路設計とかするワケじゃない) 趣味の方が出来なかったので今回は複素数とエピポーラ幾何を勉強する予定、後は近所のトイザラスでレゴブロックを買えれば幸せ. ----------------- 誰も聞きたくないであろう先日の日記の顛末、やっぱり水がぶ飲みする羽目になりましたよ :-< ----------------- 寝る前に少々思いつき、というかちょっと引っかかっていた所を思いついただけなのだが、無限平面(TB_IPlane)にパララクスマッピングを実装してみる、VDMのような遮蔽は無いものの、これなら特にテクスチャをスキャンする必要も無いので現行のLWのVParamとも一致する為、結果は、、、思いの外良い :-D テクスチャ座標だけで無くトレース位置もズラしてやると影にも地表の凹凸が良く出て更にいーかんじ、(テクスチャにもよるけど、場合によっては)バンプの説得力が結構違う. もしかしたらサーフェスでも上手く行くかもしれん(影は無理かもしれないけど) 明日は少々2ndSurfでも試してみる予定. 、、、下手すりゃこれで帰省が延びるな(苦笑) # ちなみにBump機能を使っているのでバグで正常にVParamのベクトルテクスチャが動かないLW8.xには関係ない話だったり、まー私ゃ困らないので、えーもうLWの全然直らないバグもNewtekも知ったこっちゃないですよ :-P
|
2005/12/26 眠い |
何か考えるのも疲れてきたので取り敢えず置いときます、コレ. PixelFilterタイプ(Type-L)のものとImageFilterタイプ(Type-R)のもの2種でそれぞれ方式特有の制約アリ、自分が殆どToonを使う事が無いので、イマイチ使えるモノに仕上がっているのかどうか分からないのだけど、実際どんなもんかねーと言う事で皆さんの判断に任せます的に. まぁ正式にサポートするかどうかという話じゃ無く、あくまでプログラマ的なテクニカル(?)デモンストレーションという所、正式公開にしない理由はやっぱ昨日書いた通りの話、何かその辺の話がすげー気持ち悪いのよ :-< パラメータのdist/normal error factorはそれぞれ深度と法線のエッジ検出閾値で、値が小さくなる程エッジの判定が細かくなりますという所、エッジを出す場合の設定はdistが0.005〜0.05程度、normalが0.08〜0.3程度、、、ってわかんねーって(一人突っ込み. 後一応のアンチはかかりますが、絵としての緊張感を出すには両方ともやっぱり2/3〜1/2程度に縮小する方が良いと思います. というか眠いので寝る、肉食いすぎたら頭に血が行かなくて朦朧、多分蛋白質の分解に水分が足りなくて夜中目が覚めて水をがぶ飲みする羽目になる予感 :-<.
|
2005/12/25 |
何か大量にレンダリングしてたら感覚が麻痺して良いのだか悪いのだか段々分からなくなってきたorz 幾つか要望&ありがたいお言葉も頂いたのだけど、セルエッジについては未だ公開は迷ってます、というのも自分が余りToonレンダを使わない為、機能についてイマイチピンとこない為.また誤解があるといけないので書いておくと、ここに書いているエッジ検出プラグインは何も大層な事はしていなくて、ただ僕がunRealとかで上手い人が設定したレベルのエッジを安直に出せるようにする為だけのモノという所で、工夫さえすれば今公開されているプラグインなどで出せるものだと思うし、作った僕自身にはパラメータの隅々まで把握しているものでも、それが万人に分かり易いかは少々疑問もあるという所:-< 他にも今の所自分の用途では殆ど使わないという所で半透明サーフェスもサーフェスピアシングもサポートしてないし、ImageFilter版はメモリを馬鹿食いする&遅いし、PixelFilter版は1dotのライン専用だし、、、等々. 自分用途で使う分にはクセを理解出来ているから良いものの、これが不特定多数にに公開できるクォリティかというと自分的に結構疑問符が残る部分もアリにて. # 本当はグダグダ言わないでサンプルの一つも出して「こんなんやけどどーなん」みたいなカンジに出来れば良いのだけど、テストレンダに使っているのの多くが人様のObjだったりするのでそーもいかない(苦笑) # しかし、モデリングは人様のものが殆どなのでまだまだ全然なのだけど、ここ数日でセル関係の設定に随分慣れたカンジ、おかげで更にプラグインの性能をどう詰めれば良いのか分からなくなっていたりするワケでありますorz ----------------- テストレンダの過程で出てきたもの、セル調でよくあるこんなカンジ↓の(物理的に正確とは言えない)エッジ近傍のハイライト |
2005/12/22 |
相変わらず年末進行中、中間納品作業は終了するものの根本的な作業はまだ残ってる. ----------------- 最近少々気が付いたのだけどVC++で世間的に結構LIBC, LIBCMT, MSVCRTの話分かってないプログラマってもしかして結構いる? つまりは >LINK : warning LNK4098: defaultlib "LIBC" は他のライブラリの使用と競合しています; /NODEFAULTLIB:library を使用してください とかの警告の事なんだけど、、、この原因が分からないVC++プログラマは死んでください(※1) ましてや警告が出ても何となく動いているから良いやで済ましている奴(※2)、そこ動くな!!今から俺が動かなくなるまで殴りに行きますので、ミタイな話. モジュールのプロセス空間も理解できてないのはコンピュータに携わるエンジニアとは言いません、ゴミです、いやマジで(--# # できればこういうのとは一生関わりたくない、、、一時期コンピュータ職やめて別業種探そうか (プログラムを止めるワケでは無い(笑)) と思ったのはそういう話だったり、、、結局友人に呼び戻されてしまったのだけどsigh ※1) 冗談ではありません、言葉通りの意味です. ※2) というかね、コレ、売り物のSDKのサンプルで既に発生しているんですよ、SDKのライブラリもStaticライブラリなのにLIBCのバージョンしか無いし(LIBCMTならまだ許す)人ナメてますか?(--# ----------------- ワイドショーで話題の構造計算偽造問題、話題に上がった時に「コンピュータ業界も似たようなものだよ」という話、その後友人からこんなリンクが送られてきた. えー、根本的に耐震偽装と同じ話なんですが、、、こんな話が公然の場所で語られるコンピュータ業界ってどう考えても異常だろう、、、(--;; |
2005/12/21 |
だうなーだうなー、泥沼仕事というのはテンションが下がる、タバコも増えるし日記も進む(笑) 非常によろしくない. さっさとケリをつけてしまおう、という事で少々マジ入る. 軌道修正ほぼ完了、 まだテストランはしてないがそれ程問題なければ多分年末は実家に帰れそう. と思ったら便宜上仲介に入っている会社の年末の手続きの話があるんだそーな、こういう時にそういう話があると更にダウナー入る、まぁあと少し我慢. 追記)
タバコと言えば最近バージニアスリムDuoなるものが出てたのでそっちに乗り換えを検討中、ただどうにも慣れた味というのはなかなか離れられないもので、好みの味の筈なのにどうにも物足りなく感じて吸う量が増える (そして気分が悪くなる(笑)). 味としてはバージニア系の苦味の強いメンソールにアイシーン スーパークーリングメンソールのような強いメンソール感を追加したようなカンジ、以前アイシーンを吸った時はこちらの方がメンソールが強くて好みだったのだけど、ピアニッシモのような軽いカンジで物足りなくて結局乗り換えられなかった:-< 個人的にどうにもタバコ特有の甘ったるい味というのが苦手なのでバージニア位メンソール(とエグみ)が強くないと吸えないというのがある、他に吸えるタバコはガラム(インドネシアのハーブ系の甘〜いタバコ、25〜50mm、タールが多いので吸った後唇が荒れる) ビディ(インドの葉っぱで巻いたヤツ、苦味がとにかく強い、幾つか出回っている種類があるけど、個人的には赤い袋のヤツ(少し味が柔らかい)がオススメ) ドラムなんかにハーブを混ぜたもの(手巻き、そのままだとイマイチだけどホッブやセージ、カモミール(特にオススメ、但し余り多く入れるとまとまらない)を混ぜると結構イケる、但し外で吸ってるとたまに変な目で見られる)といった所. メンソールと言えば一番好きなのはメンソールの結晶(?)を買ってきてそれをそのままタバコに塗った奴が一番なのだが、以前メンソールの粉を買ってた所が最近は扱ってないorz
メンソールを
|
2005/12/20 |
しかし人間というのは色々面倒なものだなぁ、、、sigh ----------------- unRealの作者のDHMさんが日記で言及されているImageFilterでは無くPixelFilterを使ったライン、一応自分も作っていたり(というか最初それで作っていて途中からImageFilter+PixelFilterに移行、一番最初のバージョンはTB_ShadowCompのノイズ除去部分とエッジ検出が似ている気がしたのでという話だったり(笑)、、、こんな↓具合
ただ余分なトレースを一切実行しない&適正サンプリングもサポートとなると(少なくともLW7 SDKの)PixelFilterでは出来る事も限られている気がして(自分が無能だから思いつかなかったのだろうというツッコミはアリ) 結局PixelFilter+ImageFilterの形式に変更、まぁ1ピクセルのラインを描画するだけならメモリも食わないし速度的にも便利なんで2系統作ってみたり. ペンの太さを可変にしようとすると適性サンプリング無しでないと綺麗に動作する方法を思いつかなかったり(アンチ低でもx2サンプリングと速度が逆転する、メモリは食わないけど) オーバーサンプリングと違ってラインの判定条件の隣接ピクセル自体は元解像度と同じなので結構細かい部分が飛んでしまう傾向が若干あるし(部分的にオーバーサンプリングすれば可能か?) ついでに現在組んでる擬似筆圧の判定・描画エンジンが結構シビアなのでそれとの相性が結構厳しかったり、上手く両立できるバージョン作れれば良いのだけど、この辺自分の頭の悪さを痛感してヘコむorz まぁラインの表情なんてのは所詮絵の方向性で、Toon系のCGの硬さにしてもラインを黒では無く、若干ライン自体に色を付けるようにして塗り(つまりサーフェス)の部分で表情をつけるという見せ方なら割と気にならなかったりするのですが、ベタベタのセル調とかで黒のライン使っているとどうにも線のネムさが気になって仕方ないというか、イリとヌキが全く無いというか、、、非常に主観的ではあるもののどうにもその辺が気になってしまい PixelFilterのバージョンとPixelFilter+ImageFilterの2バージョン作る事に、本当は上手く統合できればベストなのだけど (PixelFilter+ImageFilterのバージョンはセグメント単位の処理とかしていない事もあり、とにかくメモリを食う、、、x2サンプリングで大体1920x1440程度までが無難な所、、、2GB(Winアプリが使える限界サイズ)でメモリが足りないと思う日が来るとは:-< なお擬似筆圧エンジンと言っても大した話では無く、ノイズパターンとエッジの判定条件の関数でエッジの幅と回転をいじっているだけの話なんですが、後はそうすると線幅に揺らぎが出るので、その線がズレないように若干の調整をかけているだけ、という. まぁ上に書いた話を全て解決できた訳でもないのだけど、そこそこ自分で許容できる線が出るようになったかなぁという所、まぁ微々たるもので自己満足の世界(苦笑) # ホントは上の先行者のObjって余りサンプルとして良くない、元々Toon用に作ってないのでバリバリ面取りされているし、曲面がもっと多い方が分かり易いのだけど、、、なお実際の開発では色々セル用のキャラクターObjを公開されている方のサンプルをDLしてテストさせて頂いております、この場を借りて感謝m(_ _)m ----------------- 長々と書いたけど、つまりは現実逃避. 、、、忙しい時って何故かプライベートの開発が異常にはかどる気がするのは自分だけかなぁ. ----------------- 暇をみては今更ながらに複素数のお勉強(これも現実逃避) 先人の発想の幅に驚嘆すると同時に己の頭の悪さ具合を実感する事しきり、物分りの悪さとイマジネーションの貧困さにとことんヘコむのだが、、、ってゆーかやっぱ頭悪すぎ>ヲレ、実際にこの世界にモノがある概念でしか物事を理解できてない、何かすごく悔しい(涙) # まぁでもクォータニオンとかFFTとかの背景にある考え方が何となくではあるけど分かった気になってきたり、もう少し頑張ろう.
|
2005/12/16 |
----------------- とまぁこんな具合でジッタリングを行う場合は最低で3x3サンプリング程度は必要な模様、まぁこの辺はRenderManも同じで2x2はプレビュー、ファイナルは3x3以上だと思うが、とはいえ規則的サンプリングではかなりの数重ねないと気になってしまうパターン規則的な成分がある程度 除去できているのは良いカンジ. 問題は、、、レンダリングが超重い(つまり内部的に3倍解像度でレンダリング)という所とその為のメモリを食いまくる所か:-< ある程度はアダプティブにできるとしても、メモリの方はどうにもならず(ブロック単位で管理すれば場合によってはある程度はいけるかもしれないが、背景が空白のものはなんとかなるものの最終段階の絵には殆ど効かない可能性も高い) プラグインのモードとしては1x1プレビュー、2x2スタンダード、3x3(+ジッタ)ファイナル、4x4(+ジッタ)HQ程度用意しておくのが良いかなぁとか思ってみたり. テクニカルアートのような無機的なラインをどうにかしたくて作っているモノなので、この部分以外に筆圧や線のムラの部分にも取り組む必要があるのだが、まぁ個人用途なのでまったり進行しても良いだろうという所. 、、、とここまで書いて気づいた事、今日仕事するの忘れてたX-< ※1) 氏はジャギの除去に7年もかけて取り組んでいる狂人であるため、半端なラインを見せるとこちらの身が危ない(ヲイ ----------------- 2チャンネルの彩のスレッドにあった選択領域の空白部分をドラッグしようとすると別の描画されているレイヤが選択されてしまう件、僕も不便なんで前の仕様の方が良かったに一票入れときます、というかデッサン試行錯誤している時にかなり不便、、、最近公式掲示板書き辛い雰囲気なので(^^;;
|
2005/12/15 |
まぁ正直正月実家に帰るだけの余裕が捻出出来なさそうな状態なので、少し真面目にやらないと駄目な状況になってしまいました、ハイ. ----------------- という事で上に書いた結果など(1x1等倍)
後は自分の「線の好み」(極めて微妙な話なのだけど)でunRealでそういう線が(自分が)出せなかった(注:出なかったでは無い、設定を適切に行えば多分unRealで可能だと思う)のでだったら作ってしまえばパラメータの癖とかも理解できるかなぁという所. 目下の悩みはできるだけ安直にしたいのだけど、細かい調整をできるように作ると やっぱりパラメータが複雑になってしまう所:-<
|
過去の雑記
2005年 11月
2005年 10月
2005年 9月
2005年 8月
2005年 7月
2005年 6月
2005年 5月
2005年 4月
2005年 3月
2005年 2月
2005年 1月
2004年度
メールアドレス収集ロボット対策の為メールアドレスはHP上に記載しておりません、
ソフト内のドキュメントには記載しておりますので、御用の方はそちらまでお願いします.
since 2003/10/04, Y.Ume/Tabo