charles_gz 2014-02-20 01:43
浏览 1895

QML中使用shader编程达到光照效果

在用QML做界面工作,现在有个需求是灯光效果参照digia公司的例子做的修改(图片在这还没弄明白怎么上传,后面的网址上有图片信息:http://bbs.csdn.net/topics/390712006),
最终要达到的效果是图片中红色矩形框不要,只要里面的黄色区域的光点。也就是说在窗口中有个pathView光点直接打到pathView的每个item上。
这个需求是否可以做到?应该怎么做?

当然铺满全屏看上去就没有矩形框了,但是那样使得界面内所有的内容颜色变白。小弟第一次接触shader编程希望做过的朋友给予指点,谢谢了!

目前的代码如下:
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 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, 0.03));

    highp float diffuse = max(dot(normal, light_pos), 0.2);

    highp vec4 color = vec4(diffuse *vec3(1.0,1.0,1.0), 0.0);

    gl_FragColor = color * qt_Opacity;
}
"
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 乘性高斯噪声在深度学习网络中的应用
    • ¥15 运筹学排序问题中的在线排序
    • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
    • ¥30 求一段fortran代码用IVF编译运行的结果
    • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
    • ¥15 C++ 头文件/宏冲突问题解决
    • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
    • ¥50 安卓adb backup备份子用户应用数据失败
    • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
    • ¥30 python代码,帮调试,帮帮忙吧