Category: Unity

Unity:Compute Shader と Geometry Shader で60fps/100万個のキューブを描画!

Compute Shaderの勉強中なので、簡単なサンプルとしてキューブを100万個動かしてみました。主にPositionを再計算する処理をCompute Shader で実装しております。比較用としてスクリプト(CPU)でのPositionを再計算する処理とのパフォーマンスの違いも見ます。

Unity:1万個のキューブ/Cube/立方体を頂点移動だけで動かす

1万個のキューブを移動する場合、プリミティブ型のキューブオブジェクトを1万個素直に配置して、transform.position を移動する方法、shader で描画する方法(過去に作りました)、1メッシュに結合してメッシュの頂点を移動する方法など様々あります。今回は1メッシュに結合して頂点情報を書き換える事により描画を行ってみました。
Shader で描画する方法は高速なのですが、WebGLでは Geometry Shaderが使えなかったため、本手法で検証してみました。

Unity:byte配列からjpg/pngをテクスチャ(Texture)に変換

Unity で テクスチャ(Texture) を動的に生成する方法はいくつかあります。Resourceに画像を保存して Resources.Load する方法や、Assetsに画像を保存しておきインスペクターで性的に設定する方法など。今回は byte配列 をテクスチャ(Texture) にする方法を紹介します。

NVIDIA FleX for Unity のサンプルを見る

NVIDIA FleX for Unity (1.0 BETA) を使うと簡単に水流・水しぶきなどの表現ができるので、物理演算などの表現力を確認するため本アセットに含まれているサンプルを全部実行して確認してみました。

Unity:GPU インスタンシング(Instancing) を WebGL で実行する

Unityの高速化の一般的な手法、GPU インスタンシングを使ってパフォーマンスを改善するようなデモを作成したので動作してみてください。

また、WebGLで出力した場合も有効かどうか確認し有効でしたので合わせてデモページもありますので各自の環境で試してみてください。

Unity であらゆる C#(.NET) パッケージを使う(例:opencv)

はじめに

Microsoft がサポートする .NET のパッケージ管理である NuGet はみなさんご存知だと思いますが本パッケージマネージャーを Unity で使う方法があります。

もちろん Unity は Mono で動作していますが、.NET2.0用のライブラリが存在していればほぼそのまま使えます。

NuGetForUnity

.unitypackage をダウンロードします。

https://github.com/GlitchEnzo/NuGetForUnity/rele…

UniRx 知らないと人権が無い気がしてきたので勉強した。

はじめに

最近、Unity を触る機会が多いため Unity の関するキーワードを勉強しています。
今回の投稿はその一環として UniRx を勉強してみました。自分用のメモなので読みにくいかと思いますが参考に出来る方がいれば幸いです。

参考:UniRx入門シリーズ 目次
参考:UniRxを導入するメリット ~こういう時にUniRxは使えるよ~
参考:未来のプログラミング技術をUnityで -UniRx-

UniRxとは

「UniRx入門シリーズ 目次」さんから引用させていただきました。…