美文网首页
shader基础及问题总结

shader基础及问题总结

作者: 园Flora | 来源:发表于2020-06-01 14:06 被阅读0次

--部分好的网站

--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

相关文章

网友评论

      本文标题:shader基础及问题总结

      本文链接:https://www.haomeiwen.com/subject/wpajzhtx.html