Shader 函数可视化

栏目: 后端 · 发布时间: 7年前

内容简介:动画演示:

正弦运动y = sin(x)

Shader 函数可视化

余弦运动y = cos(x)

Shader 函数可视化

动画演示:

Shader 函数可视化

二、smoothstep

在两个值之间取埃尔米特插值(Hermite interpolation)link

描述:在 edge0edge1 之间取一个平缓的差值,在我们需要一个平滑的渐变的时候特别有用。

使用:当前值小于 edge0 ,取值为 0 。当前值大于 edge1 ,取值 1 。在这个区间内,取 edge0edge1 的差值。

float smoothstep(float edge0, float edge1, float x)  
vec2 smoothstep(vec2 edge0, vec2 edge1, vec2 x)  
vec3 smoothstep(vec3 edge0, vec3 edge1, vec3 x)  
vec4 smoothstep(vec4 edge0, vec4 edge1, vec4 x)

vec2 smoothstep(float edge0, float edge1, vec2 x)  
vec3 smoothstep(float edge0, float edge1, vec3 x)  
vec4 smoothstep(float edge0, float edge1, vec4 x)
复制代码

它等同于:

genType t;  /* Or genDType t; */
t = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);
return t * t * (3.0 - 2.0 * t);
复制代码

可视化呈现: y = smoothstep(0.0,1.0,x);

Shader 函数可视化

将值限制在两个其他值谷歌之间

三、clamp

将值限制在两个其他值之间。link

说明: clamp() 返回 minValmaxVal 范围内的值。返回值计算:min(max(x, minVal), maxVal)。

使用:

float clamp(float x, float minVal, float maxVal)  
vec2 clamp(vec2 x, vec2 minVal, vec2 maxVal)  
vec3 clamp(vec3 x, vec3 minVal, vec3 maxVal)  
vec4 clamp(vec4 x, vec4 minVal, vec4 maxVal)

vec2 clamp(vec2 x, float minVal, float maxVal)  
vec3 clamp(vec3 x, float minVal, float maxVal)  
vec4 clamp(vec4 x, float minVal, float maxVal)
复制代码

可视化呈现: y = clamp(x,0.,1.);

Shader 函数可视化

四、step

通过比较两个值生成步进函数。link

说明: step() 通过将 xedge 进行比较来生成步进函数。对于返回值 i ,如果 x[i] < edge[i] 则返回 0.0 ,否则返回 1.0

使用:

float step(float edge, float x)  
vec2 step(vec2 edge, vec2 x)  
vec3 step(vec3 edge, vec3 x)  
vec4 step(vec4 edge, vec4 x)

vec2 step(float edge, vec2 x)  
vec3 step(float edge, vec3 x)  
vec4 step(float edge, vec4 x)
复制代码

可视化呈现: y = step(0.5,x);

Shader 函数可视化

五、mix

将值限制在两个其他值之间。link

描述:在 xy 之间执行线性插值,使用 a 来计算它们之间的权重。返回值的计算方式是: x*(1−a)+y*a

使用:

float mix(float x, float y, float a)  
vec2 mix(vec2 x, vec2 y, vec2 a)  
vec3 mix(vec3 x, vec3 y, vec3 a)  
vec4 mix(vec4 x, vec4 y, vec4 a)

vec2 mix(vec2 x, vec2 y, float a)  
vec3 mix(vec3 x, vec3 y, float a)  
vec4 mix(vec4 x, vec4 y, float a)
复制代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

大数据之路

大数据之路

阿里巴巴数据技术及产品部 / 电子工业出版社 / 2017-7-1 / CNY 79.00

在阿里巴巴集团内,数据人员面临的现实情况是:集团数据存储已经达到EB级别,部分单张表每天的数据记录数高达几千亿条;在2016年“双11购物狂欢节”的24小时中,支付金额达到了1207亿元人民币,支付峰值高达12万笔/秒,下单峰值达17.5万笔/秒,媒体直播大屏处理的总数据量高达百亿级别且所有数据都需要做到实时、准确地对外披露……巨大的信息量给数据采集、存储和计算都带来了极大的挑战。 《大数据......一起来看看 《大数据之路》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换