当前位置:网站首页>Cartoon shader
Cartoon shader
2022-06-26 00:56:00 【KillJUMP】
Shader "Killian/ToonShader"
{
Properties
{
_Albedo("Albedo",Color) = (1,1,1,1)
_Shaders("Shades",Range(1,20)) = 3
_InkColor("InkColor",Color)=(0,0,0,0)
_InkSize("InkSize",float)=1.0
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100
Pass
{
Cull Front
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float3 normal:NORMAL;
};
struct v2f
{
float4 vertex : SV_POSITION;
};
float4 _InkColor;
float _InkSize;
v2f vert(appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex+ _InkSize*v.normal);
return o;
}
fixed4 frag(v2f i) : SV_Target
{
return _InkColor;
}
ENDCG
}
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float3 normal:NORMAL;
};
struct v2f
{
float4 vertex : SV_POSITION;
float3 worldNormal:TEXCOORD0;
};
float4 _Albedo;
float _Shaders;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.worldNormal = UnityObjectToWorldNormal(v.normal);
return o;
}
fixed4 frag(v2f i) : SV_Target
{
float cosineAngle = dot(normalize(i.worldNormal),normalize(_WorldSpaceLightPos0.xyz));
cosineAngle = max(cosineAngle, 0.0);
cosineAngle = floor(cosineAngle * _Shaders )/ _Shaders;
return _Albedo * cosineAngle;
}
ENDCG
}
}
}
边栏推荐
- SQL to retain the maximum value sorted by a field
- Preorder and middle order traversal of forest
- How to design the product roadmap?
- DPVS fullnat mode kept
- Analyze the five root causes of product development failure
- Phoenix index
- Methods to realize asynchrony
- How product managers control the progress of product development
- mtb13_Perform extract_blend_Super{Candidate(PrimaryAlternate)_Unique(可NULL过滤_Foreign_index_granulari
- Spark log analysis
猜你喜欢

flink报错:No ExecutorFactory found to execute the application

Compiler Telegram Desktop end (tdesktop) en utilisant vs2022

案例:绘制Matplotlib动态图

Vscode shortcut

Penetration tool -burpsuite

ciscn_2019_en_2

“Method Not Allowed“,405问题分析及解决

Comprehensive introduction to Simulink solver

Web學習之TypeScript
![Chapter VI exercises (678) [microcomputer principles] [exercises]](/img/20/b02bccebfb245d4710f6f48dd0f5e4.png)
Chapter VI exercises (678) [microcomputer principles] [exercises]
随机推荐
"Method not allowed", 405 problem analysis and solution
1-9network configuration in VMWare
MySQL custom function instance
QT custom QSlider with cursor
认识map
[TSP problem] solving traveling salesman problem based on Hopfield neural network with matlab code
How to design the product roadmap?
使用VS2022编译Telegram桌面端(tdesktop)
sqlserver 区分字符串中字母大小写
Preorder and middle order traversal of forest
1-10vmware builds customized network architecture
Should group by be used whenever aggregate functions are used in SQL?
Leetcode 513. Find the value in the lower left corner of the tree
Redisson 3.17.4 release
Middle order clue binary tree
jarvisoj_level2_x64
Electronic training.
Methods of modifying elements in JS array
C # operate with MySQL
C#使用MySql进行操作