2016-01-01から1年間の記事一覧
はじめに Oculus の Home アプリから以下のようにアバタを編集できます。 このアバタは Oculus Avatar SDK を利用することで Unity 内でも利用することが出来ます。ただ、現状少し手順が多く大変です。というのも、このアバタ情報は Oculus のサーバ側に保存…
はじめに キャラクタの顔だけ SSAO が効かないようにしたいがどうしたら良いか、という相談を受けたので、いくつか方法を考えてみました。 顔のモデル描画時にステンシルを設定しておき、Image Effect のタイミングで特定の値がセットされている場所だけ無視…
はじめに 本エントリは Unity Advent Calendar 2016 4 日目の記事になります。先日は srndpty さんによる「uGUIのScrollViewを使いこなす7つのTips - Programming Serendipity」でした。スクロール系は私も昨年の Advent Calendar で書いた uREPL を作成した…
はじめに テッセレーションを行うと、ポリゴンの分割数を増やしてより滑らかな曲面を作成できたり、分割された頂点をテクスチャを参照して直接盛り上げたり(ディスプレースメントマッピング)出来ます。ただ、分割数を増やすにはそれなりのコストがかかるの…
はじめに Screen Space Reflection の Image Effect を見ていたら次のように FoldOut が格好良かったので調べてみました。 方法 ScreenSpaceReflectionEditor.cs を読むとパーティクル(Shuriken)で使っているスタイルを流用して作成しているようです。該当…
はじめに uRaymarching を作る上でシンタックスハイライト付きのコードエディタが欲しくて色々試してみましたので、その内容を共有します。 デモ こんな感じのシンタックスハイライト付きテキストエリアが作れます。 カラーコードを意識したりフォントを変更…
はじめに レイマーチングとはポリゴンではなく、距離関数(distance function)と呼ばれる数式を元にオブジェクトをレンダリングする方法です。ポリゴンを使わないのでモーフィングや複雑な図形もシンプルな数式で記述することが可能で、GPU のコストが高い…
はじめに 過去幾つかの記事でディファードシェーディングのレンダリングパスで G-Buffer を色々いじることをやってきました。その際、G-Buffer に与える出力は適当な値を与えてきましたが、実際はもう少し真面目にやらなければなりません。というのも本来は…
はじめに 以前、Unity の Command Buffer を使ってレイマーチを行う方法を紹介しました。 Unity で Command Buffer を使って Raymarching をしてみた - 凹みTips しかしながらこの手法では異なる多数の立体を同時に描画したり、それらのオブジェクトを自由に…
はじめに ブーリアン演算とは様々な形状を集合演算(足し合わせる(和)、一方から他方を引く(差)、一致する部分を抜き出す(積)など)によって作成する手法です。 ブーリアン演算 - Wikipedia Constructive Solid Geometry - Wikipedia いくつかの実装方…
はじめに 以前公開した uREPL という Unity で実行時に C# のコードや予め登録したコマンドを実行するプラグインのアップデートをして、複数行編集に対応しました。 以前の記事はこちらです。 tips.hecomi.com 本エントリではちょっとした紹介と、備忘録とし…
はじめに Deferred Rendering では G-Buffer にデプスや法線、拡散色などの情報を予め描きこんでおき、その情報を使ってシェーディングやライティングの処理が行われます。 遅延シェーディング - Wikipedia これを利用してあげると距離関数でレイトレースし…
はじめに 以下のスレッドに Unity の中の Aras 氏による DX11 機能を利用したサンプルが上がっています。 Compute Shaders - Unity Forum この中には 8 つのシーンにそれぞれ異なるサンプルが格納されていて、どれもあまり(日本語の)情報がなく且つ面白い…
はじめに コンピュートシェーダを使った GPU パーティクルを試してみます。GPU パーティクルを出す方法はいくつかあるのですが、任意のメッシュを利用したかったため、コンピュートシェーダを使った擬似インスタンシングによる方法を利用してみました。 参考…
はじめに Screen Space Reflection はカメラから見た画のみを利用してレイトレした結果を使い、擬似的な反射画をそこそこのコストで作り出すテクニックです。Reflection Probe と異なり、動的なものにも効きますし、それなりに正しい反射した画が得られます…
はじめに 前回に引き続き Raymarching 関連記事です。 G-Buffer に Raymarching して描画したオブジェクトではポリゴンのオブジェクトから影を受けることは出来るのですが、Raymarching したオブジェクトから自身とポリゴンのオブジェクトへの影を作ることが…
はじめに 前回の記事では G-Buffer を利用して Raymarching で数式から図形を描画する方法を紹介しました。 Unity で Command Buffer を使って Raymarching をしてみた - 凹みTips G-Buffer を利用して Raymarching して描画した図形はコライダが無いため、…
はじめに id:i-saint さんのこちらの記事(rendering fractals in Unity5 - primitive: blog)に触発されて勉強中です。Raymarching はポリゴンベースでなく、距離関数(distance function)と呼ばれる数式を元にオブジェクトをレンダリングする方法で、工夫…
はじめに VR に特化したガジェットが色々出てきていますが、そういった特殊なガジェットではなく、もっと身近なデバイスと自分の手自身がインタラクションする様子を拡張して VR 内で表示できないか考えてみました。 例えばボタンを大量に有するインターフェ…
はじめに Unity 5 より利用できるようになった CommandBuffer を利用するとレンダリングパイプラインを拡張して色々な表現が可能となります。公式ブログにこの詳細が書いてあり、サンプルもブログ中またはドキュメント上で配布されています。 (English) Exte…
はじめに Oculus 社が Unity 向けのリップシンクライブラリ、OVRLipSync をリリースしました。 https://developer.oculus.com/downloads/audio/1.0.0-beta/Oculus_OVRLipSync_for_Unity_5/ Oculus Launch Avatar Lip Sync Plugin for Unity - Road to VR Ocu…
はじめに 以下のエントリではスクリーンキャプチャを System.Drawing.Graphics.CopyFromScreen() を別スレッドで回して行っていました。 qiita.com ここで触れられているようにネイティブでやった方が速いということもあり、本エントリでは Windows 8 から使…
はじめに 本エントリは以下のエントリの続編です。 tips.hecomi.com Low-Level Native Plugin Interface を利用すると OpenGL や DirectX から直接テクスチャの生成や更新を行うことが出来ます。前回のエントリでは Mac OS X 環境下での OpenGL を例に紹介し…
はじめに ネイティブプラグインの作成時にネイティブ側から Unity の Debug.Log() を呼んでデバッグしたくなるときが多々あります。以下のエントリ(英語)で方法が紹介されていたのでやってみました。 Artificial stupidity: C++ Plugin Debug Log ざっくり…
はじめに Unity でネイティブ側(C/C++ 等)で作成したテクスチャを利用する方法はいくつかあって、テラシュールブログさんにまとめられています。 Unityでテクスチャを読む7つの方法 - テラシュールブログ Unityでテクスチャを読む7つの方法 4・5・6につい…