イラスト、モデリング、Unity、VR関連

unityとかblenderとかvr関連の作業メモ

shader 点滅

点滅シェーダ pic.twitter.com/4jMuviK7OV — 光属性のアルモジナ(VRChat勢) (@arumogina) July 19, 2019 Shader "Custom/Blink" { Properties{ _MainTex("MainTex",2D) = "white"{} _DiffTime("DiffTime",Int) = 50 _Color1("Color1",Color) = (1,0,0,1) _C…

shader 両面テクスチャ

Shader "Custom/BothSufrace"{ Properties{ _FrontTex ("Texture", 2D) = "white" {} _BackTex ("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 100 Pass{ Cull Back CGPROGRAM #pragma vertex vert #pragma fragment frag …

Shader 距離判定による限定視界ジャック

自分にだけ見える視界ジャック Quadに貼り付けて使う Shader "Custom/Menu" { Properties{ _MainTex("MainTex",2D) = "white"{} } SubShader{ Tags{"Queue" = "Transparent" "RenderType" = "Transparent" "DisableBatching"="true"} Blend SrcAlpha OneMinu…

shader ジオメトリシェーダで平面、立方体を書く

平面,頂点の入力順が重要 [maxvertexcount(4)] void geom(triangle appdata vg[3], inout TriangleStream outStream){ float p = 0.5; g2f gf = (g2f)0; gf.pos = UnityObjectToClipPos(float4(p,p,0,1)); outStream.Append(gf); gf.pos = UnityObjectToClip…

Unity メッシュパーティクルのシェーダ

++メッシュパーティクルに適用するシェーダには様々な制限がかかるっぽいので遭遇した事例についてメモって行く ++ローカル座標がワールド座標になってしまう ローカル座標でx<0なら赤く、それでないなら黒くにしたけど、マジか、なのだ pic.twitter.com…

shader テクスチャバグ的なもの

うーん・・・ pic.twitter.com/JDdcHuJhG7 — 光属性のアルモジナ(VRChat勢) (@arumogina) July 5, 2019 テクスチャバグ的なもの pic.twitter.com/bLyFhcuhcb — 光属性のアルモジナ(VRChat勢) (@arumogina) July 5, 2019 Shader "Custom/TexBugSquare" { Pr…

shader テクスチャバグSquare

pic.twitter.com/yYilFmRuYr — 光属性のアルモジナ(VRChat勢) (@arumogina) June 23, 2019 Shader "Custom/TexBugSquare" { Properties{ _MainTex("MainTex",2D) = "white"{} _Height("Height",float) = 1.8//アバターの足裏をゼロとした場合の頭頂部の位置…

shader テクスチャバグMk-4

テクスチャバグシェーダMk-4Mk2と違い、ズレた分消えるのではなくズレるだけになっている pic.twitter.com/CLonMBNIQt — 光属性のアルモジナ(VRChat勢) (@arumogina) June 29, 2019 Boxにセット Shader "Custom/TexBugZure" { Properties{ _DownSPD("DownSP…

shader テクスチャバグMk-3

テクスチャバグシェーダMk-3 pic.twitter.com/ytO6fLxZgT — 光属性のアルモジナ(VRChat勢) (@arumogina) June 29, 2019 アバターに付与する Shader "Custom/SetStencil" { Properties{ _MainTex("MainTex",2D) = "white"{} _Width("Width",Range(-1,1)) = 0…

shader テクスチャバグMk-2

テクスチャバグシェーダMK-2 pic.twitter.com/RQrpXIHOEh — 光属性のアルモジナ(VRChat勢) (@arumogina) June 29, 2019 //Box内に入ったものにZureを発生させる //ステンシルを使ってるため横にずれたぶんのステンシルからはみ出た部分は消えてしまう Shade…

shader 3DBillboard

o.posに代入している値は、スケール、トランスフォームを無視して座標変換を行っている。 (これらの要素はワールド変換行列が含まれる) float4(0,0,0,1)を変えれば任意の位置に移動できる Shader "Custom/Billboard"{ Properties{ _MainTex ("Texture", 2D…

shader Box内に入ったオブジェクトを黒くするやつ、with ZTestとステンシル

pic.twitter.com/xPc5sirXSa — 光属性のアルモジナ(VRChat勢) (@arumogina) June 28, 2019 1pass目はComp Alwaysなのでステンシルは常に通る。 CullFrontしているので、Boxの裏側が見えない場合ZFailとなり1が書き込まれる。 2pass目はCullBack,ZTestGreate…

shader ZTestとRender Queue

++基本 ・ZTestはデプステストとも呼ぶ。ZTestはその時点でデプスバッファに書き込まれている値(以降、z値)と比較することで行う ・ unityのz値はカメラに近い方が低く、遠い方が高い。 ・オブジェクトはQueueの順番に処理され、Queueの値が低いほど先に…

shader Box内に入ると黒くするやつ ステンシル+視界ジャックver

pic.twitter.com/0VQDInrpvn — 光属性のアルモジナ(VRChat勢) (@arumogina) June 27, 2019 Box Shader "Custom/StencilBox" { SubShader{ Tags{"RenderType"="Transparent" "Queue" = "Transparent+99999"} Blend SrcAlpha OneMinusSrcAlpha Pass{ Stencil …

距離関数を使ったカメラとの当たり判定

Box当たり判定サンプル pic.twitter.com/RFFIVqJouC — 光属性のアルモジナ(VRChat勢) (@arumogina) June 27, 2019 カメラが任意のBoxの形の中に入ってるか判定し、入っていれば箱の色を黒に、なければ白の半透明にしている。 Shader "Custom/BoxLengthJudge…

shader utils

https://qiita.com/keim_at_si/items/c2d1afd6443f3040e900 HSV https://docs.unity3d.com/ja/2017.4/Manual/SL-UnityShaderVariables.html ビルトインシェーダ変数 プロジェクション行列の逆行列 unity_CameraInvProjection カメラのアスペクト比の取得 htt…

shader GrabPass Base

tex2DProjはgpos.xy/gpos.wを行ってtex2Dを使うのと同じ。 w除算した場合の範囲は0~1 https://twitter.com/arumogina/status/1245004048849223685 Shader "Custom/GrabPassBase" { SubShader{ //透明部分のあるテクスチャを使う場合 Tags{"Queue" = "Transpa…

shader 配列の扱い

初期化 int a[2] = {1,2}; int a[2][1] = {{1},{2}}; float2 a[1] = {float2(1,1)}; float2 a[1][1] スカラーは多次元配列の初期化が出来るが、ベクトルは無理っぽい 返り値の指定 void xtest(out float2 a[1]) void xtest(out float a[1]) はout記法を使っ…

shader TexBugシェーダ、vertex ver

ParinNoise #include "UnityCG.cginc" float4 permute(float4 x){ return fmod(34.0 * pow(x, 2) + x, 289.0); } float2 fade(float2 t){ return 6.0 * pow(t, 5.0) - 15.0 * pow(t, 4.0) + 10.0 * pow(t, 3.0); } float4 taylorInvSqrt(float4 r) { return …

vrchat 関連情報

++カメラの仕込み方 カメラを空のオブジェクトの直下に配置して空のオブジェクト(以降A)を適当な場所に配置。 アニメーションオーバーライドでAを表示するアニメーションを作成 cameraのcameraコンポーネントをデフォルトでオフにしておき、cameraオブジェ…

shader ジオメトリシェーダbase

Shader "Custom/GeoBase" { Properties{ [Enum(UnityEngine.Rendering.CullMode)] _Cull("Cull", Float) = 2 // Off [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Float) = 4 // LEqual [Enum(Off, 0, On, 1)] _ZWrite("ZWrite", Float) …

shader billboard

Quadに貼り付けての使用を想定 Shader "Custom/Billboard"{ Properties{ _MainTex ("Texture", 2D) = "white" {} _Scale("Scale",Range(0.1,1)) = 0.4 } SubShader{ Tags { "Queue"="Transparent" "RenderType"="Transparent" "DisableBatching"="True" } Bl…

Shader NoData風

NoData風シェーダ pic.twitter.com/XvLZMNCOXS — 光属性のアルモジナ(VRChat勢) (@arumogina) June 18, 2019 Shader "Custom/NoData3" { Properties{ _XColor("XColor",Color) = (1,1,1,1) _XCLimit("XCLimit",Range(0,9)) = 1 _YColor("YColor",Color) = (…

shder ノイズ?生成

Quadに貼り付けて、生成されたテクスチャをキャプチャして使用する Shader "Custom/CreateNoise" { Properties{ _Frec("Frec",Range(1,200)) = 1 _Param("Param",Range(0,200)) = 1 _From("From",Range(0,1)) = 0 _To("To",Range(0,1)) = 1 } SubShader{ Pas…

shader shaderだけでカメラの前にテクスチャを貼る方法

実際にやってみると視点を動かすとメッシュが消える場合がある。そのような場合はBoundingBoxを大きくすると解決する。 BoundingBoxを小さくしてもそれが視界内に入ってる限り描写されるので、BoundingBoxの設定で一定範囲に入った場合のみ表示する、という…

Shader frag Base

Shader "Custom/FragBase" { Properties{ [Enum(UnityEngine.Rendering.CullMode)] _Cull("Cull", Float) = 2 // Off [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Float) = 4 // LEqual [Enum(Off, 0, On, 1)] _ZWrite("ZWrite", Float)…

Shader 影絵シェーダ

基本的な仕組みとしてはBox内の内側を指定した色にする。 Boxの開放部にGrabTextureを仕込んだシェーダを持つPlaneを設置し、そのGrabTextureの色が指定した色でなければ黒、にしている boxに仕込むシェーダ Shader "Unlit/TVShader" { Properties { _MainTe…

shader Boxの中に入ったものだけ黒くするシェーダ

Shader "Custom/ShadowPic" { SubShader{ Tags {"RenderType"="Transparent"} GrabPass { "_GrabPassTexture" } Stencil { Ref 1 Comp always Pass replace } Cull Front Lighting Off CGPROGRAM #pragma surface surf Lambert alpha struct Input { fixed3 …

Shader ステンシルを使った改良版アウトライン

左が改良版、右が法線方向に伸ばしてアウトラインの上をテクスチャが上書きする方式 Shader "Custom/Outline2" { Properties{ _Color("Color",Color) = (1,1,1,1) _OutlineWide("OutlineWide",Range(0.,0.2)) = 0. _OutlinePow("OuwlinePow",Range(0,5.)) = …

Shader ステンシルバッファ

Shader "Custom/HideStencil" { Properties{ _MainTex ("Texture",2D) = "white" {} } SubShader{ Tags { "RenderType"="Opaque" "Queue"="Transparent+1"} Pass{ Stencil{ Ref 1 Comp Equal } Cull Off CGPROGRAM #pragma vertex vert #pragma fragment fra…