Giter Club home page Giter Club logo

maya_greencagedeformer's Introduction

maya_greenCageDeformer

Green Coordinates によるケージデフォーマーのMayaプラグインのテスト実装。

上記の論文と Hans Godard 氏の動画 を参考にしました。

Python API 2.0 で MPxDeformerNode クラスがサポートされていなかった為、旧 API で実装しています。

SS

元のシェイプを維持するような変形が可能で、非常に粗いケージを使用しても品質が良いです。 反面、一つのポイントの変形位置を算出するのにケージの全頂点と全トライアングルが参照されるので重いです。 C++ で並列化実装すればその恩恵を受けやすいかも知れません。

ディレクトリ構成

  • scripts: デフォーマーを生成するための簡単なスクリプト。
  • plug-ins: Pythonによるプラグイン。
  • examples: ごく簡単なMayaシーンの例(バインド済み)。

使用方法

デフォームする一つ以上のターゲットシェイプ(ポイント選択で部分的なデフォームも可能)、 一つのケージメッシュを用意します。

ケージ、ターゲットの順に選択し、スクリプト scripts/createGreenCageDeformer.py を実行するとバインドされます。

制限事項

勉強として実装したので、そこそこ動作はしますが、実用レベルのものではありません。

  • ケージはターゲットシェイプの外側にある必要があります。 もしケージの外にターゲットポイントがあると酷い結果になります。

  • Python 実装(しかも 2.0 でない)であり、何の最適化もしていないため、動作が大変重いです。 ターゲットはそこそこ大丈夫ですが、ケージにはごく簡単な形状しか重すぎて使用できません。

  • ターゲットの全ポイントはケージの全頂点の影響を受けます。 そのため重いですし、良い結果を得にくい部分かも知れません。

  • バインド情報をアトリビュート保存していない為、シーンを開く時間がかかります(シーン開く際に再バインドされる)。

  • デフォーマーのウェイトや envelope アトリビュートを無視しています。

maya_greencagedeformer's People

Contributors

ryusas avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.