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;
}
下一步是勾边。
查看全文
相关阅读:
idea git 操作
1
python 迭代器/生成器/迭代对象
python 中的type
systemd 配置文件
python 中类的初始化过程
mysql主从错误180301
从零开始搭建k8s-20180301
kubernetes role
Java程序员毕业两年自述
原文地址:https://www.cnblogs.com/Pointer/p/34996.html
最新文章
数据库设计方法、规范与技巧
html的map自适应
递归
数组与对象
0-ajax操作json(番外篇)
1-碎碎记
输入验证(非插件)
table表头thead固定
4-Bom&Dom总结篇
3-Dom
热门文章
Grafana Prometheus系统监控Redis服务
业务,大数据监控平台搭建
Grafana+Influxdb+Telegraf监控mysql
大数据监控平台实践之路
虚拟机中部署项目,与本地连接
Linux性能分析:生产环境服务器变慢,诊断思路和性能评估
ElasticSearch
Quartz:定时任务工具类
HttpClientUtils:Http请求工具类
大厂大数据相关架构文章
Copyright © 2011-2022 走看看