2012-10-12 21 views
1

如何在Kick.js着色器编辑器中添加第二个纹理制服,以便我的着色器可以使用它? Kick.js的URL是: http://www.kickjs.org/example/shader_editor/shader_editor.html如何在Kick.js着色器编辑器中添加第二个纹理制服

我修改了Kick.js中的默认着色器。它使用一个纹理。通过引用我在images.google.com上找到的图像,我成功使用“纹理”面板添加了第二个纹理。

现在的问题是'制服'面板不显示纹理采样器制服。我怎样才能让这套制服出现?

顺便说一句,这是我的着色器代码。但是,我不相信这个代码是问题的一部分。谢谢你的帮助。

#ifdef GL_ES 
precision highp float; 
#endif 
varying vec3 vColor; 
varying vec2 uv; 

uniform sampler2D video_tex; 
uniform sampler2D video_mask; 

void main(void) 
{ 
    vec4 samp_video = texture2D(video_tex,uv); 
    vec4 samp_mask = texture2D(video_mask,uv); 

    vec3 samp_virtual = vec3(1,0,0); 

    float alpha = samp_mask.r; 
    //gl_FragColor.rgb = (alpha)*samp_virtual.rgb + (1.0-alpha)*samp_video.rgb; 
    gl_FragColor.rgb = samp_mask.rgb; 
    gl_FragColor.a = 1.0; 
} 

回答

1

你的代码工作得很好:)

您需要的纹理绑定到统一的变量。该过程分为两步:

  1. 设置纹理(在“纹理”面板中)。 enter image description here
  2. 设置的制服制服变量绑定到纹理enter image description here
+0

我的问题是,我没有看到你有他们在这里显示制服的列表。 如何让video_tex制服像您所显示的那样出现? 我正在尝试发布图片。 http://imageshack.us/a/img651/8592/kickjs.jpg – cyrf

+0

GLSL编译器优化了samp_video和video_tex,因为它们未被使用。如果您修改代码以使用samp_video,则会出现制服,并且您可以绑定纹理。 – Mortennobel