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;
}
下一步是勾边。
查看全文
相关阅读:
如何在VIM中编辑并保存退出!!!
MapReduce---数据清洗
构建之法阅读笔记03
人月神话阅读笔记03
学习进度报告16
大道至简阅读笔记03
大道至简阅读笔记02
个人总结
大道至简阅读笔记01
学习进度报告15
原文地址:https://www.cnblogs.com/Pointer/p/34996.html
最新文章
springboot项目启动后就闪退
前后端打包+nginx报错问题汇总
3
mapreduce清洗数据简要
大型数据库技术实验六 实验6:Mapreduce实例——WordCount
本学期课程总结
代码大全阅读笔记03
代码大全阅读笔记02
代码大全阅读笔记01
第十六周学习进度
热门文章
计算最长英语单词链
第十五周学习进度
MyElipse10安装包及破解教程
Python爬虫--慕课课程列表爬取--scrapy框架(安装以及搭建)
python爬虫--北京市政信件列表
今日进度
RDD转化操作记录(持续更新)
sbt安装遇到的问题
scala编程-计算级数
Scala在Ubuntu虚拟机中下载安装及其环境配置+helloworld输出。
Copyright © 2011-2022 走看看