凹みTips

C++、JavaScript、Unity、ガジェット等の Tips について雑多に書いています。

C++ から Windows Graphics Capture API を利用する方法について調べてみた

はじめに i_saint さんの記事で Windows 10 April 2018 Update (1803) より Windows Graphics Capture という API が追加されたのを最近知りました。 qiita.com docs.microsoft.com ざっくり言えば HWND や HMONITOR から直接 ID3D11Texture2D を引っ張って…

Unity でリアルタイムにリップシンクを行うプラグインを更に作り直してみた

はじめに 前回、リップシンクするプラグインを作り直してみた記事を書きました。 tips.hecomi.com 色々とご反響を頂いたのですが、しかしながら母音推定の性能がいまいちでした。第 1 、第 2 フォルマントという周波数スペクトルの 1 つ目、2 つ目のピークを…

Unity でリアルタイムにリップシンクを行うプラグインを作り直してみた

はじめに Unity でリップシンクを行う手段としては、事前にデータを作るものからリアルタイムに解析するものまで色々あります。本ブログでも以前、自分で作ったり Oculus 製のものを解説したりしました。 tips.hecomi.com tips.hecomi.com 前者の記事で自分…

Unity 向けに HLSL Tools for Visual Studio を便利にするアセットを作ってみた

はじめに 本記事は Unity Advent Calendar 2020 の 20 日目の記事です。 qiita.com Windows 上の Unity でシェーダを書く(読む)際は Visual Studio を使うことが多いかもしれません(VSCode の人も多いと思いますが...)。しかしながらそのままでは補完も…

HDRP の Lit シェーダを読んでみた

はじめに 前回、前々回と Unlit シェーダを読んでみましたので今回は Lit シェーダを読んでみます。 tips.hecomi.com tips.hecomi.com モチベーションとしては、HDRP の理解に加え、HDRP でのシェーダは基本的にはシェーダグラフで構築するのですが、uRaymar…

HDRP の Unlit シェーダを読んでみた(後半)

はじめに 前回の前半の記事では HDRP の Unlit シェーダのパスの中で、SceneSelectionPass、DepthForwardOnly、MotionVectors を読んでみました。 tips.hecomi.com 今回は後半ということで残りの ForwardOnly、Meta、ShadowCaster、DistortionVectors を見て…

HDRP の Unlit シェーダを読んでみた(前半)

はじめに HDRP は 7.2.0 からプレビューではないパッケージになりました(DXR は現状プレビュー機能のようです)。Unity のバージョン的には 2019.3 から含まれるようになります。 blogs.unity3d.com blogs.unity3d.com blogs.unity3d.com HDRP の機能は膨大…

uRaymarching の VR における影の問題の修正をした

はじめに 前回の記事で uRaymarching を使ったワールドを VRChat に公開することを初めてやってみました。 tips.hecomi.com ただ、この過程で以下のように右目のみ影が変に見えてしまうバグに遭遇しました: どうやら右目の影用のデプスの位置が実際の描画の…

uRaymarching を使った VRChat のワールドを作ってみた

はじめに こりんさん(@korinVR)が VRChat で行われる以下のようなイベントを企画してくれました。 8/2(日)13:00~15:00にVRChatで囲む会をやります。今回のスペシャルゲストは「凹みTips」 https://t.co/mZ2BmIxFST の凹さん @hecomi です! XRやUnityの…

SDF テクスチャを uRaymarching で描画してみる

はじめに uRaymarching 関連の話題になります、Twitter で SDFr と uRaymarching を試されている方から質問をもらいまして、調査をはじめました。前回の記事はこちら: tips.hecomi.com これまでは物体表面までの距離を距離関数で記述してレイマーチングする…

Unity でボリュームレンダリングをしてみる - vol.5 遮蔽とループの最適化

はじめに 前回はノイズ関数で作る雲についての話をしました。 tips.hecomi.com おわりに書いたように、今回はポリゴンオブジェクトによる遮蔽およびループの最適化についての話をしようと思います。 サンプル github.com 8. AABB Intersection 2 および 9. O…

Unity でボリュームレンダリングをしてみる - vol.4 プロシージャル

はじめに 本記事はボリュームレンダリングシリーズで以下の記事の続きです(2年ぶり)。 tips.hecomi.com 前回までは魚の 3D テクスチャを使いましたが、今回はノイズ関数を使って雲のようなものを作ってみたいと思います。前回同様キューブポリゴン内に生成…

5 年前のおうちハックと今を比較してみた

はじめに おうちハック関連の久しぶりの記事です。以前は自前で声や時計、スマホで操作できる家のシステムを作っていたのですが、スマートスピーカの登場以後そのシステムが置き換わっていき、今は完全に Google Home プラットフォーム上に乗っかる形で生活…

Unity で Shader Graph の Custom Function Node を試してみた

はじめに 以下の公式エントリで Unityの Shader Graph における Custom Function Node の存在を知ったので試してみた記事です。 blogs.unity3d.com 環境 Unity 2019.3.1f1 Shader Graph 7.1.8 デモ github.com 従来の問題点 Shader Graph はグラフィカルにシ…

Unity で距離関数の記述だけでレイマーチングができる uRaymarching の UniversalRP 対応してみた

はじめに uRaymarching は Unity 上で簡単にレイマーチングするオブジェクトを生成することの出来るアセットです。詳細については以前の記事をご参照ください。 tips.hecomi.com tips.hecomi.com これまではレガシーなパイプライン(Forward / Deferred)の…

Unity の ShaderGraph の仕組みについて調べてみた

はじめに 本記事は Unity Advent Calendar 5 日目の記事です。 以前の記事で UniversalRP(URP) の調査を行いました。 tips.hecomi.com 今回は、その続きとして URP / HDRP の目玉機能の一つである ShaderGraph について調べてみます。私もノードグラフではな…

Unity で Windows のウィンドウをキャプチャできる uWindowCapture v0.6.0 をリリースしました

はじめに Unity 内で Windows でウィンドウを個別にキャプチャするアセットの uWindowCapture を v.0.6.0 へ更新しましたので内容の紹介です(≒ 今月はネタがないのでバグ修正報告です)。 uWindowCapture は Unity のメインスレッドを邪魔することなく複数…

Unity の Universal Render Pipeline のレンダリング周りについて勉強してみた

はじめに 以前、Lightweight Render Pipeline(LWRP)と呼ばれていたパイプラインが 2019.3(SRP 7.0.0)から、Universal Render Pipeline(UniversalRP / URP)と改名されました。 blogs.unity3d.com 私は LWRP 含む SRP をあまり調べていなかったのですが…

uDesktopDuplication でキャプチャしたデスクトップ画像をリモートに転送してみた

はじめに 主要な VR 向けのデスクトップ表示アプリ(Virtual Desktop や Bigscreen など)では、PC だけでなくモバイル VR もサポートしています。これを実現するには、キャプチャしたデスクトップ画面をリモートへ低遅延で転送しなければなりません。また、…

Unity でテクスチャを直接 NVENC でエンコードしてみる

はじめに 前回の記事で NVIDIA のハードウェアエンコーダである NVENC(および NVDEC)を使いやすくした NvPipe を Unity で使えるようにしたアセットの紹介をしました。 tips.hecomi.com しかし問題点として、NvPipe はバッファのポインタしか食わせる口が…

NvPipe で Unity のテクスチャを H.264 にハードウェアエンコード / デコードしてみる

はじめに NvPipe は NVIDIA 製 GPU に搭載されたハードウェアエンコーダ(NVENC)およびデコーダ(NVDEC)機能を簡単に C 言語で使えるようにラップした NVIDIA 製のライブラリです。 github.com NVENC および NVDEC は NVIDIA Video Codec SDK に含まれ、対…

キューブ型ロボットの toio を制御できる toio.js を触ってみた

はじめに toio はソニーから発売されているキューブ型のロボットです。配布されている様々なキットと合わせて遊ぶことで、子供でも実際にものを触りながらゲームを遊んだり動く工作をしたりといったことが簡単に楽しく遊べるおもちゃです。 発売日に私も買っ…

Intel RealSense デプスカメラ D435 を Unity で遊んでみた

はじめに 以前、Intel® RealSense™ のトラッキングカメラである T265 の記事を書きましたが、今回はデプスカメラである D435 を手に入れましたので、まずはカメラの概要と Unity のサンプルの紹介をしようと思います。 tips.hecomi.com デモ 画像ストリーム …

Unity の CustomTextureUpdate で DXT1 を使ってみる

はじめに 以前、CustomTextureUpdate の記事を書きました。 tips.hecomi.com この API は、ネイティブ(DLL 側)からバッファのポインタを渡してあげるだけでプラットフォーム間の差異(OpenGL や DirectX 固有のテクスチャの更新方法)を気にせず且つ簡単に…

自作キーボードはじめました 其ノ弐

はじめに 2ヶ月前に以下のような記事を書いたのでそこからのアップデートを書こうと思います。 tips.hecomi.com Planck Massdrop で注文していた Planck のアルミケースと OLKB で注文していた Planck rev.6 の PCB が届きました。 Massdrop した Planck の…

RealSense トラッキングカメラ T265 を Unity で遊んでみた

はじめに 1 月にプリオーダーしていた、V-SLAM をデバイス側で行ってくれる RealseSense の新しい製品である T265 が先日届きました。 realsense.intel.com T265 は次のようなデバイスです。 低消費電力 V-SLAM 動作で 1.5 W 正確なトラッキング 様々な環境…

自作キーボードはじめました

はじめに 最近、人気の自作キーボード周りの情報を追っかけるのにハマっています。昨年末に以下のようなつぶやきをしたところ、たかしすきーさんが何と所望のキーボードを作ってくれたのがきっかけです。 左右分割できるキーボードで真ん中あたりのキーがオ…

Unity で距離関数の記述だけでレイマーチングができる uRaymarching を Forward / XR 対応した

はじめに uRaymarching を更新しました。以前の記事はこちら: tips.hecomi.com uRaymarching は以下のような機能を持つアセットです(太字が今回更新した内容です)。 エディタ上で距離関数の記述だけでレイマーチングができる フォワード / ディファード対…

Unity でオブジェクトスペースの Raymarching をフォワードレンダリングでやってみた

はじめに 以前、ディファードで Raymarching をやる記事を書きました。 tips.hecomi.com 上記記事では画面全体での Raymarching でしたが、これを個別のオブジェクトとして分解できるようにしたオブジェクトスペースのレイマーチングについて以下の記事で解…

Unity で Boids シミュレーションを作成して Entity Component System(ECS)を学んでみた

本エントリは Unity Advent Calendar 2018 23 日目の記事になります。 qiita.com はじめに ECS(Entity Component System)の概要は読んだり、勉強会で話を聞いてはいたのですが、自分では書いたことがなかったので勉強してやってみることにしました。既に E…