Shader 自發光效果

2021-10-04 09:46:04 字數 1509 閱讀 3112

//表面貼圖 預設灰色

_color("color", color) = (0, 0, 0, 1) //為貼圖附加的顏色 預設為白色

_atmocolor("atmosphere color", color) = (0, 0.4, 1.0, 1) //光暈顏色

_size("size", float) = 0.1 //光暈範圍

_outlightpow("falloff",float) = 5 //光暈平方引數

_outlightstrength("transparency", float) = 15 //光暈強度

}subshader

cull back

//cg程式開始

cgprogram

//宣告頂點著色器函式為vert

#pragma vertex vert

//宣告片段著色器函式為frag

#pragma fragment frag

#include "unitycg.cginc"

//函式可能用到的引數

uniform sampler2d _maintex;

uniform float4 _maintex_st;

uniform float4 _color;

uniform float4 _atmocolor;

uniform float _size;

uniform float _outlightpow;

uniform float _outlightstrength;

//頂點著色器的輸出

struct vertexoutput

;//頂點著色器函式

//片段著色器函式

float4 frag(vertexoutput i) :color

endcg

}//通道2: 用於生成模型外部的光暈

pass

cull front

blend srcalpha one

cgprogram

#pragma vertex vert

#pragma fragment frag

#include "unitycg.cginc"

uniform float4 _color;

uniform float4 _atmocolor;

uniform float _size;

uniform float _outlightpow;

uniform float _outlightstrength;

struct vertexoutput

;float4 frag(vertexoutput i):color

endcg}}

fallback "diffuse"

}

shader例項 物體描邊自發光

1。思路 面向攝像機的物體,它的表面法線 normal 和視角向量 viewdir 的 夾角 越靠近邊緣就越大。那麼就可以根據這個夾角進行處理,夾角越大,那麼發射光越強,就可以實現我們想要的效果。2。選擇shader 在這裡因為是處理表面的各個點,所以使用su ce shader比較方便。3。要使用...

shader例項(四)物體描邊 自發光

經過一段時間的慢慢學習,感覺著色器真的非常神奇。下面是通過模型的自發光再根據初中的數學知識實現我們想要的描邊效果。首先看示意圖 1。思路 面向攝像機的物體,它的表面法線 normal 和視角向量 viewdir 的 夾角 越靠近邊緣就越大。那麼就可以根據這個夾角進行處理,夾角越大,那麼發射光越強,就...

shader 邊緣發光

當視角方向與法線方向垂直時,頂點座標位置即為邊緣位置。在properties中定義以下變數 xraycolor xray color color 1,1,1,1 xraypower xray power range 0.0001,3 0.1 在pass中定義以下變數 float4 rimcolor ...