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

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

2019-01-01から1年間の記事一覧

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…

Shader SpeiaGrab

Shader "Custom/SepiaStencil" { Properties { _Color ("Color", Color) = (1,1,1,1) _SepiaIntensity ("SepiaIntensity", Range(0, 1)) = 0 } SubShader { Tags {"Queue"="Transparent" "RenderType"="Transparent" } GrabPass { "_GrabPassTexture" } Cull…

ShadersLaboratryのサンプルを読んでいく記事-Geometry

Shaders ++ Demo 90 - Flat shading float3 vecA = IN[1].vertex - IN[0].vertex; float3 vecB = IN[2].vertex - IN[0].vertex; float3 normal = cross(vecA, vecB); normal = normalize(mul(normal, (float3x3) unity_WorldToObject)); 1点を中心として…

shader ジオメトリシェーダ・サンプル

ジオメトリシェーダ、サンプル pic.twitter.com/3ZapVt5VW2 — 光属性のアルモジナ(VRChat勢) (@arumogina) June 8, 2019 ++参考 HoloLens で使える Near Clip 表現について解説してみた - 凹みTips ジオメトリシェーダ入門 - e.blog ++コード 上記の参…

shader ラスタライザについて

ラスタライザの実際の動きについて理解してなかったので、それについてメモっておく。 ++ラスタライザの基本的な役割 頂点間の線形補完を行う。以下のような理解をしておけばシェーダを書くだけなら問題ないと思われる 図のようにラスタライザはvertからfr…

レイマーチングについて

++レイマーチングとは何か? メッシュではなく、距離関数を用いてオブジェクトをレンダリングする手法。フラクタル図形や無限繰り返しが可能であり独特の表現が可能になる ++レイマーチングの原理 固定長進行レイマーチングやってみたので簡単なサンプル…

ShadersLaboratryのサンプルを読んでいく記事-post rendering

post renderingはオブジェクトではなく、カメラにスクリプトを付与する必要があるため一部c#スクリプトを必要とする。 ++post rendering,ポストエフェクトとは何か? Unityでの水彩画風ポストエフェクト - Qiita 引数としてレンダリングされた結果をRender…

ShadersLaboratryのサンプルを読んでいく記事-surface

Demo 23 - Wireframe like step(a, x) (x >= a) ? 1 : 0 を返します。 frac(x) x の小数部を返します。 step(_LineWidth * 2, frac(IN.worldPos.x / _ParcelSize) + _LineWidth); frac(IN.worldPos.x / _ParcelSize)は0~1の少数でループする周期的な値を返す…

ShadersLaboratryのサンプルを雑に読んでいく-noice

Shaders ノイズ模様をシェーダのみで生成している。 普通にテクスチャで描けばよくない?って思うものも多い。 ざっと読んだのが、なぜそうなるかとかあんまり考えるコードもないと思う。 Demo 75 - Matrix pattern Demo 62 - Pseudo Random この二つはシェ…

ShadersLaboratryのサンプルを雑に読んでいく-Miscellaneous

ーShaders ++省略後 頂点シェーダ:VS フラグメントシェーダ:FS ローカル座標のポジション:LPOS ワールド座標のポジション:WPOS +++++ Demo 97 - Texture switch depending player pos 頂点のWPOSを取得し、FSにてプライヤーとの距離を計算、一定…

レンダリング、CommnadBuffer,G-Buffer,Deferred Shading(ディファードレンダリング)について

*細かいところを間違えてる気がしてならないです ++ディファードレンダリングの概要 レンダリングの手法の一つ。ライティング処理の負荷軽減のために使用される。 対比するものとしてフォワードレンダリングがある。 Deferred Shading,遅延シェーディング…

Shader プロジェクション変換について

ShaderLab 定義済みの値と座標空間とその変換について - イラスト、モデリング、Unity、VR関連 の記事のプロジェクション変換についての追加情報を書く。 ++w除算が行われるタイミング Unityの場合、w除算はvertexシェーダ終了後に、返り値となる構造体の…

ShaderLab 定義済みの値と座標空間とその変換について

++座標空間について 3Dのオブジェクトを画面に映しだすとき、各オブジェクトのローカル空間(座標系)から画面のプロジェクション(クリップ)空間に変換する必要がある。 この変換は ローカル空間=>ワールド空間=>ビュー空間(カメラ空間)=>プロジェ…

GLSLの文法

++void mainImage( out vec4 fragColor, in vec2 fragCoord ) flacColorが出力するRGBA-つまり、この変数に代入された値がそのピクセルの色となる fagCoordは現在処理対象となってるピクセルの座標 ++iResolution 描画領域の幅と高さ ++vec2 uv = frag…

Wifi接続出来ているのに、ブラウザにオフラインと表示されてしまう場合

今回の場合は時間のズレが原因だった。 タイムの設定をネットから取得するようにしたらオンラインになった。

OculusGoが起動しなくなった場合の対処法

【工場出荷状態に戻す】Oculsu Goを初期化(リセット)する方法 – cmblog コントローラ、電源ボタン、音量ボタンは正常に作用するが、ホーム画面が表示されず、ずっと起動後の点が3つの読み込み画面で止まったままになる、という症状が起きた。 改善できる…