しゅみぷろ

プログラミングとか

Unity

UnityShader勉強会 資料公開

はじめに connpass.com 上記イベントの資料を公開します。 登壇時間の15分では話せなそうなボリューム感になってしまったため、登壇の際は資料を大幅に削ったものを利用しました。 リンクは以下から。 docs.google.com 最後に Oren-Nayar、記事書いてなかっ…

ECS完全に理解した勉強会で登壇した話

はじめに connpass.com 上記勉強会で登壇させていただきました。 今回の登壇では、あまり触れられることのないHybrid ECSについて、基礎部分をお話してきました。 Hybrid ECSでSpringBoneを高速化した話をしようか迷ったのですが、こちらはコード解説も必要…

SpringBoneのJobSystem化でわかったこと

はじめに Unityで揺れもの動かすの、重くない...? ということで最近ちょこちょこ作っているのがuSpringBone。以下のやつ。 github.com 揺れもの用のBoneを揺らすSpringBoneの計算処理をJobSystem使ってごっそりWorkerThreadに持っていこうというのがコンセ…

ECSとJobSystem 基礎

はじめに やる気がある。全部Uniteのせい。 今回はECS(Entity Component System)とJobSystemについて色々触ってみたので、基礎部分のメモを残しておきます。 サンプルのプロジェクトは以下から見れます。 github.com どの程度自分の解釈が正しいのかちょっと…

描画の効率化について

はじめに 今回の記事ではUnite2018で得た有り余るやる気を発散するために、描画の効率化について書いていこうと思います。 また、MaterialPropertyBlockという機能が結構誤解されがちなので、これについても纏めていこうと思います。 バッチングを効かせる上…

投影手法について

はじめに Shaderで投影を行う手法についてメモ用に書き残しておこうと思います。 投影の手法や原理を理解出来れば、例えば 背面をGrabしオブジェクト背面の絵を取得しエフェクトを掛ける Projectorの作成 DepthShadowによる影の描画 反射の描画 みたいなこと…

WaveformProviderがリリースされました

はじめに WaveformProviderがAssetStoreの申請通りました。 以下のリンクからストアに飛べます。 https://www.assetstore.unity3d.com/#!/content/109659 GitHubでも公開しています。 github.com WaveformProviderとは WaveformProviderは、波をシミュレート…

水面を作ってみた

はじめに github.com サンプルは上のリンクから。 madewithunity.jp こちらで紹介されている波紋シェーダーが美しいと思ったので、似たようなものを実装してみました。 最近イカやゼルダやゼノブレイドやHorizon Zero Dawnやモンハンやらで忙しくてLOST SPHE…

Google Tangoで遊んでみた

はじめに 買っちゃった・・・ ということで、Google Tangoで遊んでみました。 とりあえずは Google Tango Unity Support Library Tutorial 上記リンクから色々読んだり、サンプルのプロジェクト動かしてみたりすると割とスッと使えるようになります。 InkPai…

Tessellationを用いたなんちゃってスカルプト

はじめに 何かが衝突した影響でモノが変形したり…といった表現は結構巷にあふれていて、その手法も様々です。 一番シンプルに思いつく実装方法といえば、衝突の際に実際にジオメトリを変形させることでしょうか? 今回は実際の頂点データを弄らず、GPUで頂点…

Why is it painted in multiple places?

Introduction esprog.hatenablog.com This is an answer to questions about InkPainter. Why is it painted in multiple places? You may encounter this situation while using InkPainter. Is this a bug? Please be relieved, it is not a bug but a spe…

What is "Property" of InkCanvas??

Introduction esprog.hatenablog.com This is an answer to questions about InkPainter. What is “property” ? InkCanvas which is a component of InkPainter. What should we put in this “Property”? … For this “property” input, the texture variable…

InkPainterがリリースされました

おしらせ InkPainterを正式にGitHubおよびAssetStoreで公開しました。 GitHub - EsProgram/InkPainter: Texture-Paint on Unity. Asset Store もともとUnityTexturePaintとして販売し、国内外様々な方から色々な意見、レビューをいただいていたのですが、あ…

雨の日のカメラを作る

はじめに カメラのレンズに雨が付着した感を出してみました。 ささっと作ったのですが、ちょっといい感じになったので自分で驚いてます。 雨粒が付着した部分は背景の映り込みが歪むようになっています。 Unity Standerd Assetに含まれるガラスシェーダーを…

法線に影響される液垂れの表現

はじめに 液垂れ表現についてです。 最近Switchばっかやってて全然更新してなかったので久しぶりにネタ消化。 液垂れの基本的な部分は過去記事で。 esprog.hatenablog.com esprog.hatenablog.com 今回は法線マップに影響させる部分について軽くメモしていき…

シンプルなMatcapシェーダーを書いてみる

はじめに UnityでMatcapシェーダー書いたのでメモ。 Matcapシェーダーは考え方とか実装がめちゃくちゃ簡単なので、シェーダーの勉強に良さそうです。 Matcapの特徴はとにかく軽量で良い感じに写実的な表現が行える上、実装が簡単なことだと思います。 Matcap…

UnityTexturePaint動画公開

UnityTexturePaintの簡単な紹介動画を公開しました。 最近ちょこちょこバグ取り修正を加え、FluidPaintのサンプルまでを含んだパッケージをAsset Storeで申請中です。 GitHubにはもう上がってるので、使ってみたい方は是非落としてみてください。 github.com

tex2Dでミップマップをサンプリングする際に端にノイズが出る

はじめに 画像のような感じで、ペイント時にブラシの端にノイズが乗ることがあります。 メインテクスチャとは別の、GenerateMipMapが設定されたテクスチャをShaderで収縮し表示すると起こるようです。 解決方法をとりあえずメモしておきます。 原因 理由は詳…

UnityTexturePaintがAssetStoreで公開されました

はじめに UnityTexturePaintがAsset Storeで公開されました! Asset Store : UnityTexturePaint 初めてのストア出品だったけど、特に滞りなく出すことができました。 Key Imageを描いてくださった@traitam様、お世話になりました。 また、ストア出展ですごく…

オブジェクト表面を垂れる液体表現 その2

はじめに ペイント後に垂らす処理 ロゴの表示演出(© UTJ/UCL) 複数色のテスト esprog.hatenablog.com オブジェクト表面を液体が垂れる表現をさせる試みの続きです。 前回の記事で基本的な部分を実装したのですが、複数の色をペイントすることが出来ないとい…

オブジェクト表面を垂れる液体表現 その1

はじめに 採用情報:仕事を読み解くキーワード24 - 23 もう一歩踏み込みたいより Splatoon動画の壁に塗ったインクが垂れるような表現がしたかったので作ってますというお話です。 まだまだ垂れる部分のアルゴリズムを試作中だったりしますが、ある程度形にな…

UnityTexturePaintのドキュメント公開

はじめに Asset Storeでの公開を夢見て、とりあえずドキュメント作らなきゃということでドキュメントを公開しました。 しゅみぷろ(このブログ)のサイドバーのリンクからUnityTexturePaintDocumentを辿ってもらえれば見れます。 Unity Texture Paint: Main Pa…

オブジェクトの一部のみ鏡面反射を行うようにする

はじめに オブジェクトにインクっぽいものを塗って、そのインク部分だけが反射するような表現がしたかったので作りました。 多用は出来ませんが、数カ所こういった特徴的な表現ができるとゲームがかなり尖ります(と思います。 UnityTexturePaintを利用してい…

アルファ値を弄るためだけのペイント処理

はじめに UnityTexturePaintでアルファ値のみのペイントが出来るようになりました。 大した追加ではないのですが、透明(半透明)なオブジェクトに使ってやると結構可能性が広がりそうです。 使い方は簡単で、ブラシのカラーブレンド設定でAlphaOnlyにするだけ…

歩いた場所の雪が凹むやつ作った

はじめに 雪が積もって高さがもとに戻っていくやつ書いた。Uniteでセツナの講演聞いててよかった。パーティクルの逆LODもやりたい。 pic.twitter.com/tGdu0RxZ41— Es (@Es_Program) October 26, 2016 こんな感じで、歩いた箇所の雪を凹ませるやつ作ってみま…

ハイトマップから法線情報の生成

はじめに esprog.hatenablog.com 以前の記事で、ハイトマップを参照して動的に変形するオブジェクトのサンプルを作りました。 サンプルでは、シェーディング計算が適当でしたが、今回はちゃんとシェーディングを行うために必要になる法線情報を計算してみま…

UnityTexturePaintでリアルタイムにオブジェクトを変形する

はじめに UnityTexturePaintは、リアルタイム(ゲーム実行中)にオブジェクトの持つテクスチャに対してペイントを行うアセットです。 UnityTexturePaintは以下で公開しています。 github.com 基本的には メインテクスチャへのペイント ノーマルマップへのペイ…

テッセレーション基礎

はじめに UnityでTessellationについて勉強したので基本的なところを纏めておきます。 Tessellationとは GPUを利用して頂点の分割を行う技術です。 D3D10でのレンダリングパイプラインは MSDNより引用 となっていました。 大抵の場合はVertex-ShaderとPixel-…

Splatoonの塗りみたいのを再現したい その8

はじめに esprog.hatenablog.com 前回はアンチエイリアスの実装やペイント時の色、法線情報の合成アルゴリズムを見直していきました。 実は他にもMeshColliderを不要にするために色々奮闘したりもしました(こちらで掲載しています)。 以前までの全ての関連記…

UnityTexturePaintで出来ること

はじめに esprog.hatenablog.com 上記記事でTexturePaintを公開しました。 公開当初より出来ることが多くなってきたためメモがてら機能を整理しておくのが今回のエントリです。 TexturePaintを使ってみたい場合は、GitHubから落としてきてUnityで開いてみて…