着色器效果(Shader Effect)
注意
最后一次构建:2014年1月20日下午18:00。
这章的源代码能够在assetts folder找到。
http://labs.qt.nokia.com/2012/02/02/qt-graphical-effects-in-qt-labs/
http://labs.qt.nokia.com/2011/05/03/qml-shadereffectitem-on-qgraphicsview/
http://qt-project.org/doc/qt-4.8/declarative-shadereffects.html
http://www.opengl.org/registry/doc/GLSLangSpec.4.20.6.clean.pdf
http://www.khronos.org/registry/gles/specs/2.0/GLSL_ES_Specification_1.0.17.pdf
着色器允许我们利用SceneGraph的接口直接调用在强大的GPU上运行的OpenGL来创建渲染效果。着色器使用ShaderEffect与ShaderEffectSource元素来实现。着色器本身的算法使用OpenGL Shading Language(OpenGL着色语言)来实现。
实际上这意味着你需要混合使用QML代码与着色器代码。执行时,会将着色器代码发送到GPU,并在GPU上编译执行。QML着色器元素(Shader QML Elements)允许你与OpenGL着色器程序的属性交互。
让我们首先来看看OpenGL着色器。