zoukankan
html css js c++ java
Toon Shading, step 1
学以致用。:)
不过略有不同的是我没有采用根据光线强度设置纹理坐标的方式,而是根据光线强度直接确定的当前象素的颜色值。
SHADER代码如下:
VertexShader
//
-----------------------------------------------------------------------------
//
vertex shader
//
-----------------------------------------------------------------------------
uniform vec3 LightPosition;
varying
float
diffuse;
void
main(
void
)
{
vec3 ecPosition
=
vec3 (gl_ModelViewMatrix
*
gl_Vertex);
vec3 tnorm
=
normalize(gl_NormalMatrix
*
gl_Normal);
vec3 lightVec
=
normalize(LightPosition
-
ecPosition);
diffuse
=
max(dot(lightVec, tnorm),
0.0
);
gl_Position
=
ftransform();
}
FragmentShader
//
-----------------------------------------------------------------------------
//
fragment shader
//
-----------------------------------------------------------------------------
varying
float
diffuse;
void
main(
void
)
{
vec4 color;
if
(diffuse
>
0.66
)
color
=
vec4(
0.75
,
0.75
,
0.75
,
1
);
else
if
(diffuse
>
0.33
)
color
=
vec4(
0.63
,
0.63
,
0.63
,
1
);
else
color
=
vec4(
0.50
,
0.50
,
0.50
,
1
);
gl_FragColor
=
color;
}
下一步是勾边。
查看全文
相关阅读:
7.2集训模拟赛(莫名其妙的比赛......)
CF1042B Vitamins
P1629 邮递员送信
P1726 上白泽慧音
P2341 [USACO03FALL][HAOI2006]受欢迎的牛 G
最短路
7.1集训模拟赛5(......)
求最大公约数和最小共倍数的方法(除穷举)
6.29集训模拟赛3(暴力骗分的一天,嘿嘿)
爬虫认证ES用户,并访问api
原文地址:https://www.cnblogs.com/Pointer/p/34996.html
最新文章
Java基础IO类
并发工具类
并发容器
原子变量类Atomic*
并发核心机制
内存模型
线程池
apache commons-lang
开源工具包使用
Jdbc操作
热门文章
缓存框架学习
洛谷P4884 多少个1?
洛谷P1273 有线电视网
洛谷P2294 [HNOI2005]狡猾的商人
CF1042D Petya and Array
AT4142 [ARC098B] Xor Sum 2
洛谷P1938 [USACO09NOV]Job Hunt S
洛谷P3177 [HAOI2015]树上染色
最大子矩阵问题&悬线法小结
P3052 [USACO12MAR]Cows in a Skyscraper G
Copyright © 2011-2022 走看看