littlewing

人間とコンピューターとメディアの接点をデザインするために考えたこと

HoloLensで「おっぱい曲面方程式」を可視化する

f:id:pigshape:20170428160645p:plain

2011年に、「おっぱい曲面方程式という世紀の大発明」がされて以来、数多くの言語でこの方程式の実装が行われてきましたが、今回、満を持して複合現実デバイスHoloLensで実装をしてみました。

3次元でのおっぱい曲面方程式はこちらです。

z = 1/8 (6 exp(-((2/3 |x| - 1)^2 + (2/3 y)^2) - 1/3 (2/3 y + 1/2)^3) + 2/3 exp (-e^11 ( (|2/3 x| - 1)^2 + (2/3 y)^2)^2) + 2/3 y - (2/3 x)^4) 

中身はよくわかんないです。


UnityのHolographic Emulationで簡単に試せるコードと手順を貼り付けます。

実はUnity/C#での実装は既に、やられている方がいて、 そのコードにちょっと変更を加えただけです。

こちらのコードを参考(といいつつ、ほぼそのまま)にさせていただきました。


使い方

  1. HoloLens向けのシーンを用意します。Holotoolkitなどを利用してHoloLensCameraを配置してください。(ここは省略)
  2. 空のGameObjectを配置して、positionを(0,0,20)などと設定してください。
  3. 以下のコードをOpMeshGenerator.csとして、Projectに保存してください。 gist.github.com
  4. GameObjectにOpMeshGeneratorをAdd Componentから追加してください。
  5. Playを押せばMeshが表示されると思います。以下の図はShaderをWireFrameにしています。 f:id:pigshape:20170428160340p:plain

HoloLensで見る

UnityのHolographic Emulationを利用してHoloLensとリモート接続すれば、アプリをビルドしなくても実機上で確認できると思います。

OpMeshGeneratorのInspectorのパラメーターを変更すると、リアルタイムに(おっぱいの大きさ)方程式の曲線が変化します。

opCupCoefの値をいじってみてください。

職場でも複雑な方程式の生み出す、優美な曲面が鑑賞できるのは、HoloLensならではですね。


発展性のある、いい教材だと思います。

ただ、ライティングやヤング率の反映など、見ていると不満も出てくると思います。

コードからのメッシュの生成や、ライティング、Shaderの勉強にモチベーションをもって取り組めるので、教材としてちょうどいいかもと思う次第です。

f:id:pigshape:20170428155756p:plain


最後に

この方程式、どれかが、Chikubiの大きさを表す定数らしいのですが、特定できず、知ってる人いたら教えてください。 可変パラメータにしてみたい。


真夏の方程式

真夏の方程式