Shader

手前のオブジェクトだけテクスチャを使ってマスクをかける

まずカメラを二つ作成して同じ位置に用意する。 (奥のほうだけレンダリングするカメラと、手前のオブジェクトだけをレンダリングするカメラ)奥のほうだけレンダリングするカメラをcam_0とする。 手前のオブジェクトだけをレンダリングするカメラをcam_1とす…

Soft Edge UnlitのHSV(色相,彩度,明度)をいじれるように改造

Soft Edge Unlitをたまに使うのですがそれをHSV(色相,彩度,明度)をいじれるように改造したShader Shader "Custom/Soft Edge Unlit_HSV" { Properties{ _Color("Main Color", Color) = (1, 1, 1, 1) _MainTex("Base (RGB) Alpha (A)", 2D) = "white" {} _Cuto…

RimLightingで出した値をAlpha値として使う(ShaderFrogeを使って解説)

RimLighting(リムライティング)とはオブジェクトの後ろからライトが当たっていてオブジェクトの輪郭線に光が漏れている現象です。 下記はRimLightingで出した値をAlpha値として使い、輪郭以外を透明にしています。今回はこちらを実装と解説していきたいと思…

OutLineShader

OutLineShaderについて書いていきたいと思います。 ShaderでOutLineを作る方法はいくつかあります。 一つは 視線ベクトルと法線ベクトルの内積を取って結果が0.0(ベクトル同士が垂直)になる部分を黒くしてOutLineを表現する方法です。 下記URLにこの手法の詳…

ShaderForgeを使ったImageEffectの作り方

今回はShaderForgeを使ってImageEffectを作っていきたいと思います。 ShaderForgeはUnityでShaderをプロシージャルにいじれるAssetです。 ノードで組んだあとにShaderの中身も見れるのでShader勉強ツールとしてもかなりオススメです。 https://www.assetstor…

GeometryShaderでWireFrame

今回はGeometryShaderでWireFrameを実装していきます。 Shader "Wireframe" { Properties { _MainTex("Texture", 2D) = "white" {} _Line("Line", Range(0., 0.34)) = 0.02 _Color("color", color) = (1., 1., 1., 1.) } SubShader { Tags{ "RenderType" = "…

GeometryShaderでFlatShading

前回に引き続きGeometryShaderを使ってシェーディングを実装していきます。 今回実装するShaderはFlatShadingと呼ばれるシェーデイング方法になります。 FlatShadingとは 簡単に説明すると陰影の計算をPrimitiveごとに算出する方法です。 Shader "FlatShadin…

UnityでGeometryShaderの基本実装

GeometryShaderとは DirectX10のShader Model4.0で加わった新しいステージで Primitive(ポリゴンの面)ごとに何かしらの処理が出来る便利なShaderです。 GeometryShaderの具体的な使い方としては ・各面ごとに陰影を計算したり ・各面ごとにポリゴンを動かし…

Vertex Animation Texture (CINEMA4D > Houdini > Unity)

Vertex Animation TextureをUnityで使えるという情報があったので試してみましたVertex Animation Textureとは?VertexShaderの各頂点の位置の値をテクスチャとして読み込んでVertexShaderで各頂点を動かせるという便利な方法Unityで頂点アニメーションをす…