しゅみぷろ

プログラミングとか

UnityでUVを確認するエディタ拡張

はじめに 気が向いたのでパッと作ってみました。 UVがどう設定されているかを確認できます。 実装 コードはこんな感じ。 UnityでUVを確認するエディタ拡張

WorldSpaceからUV算出するののパフォーマンスチューニング

はじめに esprog.hatenablog.com 以前紹介した記事で、任意のワールド座標上の点からオブジェクト表面のUVを算出する手順を紹介しました。 このまま使ったのではあまりパフォーマンスがよくないため、今回はこれを高速化しよう、というお話。 以前は遅い原因…

TexturePaintをとりあえず公開します

TexturePaint公開 github.com 前々から公開するとか言っておきながら何もせずそのままだったのでとりあえず公開しておきます。 サボらなければドキュメント的なものとか、もっと色々な機能追加とかもやっていこうと思います。 バンプマッピングによる厚みの…

液体が滴るような表現をするために

はじめに 前に液体を付着させる表現を作ったので今度は付着した液体が垂れる表現をさせるためのアプローチについてメモ 実装はまだなので、アイデアだけ書き残しておきます。 夏休み終わってから実装始めます。 方法 以前作ったテクスチャペイントを応用しま…

ボクセルゲーム制作

はじめに 完全個人でのゲーム企画を考えています。 個人でゲーム制作やってく上で問題になるのがリソース。 作ってくれる人なんていないので自分で作らなきゃです。 2Dゲームならばイラストさえなんとかなればなんとかなるのですが、3Dゲーム作りたい・・・ …

リングセレクトシステムとモーフォング

はじめに 今回はリングセレクトシステム(と呼んでいきます。正式名称とかあるのかは知らないです。)とモーフィングについて書いてみます。 Unityで実装しています。 リングセレクトシステムはアイコンがくるくる回って、その中の1つを選択するみたいなアレ…

C# Interactive 便利に使おう -その1 DLLの参照-

はじめに esprog.hatenablog.com 前回の記事ではC# Interactiveをちょちょいと使ってみました。 REPLめちゃくちゃ便利で重宝してます。 ということで今回はC# Interactiveを便利に使うための個人的Tipsの1つ「複数のDLLの参照を容易にする」を紹介します。 D…

C# Interactive

はじめに C# Interactive、便利ですよね。 普段からVSで開発しているのでお世話になってます。 今回別にとりあえず何か記事書いとかなきゃってことで書いてるので適当です。 C# Interactive Roslynの機能で、REPL(Read-Eval-Print Loop)と呼ばれているらし…

「塗り」を表現する技術

はじめに Splatoonの塗りみたいのを再現したい その1 - しゅみぷろ Splatoonの塗りみたいのを再現したい その2 - しゅみぷろ Splatoonの塗りみたいのを再現したい その3 - しゅみぷろ Splatoonの塗りみたいのを再現したい その4 - しゅみぷろ Splatoonの…

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

はじめに 塗り表現その5です。今回はとうとう、動的テクスチャペイントについて解説していきます。 サンプルはこちら(© UTJ/UCL)から遊べます Splatoonの塗りみたいのを再現したい その1 - しゅみぷろ Splatoonの塗りみたいのを再現したい その2 - しゅみ…

任意の点がモデル表面上に存在する場合にその位置のUVを算出する

はじめに esprog.hatenablog.com 上記の記事で行っているように、動的にUVを算出してその部分にエフェクトを掛ける場合などでは あるワールド座標上の点pがシーン内に配置されたモデルの表面上の点であるかどうか調べる モデル表面上の点である場合は、$p$の…

RaycastHitのTexcoordが常に0ベクトルを返すのですよ

はじめに RaycastHitのTexcoordが常に0ベクトルを返す問題に遭遇したのでメモとして残しておきます。 ちなみにUnity - スクリプトリファレンス: RaycastHit.textureCoordでも表記があるように、 コライダーがMeshColliderではなかった場合、 RaycastHitのTex…

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

はじめに Splatoonの塗りみたいのを再現したい その1 - しゅみぷろ Splatoonの塗りみたいのを再現したい その2 - しゅみぷろ Splatoonの塗りみたいのを再現したい その3 - しゅみぷろ 細々と実装しつつとうとうその4まで来ました。 自作した動的テクスチ…

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

はじめに esprog.hatenablog.com esprog.hatenablog.com 塗りを作るその3です。エフェクトを付けてベチャっと塗った感を出しました。 結構それらしくなってきた気がします。 エフェクト作る技術力が無かったのでこちらのアセットを使わせて頂きました。 実…

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

はじめに esprog.hatenablog.com の続編、塗りの表現です。ちょっとだけ進化したので簡単にメモしておきます。 今回実装したのはブラシの法線マップをペイントに適用する処理です。法線マップについては 法線マップと接空間 - しゅみぷろ で紹介しています。…

法線マップと接空間

はじめに esprog.hatenablog.com 以前書いた記事で、テクスチャペイントするブラシに凹凸の表現を施したいと思い、法線マップについて勉強してみましたので纏めておきます。 以下のサイトを参考にさせていただきました。 wgld.org | WebGL: バンプマッピング…

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

はじめに Unity WebGL Player | スプラトゥーンもどきをやってSplatoonやりたい欲が高まってまいりました。 Splatoonしたいけどお金なくてWiiU買えない貧乏苦学生なので、「無ければ作ろう!」という精神でSplatoonの塗りをコンセプトに取り入れたゲームを作…

クック・トランスの金属反射モデル

はじめに この記事は esprog.hatenablog.com の延長です。 なるべくパラメーターを渡す部分等はスクリプトから渡していますが、Propertiesから設定した方がいい部分もあります。 esprog.hatenablog.com 上記の記事で金属の反射モデルを紹介しています。この…

行列の性質について

はじめに esprog.hatenablog.com こちらの記事で、頂点の法線をModelSpaceからViewSpaceに変換する際に 法線の拡大縮小変換は、この変換の逆数をとる必要があるので $$A=R_{V} S_{M} ~ ^{-1} R_{M}$$ となります。回転行列の転置行列は自身の逆行列と等しく…

Unityでなるべくシェーディング処理を自作してみる

はじめに 以前記事にした esprog.hatenablog.com esprog.hatenablog.com こちらの知識を使って、なるべくUnityのライトやShaderLibrary(.cginc)を使わずシェーディングを行ってみました。 Unityのグラフィックスを勉強するには結構いい題材だったかなと思い…

シェーディングまとめ

はじめに esprog.hatenablog.com 引き続き、CGの基礎的なところをおさらいしていこうと思います。 Forward Renderingについてまとめてみた - しゅみぷろ の内容と関連がありますので参考までに。 今回はこちらの本を参考に、シェーディングについてまとめま…

コンピューターグラフィックス基礎のメモ

はじめに 基礎から勉強し直しています(というより基礎すらままならない状態なので...)。 ということで今回は座標系、変換行列、ビューイングパイプラインについて簡単にですがメモしておこうと思います。 変換行列や各座標系に関してはDirectXやOpenGLで多少…

Unite 2016 Tokyo まとめ(2日目)

はじめに Unite2日目で自分が聴講したものについてまとめます。 個人的に興味深かった講演については後日もっと深く掘り下げようと思っています。今回は大雑把にどんなことをお話しされていたか等を残しておきます。 講演の資料はこちらからDLできます。 Un…

Unite 2016 Tokyo まとめ(1日目)

はじめに Uniteで聴講させていただいたものをとりあえず整理してまとめておきます。 2日分まとめて書こうと思ったんですがめちゃくちゃ長くなりそうなので分割することにしました。2日目はまた後日。本記事では1日目の内容を書いていきます。 個人的に興…

1つのカメラでMRT出力を用いたPostEffectを実現する

はじめに 今までにも何度かCommandBufferを用いたエフェクトについて書いてきたので今更なのですが、Unityのコミュニティでの会話でなんとなくきっかけがあったので書いてみることにしました。 今回は1つのカメラでMRTによる出力を使ったPostEffectをしてみ…

Screen Space Reflection for Unity

はじめに UnityでSSR(Screen Space Reflection)に挑戦しました。 が、実際に出来たのは「SSRっぽい何か」です。 コア部分のみの実装のため、いわゆる「破綻を誤魔化す処理」は付加していません。 条件によっては結構不自然だったりします。 これを改善するた…

Forward RenderingのShadowingについて調べてみた

はじめに ForwardRenderingのShadowingについて調べたことをまとめます。 github.com 今回のサンプルでは以下の様な絵が出てきます。左2つの球はそれぞれvertex/fragment lightingを適用し、shadingを行ったもので、shadowingを行っていません。一番右の球は…

C# 5.0までの色々をメモしてたスライドを発掘した

めちゃんこ前にC#の勉強をはじめた時に書いていたメモ用のスライドを発掘しました。 間違ってたら当時の自分を殴って目を覚ましに行ってやってください。

RenderDocによるUnityシェーダーデバッグ

はじめに RenderDocでUnityのシェーダーをデバッグする方法を紹介します。内容はUnityマニュアルとほぼ同じですが、簡単に導入方法をメモしておきます。 docs.unity3d.com RenderDocは以下からダウンロードしてきます。 RenderDoc Downloads 使い方 RenderDo…

UnityでCommandBufferを使わないRaymarching

はじめに 以前、id:i-saintさんとid:hecomiさんの記事を参考にUnityでCommandBufferを使ったRaymarchを試しました。 こちらの記事で紹介させていただいています。 esprog.hatenablog.com 今回はCommandBufferを使わないRaymarchingについてです。 きっかけは…