Shader|网易面试题——“Point in Box”的实现 【GLSL】

【Shader|网易面试题——“Point in Box”的实现 【GLSL】】
参考自:stackoverflow

效果图:
Shader|网易面试题——“Point in Box”的实现 【GLSL】
文章图片


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++ 语言代码

    推荐阅读