見出し画像

【Metal】退職メッセージをMetalで実装した話

こんにちは、iOSエンジニアのTokyoYoshidaです。

先日、会社を退職するにあたってのメッセージを会社のメンバーに伝える機会があったのですが、せっかくなのでSceneKit + Metalを使ってiOSアプリにしてみました。

20200730ブログ用_お世話になりました_ショートバージョン20

今回は、その実装方法を書いてみたいと思います。

SceneKitにMetalのシェーダを利用する方法

こちらの記事に詳しく説明が載っていました。
このように、SCNProgramを作り、プロパティとしてシェーダー関数名を指定したら、それをSCNNodeに指定します。とても簡単でした。

let program = SCNProgram()
program.vertexFunctionName = "vertexShader"
program.fragmentFunctionName = "fragmentShader"
node.geometry?.firstMaterial?.program = program

SceneKitに文字列を表示する方法

こちらの記事を参考にしました。
SCNTextというクラスが用意されているので、これを使います。

let str = "お世話になりました!"
let depth:CGFloat = 0.5
let text = SCNText(string: str, extrusionDepth: depth)
text.font = UIFont(name: "HiraKakuProN-W6", size: 0.5);
let textNode = SCNNode(geometry: text)
scnView.scene?.rootNode.addChildNode(textNode)

シェーダーの実装

シェーダーはGLSL SandboxにあるものをMSLに移植しました。

背景のシェーダの元ネタ

文字列のシェーダの元ネタ

まとめ

ということで、『会社の中で技術力を磨いてこういうこともできるようになったよ!』という私なりのメッセージを動画にしてみました。仕上がりが文字が前に出てくるだけの地味なメッセージだったので、職場の仲間達に伝わったかどうかはわかりませんが、以前からよくこういうことをしていたので『退職のときもやるのね』ぐらいの印象は残ったんじゃないかなと思います。

ソースコードはこちらになります。



この記事が気に入ったらサポートをしてみませんか?