--部分好的网站
--cocos官网http://store.cocos.com/stuff/category/12/score_count.html
--一些大师的分享地http://www.effecthub.com/#userconsent#
--纯shader纹理http://glslsandbox.com/#userconsent#
--游戏素材下载http://www.6m5m.com/index.php#userconsent#
--博客,框架一些效果的来源http://www.cnblogs.com/hcbin/archive/2012/08/03/2621267.html
--特效视频http://i.youku.com/u/UNjE2NDAyODc2?qq-pf-to=pcqq.c2c
--一些基本效果,框架从这里下载过http://www.oschina.net/code/snippet_1159242_38156
https://blog.csdn.net/wade333777/article/details/81608117 ==shader 源码分析
https://blog.csdn.net/jxw167/article/details/54381390?utm_source=blogxgwz4 ==shader 源码分析2
https://thebookofshaders.com/02/?lan=chshader的书
https://www.jianshu.com/p/8cc093d4085dlua 里的shader
https://gameinstitute.qq.com/community/detail/120509creator 里的shader
--shader常用语法
abs 计算输入值的绝对值。
acos 返回输入值反余弦值。
all 测试非0值。
any 测试输入值中的任何非零值。
asin 返回输入值的反正弦值。
atan 返回输入值的反正切值。
atan2 返回y/x的反正切值。
ceil 返回大于或等于输入值的最小整数。
clamp 把输入值限制在[min,max]范围内。
clip 如果输入向量中的任何元素小于0,则丢弃当前像素。
cos 返回输入值的余弦。cosh 返回输入值的双曲余弦。
cross 返回两个3D向量的叉积。
ddx 返回关于屏幕坐标x轴的偏导数。
ddy 返回关于屏幕坐标y轴的偏导数。
degrees 弧度到角度的转换determinant 返回输入矩阵的值。
distance 返回两个输入点间的距离。
dot 返回两个向量的点积。
exp 返回以e为底数,输入值为指数的指数函数值。
exp2 返回以2为底数,输入值为指数的指数函数值。
faceforward 检测多边形是否位于正面。
floor 返回小于等于x的最大整数。
fmod 返回a/b的浮点余数。
frac 返回输入值的小数部分。
frexp 返回输入值的尾数和指数
fwidth 返回 abs(ddx(x)+abs(ddy(x))。
isfinite 如果输入值为有限值则返回true,否则返回false。
isinf 如何输入值为无限的则返回true。
isnan 如果输入值为NAN或QNAN则返回true。
ldexp frexp的逆运算,返回 x*2^exp。
len/lenth 返回输入向量的长度。
lerp 对输入值进行插值计算。
lit 返回光照向量(环境光,漫反射光,镜面高光,1)。
log 返回以e为底的对数。
log10 返回以10为底的对数。
log2 返回以2为底的对数。
max 返回两个输入值中较大的一个。
min 返回两个输入值中较小的一个。
modf 把输入值分解为整数和小数部分。
mul 返回输入矩阵相乘的积。
normalize 返回规范化的向量,定义为 x/length(x)。
pow 返回输入值的指定次幂。
radians 角度到弧度的转换。
reflect 返回入射光线i对表面法线n的反射光线。
refract 返回在入射光线i,表面法线n,折射率为eta下的折射光线v。
round 返回最接近于输入值的整数。
rsqrt 返回输入值平方根的倒数。
saturate 把输入值限制到[0,1]之间。
sign 计算输入值的符号。
sin 计算输入值的正弦值。
sincos 返回输入值的正弦和余弦值。
sinh 返回x的双曲正弦。
smoothstep 返回一个在输入值之间平稳变化的插值。
sqrt 返回输入值的平方根。
step 返回(x>=a)?1:0。
tan 返回输入值的正切值。
fanh 返回输入值的双曲线切线。
transpose 返回输入矩阵的转置。
tex1D*1D纹理查询。
tex2D*2D纹理查询。
tex3D*3D纹理查询。
texCUBE*立方纹理查询。
--运用中添加fract(x):取小数部分
Shader遇到的问题:
1、传参:
uniform :可变的传入的参数
uniform float TouM; --float 类型记得写1.0这样
uniform vec4 Lightcolor; --输入的时候 cc.vec4(1.0,1.0,1.0,0.5)
2、时间参数:
cocos有自带的传入shader的时间,CC_Time -四维数组
详细可以去看CCCLProgram.cpp源码

3、真机的报错
电脑上可以,但是真机会报错

==》需要使用

4、获取需要使用shader的纹理:
精灵可以直接setGLProgram,但是imgageview和button 必须先获取纹理然后获取精灵才可以
if spr:getDescription() == "ImageView" or spr:getDescription() == "Button" then
spr = spr:getVirtualRenderer():getSprite()
end
网友评论