2012-10-12 60 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