8月 20, 2014
Rainbow

image

Rainbow made with 64*32 cubes.

8月 13, 2014
BaraBara Ball in Unity

image

画面内をClickしてください!

GitHub: https://github.com/sugi-cho/BarabaraShader

参考: http://codeflow.org/entries/2012/aug/02/easy-wireframe-display-with-barycentric-coordinates/

12:44am  |   URL: http://tmblr.co/Zl-9Py1O31eht
  
登録カテゴリ:: unity3d 
6月 24, 2014
Backgroundで動くEditorScript

これベンリ!

10:25pm  |   URL: http://tmblr.co/Zl-9Py1Jbson0
  
登録カテゴリ:: unity3d 
6月 1, 2014
Unityでお絵かき(Shader版)

image

ドラッグすると、描けます!以前に3DMeshで描くタイプのも作りました。

ぐぐってみたところ、ほかにUnityでお絵かきツールを作ったものを見つけました。ぱっと見たカンジ、Texture2Dを使ってCPUで色を塗る処理をしているみたいでした。

ぼくは、RenderTextureにMaterialをBlitしていく方法で作ってみました。
(1年くらい前に、同僚のLeeさんがやってて、こんど試そう!というまま、時が過ぎました)

動的なテクスチャを作るのに、結構、応用効くんじゃないかな。

(RenderTextureを使っているので、Proのみな気がします!自分のMacbook Airでしか動作確認していないです!)

3:04am  |   URL: http://tmblr.co/Zl-9Py1HQ6xDL
  
登録カテゴリ:: unity3d 
3月 5, 2014
SquareEffect

なおした

image

3:24am  |   URL: http://tmblr.co/Zl-9Py19AjYhW
登録カテゴリ:: Unity3D 
12月 17, 2013
Get Random Points on Mesh

image

メッシュ上の点をとる

10:41am  |   URL: http://tmblr.co/Zl-9Py11Q_DWK
登録カテゴリ:: unity scripting 
12月 2, 2013
1,000,000 Particles in Unity (on Macbook Air 2013)

100万個、パーティクルを出したい事って、良くあると思うのですが、UnityのParticleSystemを使ってやろうとすると、どうしても、処理が重すぎて使い物になりません。。

UnityのParticleSystemは、パーティクルの更新をマルチスレッドでやってくれるので、それなりに高速なのです!なので、動くモノを大量に出したい時は良く使ったりしています。

http://sugi.cc/post/64851479394

ですが、ParticleSystemで100万個パーティクルを出そうとすると、

image

このように、FPSが1.2まで落ちてしまいます。

EmissionRate 10,000(個/秒)* LifeTime 100(秒) = 1,000,000(個)で、パーティクルを100万個出そうとしているのですが、Statusの情報を見るとVerts = 3.0Mなので、この画像では、75万パーティクルしか出ていません。(パーティクル1個につき4Verts)100万パーティクルになる前に重すぎて諦めました。。

そこで、ぼくが作った、VertexParticleSystemなのですが、簡単に言うと、QuadのMeshがたくさん入ったMeshをつくり、VertexShaderでParticleみたいな動きを付け、大量のパーティクルを制御する。という、ヤツです。

image

■ParticleSystemでやろうとしたときのProfiler

image

ParticleSystem.WaitForUpdateThreadsがほとんどを占めています。つまり、メインスレッドは、ParticleSystemのスレッドを待っているだけで、何もしていません。かわいそう。

■VertexParticleSystemで100万個パーティクルを出してるときのProfiler

image

CPUでの処理がほとんど無くなりました!レンダリングだけです。

このシステムを使ういい点は、

  • たくさんのパーティクルを制御出来る。
  • ParticleSystemでは出来ないような動きを付けれる。
  • メインスレッドの待ちが無くなる。

また、よくない点としては、

  • Collision等の処理が作りにくい。
  • Shaderの処理数の制限がある。(instruction limitとか)
  • 動き毎にすべて、Shaderで作る必要がある。
  • GPUパワーが必要。(だけど、ParticleSystemでやるときもレンダリングはするから、いっしょかも。)

Source Code: https://gist.github.com/sugi-cho/7744818

また、RenderTextureに各Particleの位置情報や速度情報等を格納し、Graphics.Blit(rt,rt2,mat)で、パーティクルの位置情報を計算していく。という、方法もあります。

これは、マウスの位置にパーティクルが寄って来たり、クリックしているときは離れて行ったり、するように、作っています。

ParticleSystem便利で良く使うけど、ホンキでたくさんモノを出したい時は、Shaderでやった方が、良い!

11月 28, 2013
WebCam Squares

image

シーンにカメラしか置いてないので、Unityを使う意味、全然無いんですが。。

image

(フルスクリーンにすると4:3で見れます。たぶん)

1:14am  |   URL: http://tmblr.co/Zl-9Py-b9ytN
登録カテゴリ:: Unity3D Shader 
11月 27, 2013
Generate CheckerBoard with Shader

アンチエイリアスは、あとでかけてる。

11月 15, 2013
よく使うCginc

Shaderを書くときに、Libsディレクトリに入れているCginc。

SimplexNoiseとかよく使う。

https://gist.github.com/sugi-cho/6076993

11:16pm  |   URL: http://tmblr.co/Zl-9Py_Swu15
登録カテゴリ:: Unity3D Shader 
Tumblrでのスキな投稿: スキな投稿をもっと見る »