Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What plan about MToon shader implement? #18

Open
noppefoxwolf opened this issue Mar 15, 2020 · 3 comments
Open

What plan about MToon shader implement? #18

noppefoxwolf opened this issue Mar 15, 2020 · 3 comments

Comments

@noppefoxwolf
Copy link
Contributor

VRM標準のMToonシェーダを利用しているモデルの描画がUniVRMと異なります。
そのためMToonをVRMKitでも利用できるようにしたいのですが、実装の計画はありますか?
https://github.com/vrm-c/vrm-specification/blob/master/specification/0.0/README.ja.md#mtoon

@tattn
Copy link
Owner

tattn commented Mar 16, 2020

VRMKitのロードマップとしてはMToonのサポートを考えているのですが、
まだ実装の進捗はなく、対応予定も未定な状況です 🙏

https://github.com/tattn/VRMKit#todo

ToDo
VRM shaders support

@noppefoxwolf
Copy link
Contributor Author

noppefoxwolf commented Mar 16, 2020

ありがとうございます!少しリサーチしたので以下共有します。

SceneKitでMToonを再現する場合、ShaderModifierかSCNProgramを使って描画することになりそうです。
ShaderModiferはデフォルトのシェーダの中間に処理を挟み込むような実装になりますが、差し込む前のコード(ダンプしたものか不明ですが)は
https://gist.github.com/andrewzimmer906/b0e05920c7b947604bd9a5a50cfc2155
が参考になります。
MToonの移植に当たってShaderModifierかSCNProgramのどちらを使うかまだ判断は出来ていないです。(この辺り知見があれば知りたいです)

また現状公式の
https://github.com/Santarh/MToon
以外に、Babylon.jsで書かれた
https://github.com/virtual-cast/babylon-mtoon-material
が存在しており、後者はWebGL向けに書かれたものなのでMetal移植の際は後者も参考になりそうです。
移植ではなく再現という観点では
https://qiita.com/ruyo/items/ec082d81dea3033e1500
が参考になりそうです。

@tattn
Copy link
Owner

tattn commented Mar 17, 2020

参考資料ありがとうございます!とても助かります!!
MToonの詳細な仕様をまだ読み込めておらず、SceneKitのどの機能が最適なのかが分かっていません。。
なるべく標準に寄せたほうが楽でメンテナンスしやすそうなので、ShaderModifierで試してみて、足りない機能が出てきた際にSCNProgramに移行するのが良さそうと考えていますー!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants