找回密码
 立即注册
收起左侧

QML中使用GLSL编程

1
回复
4537
查看
[复制链接]
累计签到:63 天
连续签到:1 天
来源: 2014-2-19 10:00:40 显示全部楼层 |阅读模式
图片是在人家的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
回复

使用道具 举报

累计签到:63 天
连续签到:1 天
2014-2-20 09:46:45 显示全部楼层
咋没人回答呢?是没有人这么做过吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了