Shader 各種Shader效果的合集

2021-09-05 02:03:55 字數 2165 閱讀 2848

1. the fresnel effect

參考: 

實用的shader:

shader "heroshader/character"    // a通道標記陣營區域, 1 表示有陣營顏色區域,0 表示非陣營顏色區域

// _emission("emission", range(0, 1)) = 0 // 自發光

_shadowlevel("shadow level", range(0, 10)) = 2.5 // 模擬ao

_rimrange("rim range", range(0, 1)) = 0 // rim範圍

_rimcolor ("rim color", color) = (1, 1, 1, 1) // rim相關

_flagcolor("flag color, intensity", color) = (0.5,0.5,0.5, 0) // 陣營資訊,a通道控制陣營顏色強度

} subshader

cgprogram

#pragma su***ce surf character nolightmap nodirlightmap

sampler2d _maintex;

half4 _tint;

half4 _rimcolor;

half4 _flagcolor;

half _rimrange;

// half _emission;

half _shadowlevel;

struct input ;

// 漫反射 + shadowlevel(模擬ao)+ 自發光

void surf (input in, inout su***ceoutput o)

// 參考dota2 shader的實現方案

half4 lightingcharacter (su***ceoutput s, half3 lightdir, half3 viewdir, half atten)

endcg

} fallback "diffuse"

}

shader "heroshader/character_nolight"    // a通道標記陣營區域

_emission("emission", range(0, 1)) = 0 // 自發光

_shadowlevel("shadow level", range(0, 10)) = 0 // 模擬ao

_flagcolor("flag color, intensity", color) = (0.5,0.5,0.5,1) // 陣營資訊

} cginclude

#include "unitycg.cginc"

sampler2d _maintex;

float4 _maintex_st;

half4 _tint;

half4 _flagcolor;

half _emission;

half _shadowlevel;

float4 vertex : position;

float2 uv : texcoord0;

}; struct v2f ;

v2f o;

o.vertex = unityobjecttoclippos(v.vertex);

o.uv = transform_tex(v.uv, _maintex);

o.worldpos = mul(unity_objecttoworld, v.vertex).xyz;

return o;

} // 陣營資訊 + shadowlevel(模擬ao)+ 自發光

float4 frag (v2f i) : sv_target

endcg

subshader

pass

} fallback "diffuse"

}

shader程式設計

2010 03 13 16 56 來自 組長 獨孤殘雲 至此shader的基本實現方法已經告一段落了,想進一步學習,強烈推薦nvidia 把http developer.download.nvidia.com shaderlibrary webpages shader library.html上的s...

Shader其他整理

1 culling陰影面剔除 culling陰影面剔除是一種優化技術。所有的多邊形都有正反兩面,而你永遠只能看見其中一面,不信的話拿張紙板或者一面鏡子看看你能不能同時看到兩面。通常多邊形面向螢幕裡面的背面,我們看不見,所以會將該面剔除。cull off 關閉陰影面剔除 cull back 剔除背面 ...

shader內建函式

一般預設都用弧度 radians degree 角度變弧度 degrees radian 弧度變角度 sin angle cos angle tan angle asin x arc sine,返回弧度 pi 2,pi 2 acos x arc cosine,返回弧度 0,pi atan y,x a...