|
图片是在人家的GLSL代码基础上做的修改,要达到的是红色区域直接投射到窗口背景上。下面是GLSL代码:
fragmentShader: " varying highp vec2 qt_TexCoord0; uniform highp float qt_Opacity; uniform highp float _lightPosX; uniform highp float _lightPosY; uniform highp float diffuseBoost; uniform highp float lightIntensity; uniform highp float colorizeAmount; uniform highp vec4 colorizeColor; uniform bool switchX; uniform bool switchY;
void main(void) { highp vec2 pixPos = qt_TexCoord0; highp vec3 normal = normalize(vec3(0.0,0.0,1.0)); highp float xp = float(switchX) * (_lightPosX - pixPos.x) + float(!switchX) * (pixPos.x - _lightPosX); highp float yp = float(switchY) * (_lightPosY - pixPos.y) + float(!switchY) * (pixPos.y - _lightPosY); highp vec3 light_pos = normalize(vec3(xp, yp, lightIntensity));
highp float diffuse = max(dot(normal, light_pos), 0.2); diffuse *= (1.0 + diffuseBoost);
highp vec4 color = vec4(diffuse * vec3(1.0,1.0,1.0), 0.0);
gl_FragColor = color * qt_Opacity; } "
希望大神给予指点。谢谢
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|