Shader|网易面试题——“Point in Box”的实现 【GLSL】
【Shader|网易面试题——“Point in Box”的实现 【GLSL】】
参考自:stackoverflow
效果图:
文章图片
GLSL代码:
uniform sampler2D texUnit;
float insideBox(vec2 v, vec2 bottomLeft, vec2 topRight)
{
// 如果在矩形内的话,s应该为(1., 1.),即函数返回值应该为 1
vec2 s = step(bottomLeft, v) - step(topRight, v);
return s.x * s.y;
}void main()
{
vec4 color = vec4(.6, .3, .5, 1.);
vec2 texCoord = gl_FragCoord.xy/vec2(512., 512.);
float t = insideBox(texCoord, vec2(0.5, 0.5), vec2(1, 1));
gl_FragColor = t * color;
}
相关延伸 C/C++ 语言代码
推荐阅读
- PMSJ寻平面设计师之现代(Hyundai)
- 杜月笙的口才
- Linux下面如何查看tomcat已经使用多少线程
- 皮夹克
- 解读《摩根集团》(1)
- 绘本与写作
- 麦田社群
- 面对苦难——如何化解
- 葱爷说股20190107
- 2018国考外交部面试演讲不再难——只需把握好三点