Glsl 如何在gstreamer';GLS着色器元素?
gstreamer有一个名为Glsl 如何在gstreamer';GLS着色器元素?,glsl,shader,gstreamer,Glsl,Shader,Gstreamer,gstreamer有一个名为glshader的元素,其属性类似于fragment和vertex。该文档包括一个普通片段着色器示例,但从1.16开始,不包括顶点着色器示例 应该使用什么样的骨架来开始编写我自己的顶点着色器,以便与glshader元素一起使用?虽然文档目前不多,但您可以在中找到一个示例 看起来像 attribute vec4 a_position; attribute vec2 a_texcoord; varying vec2 v_texcoord; void main() {
glshader
的元素,其属性类似于fragment
和vertex
。该文档包括一个普通片段着色器示例,但从1.16开始,不包括顶点着色器示例
应该使用什么样的骨架来开始编写我自己的顶点着色器,以便与glshader元素一起使用?虽然文档目前不多,但您可以在中找到一个示例 看起来像
attribute vec4 a_position;
attribute vec2 a_texcoord;
varying vec2 v_texcoord;
void main()
{
gl_Position = a_position;
v_texcoord = a_texcoord;
}
测试着色器的良好起点是
gst-launch-1.0 gltestsrc ! glshader fragment="\"`frag_shader`\"" vertex="\"`vert_shader`\"" ! glimagesink
如果添加v_texcoord.y*=0.8代码>您可以演示导入着色器的几何体glshader是一个顶部带有v=0
的矩形,这与Unity解释纹理坐标的方式相反(Unity使用v=0表示底部,除非在使用不同约定的系统上接近金属)。类似于v_texcoord.y*=2.0的实验代码>演示默认的包裹模式似乎是将\u夹紧到\u边缘