1
我所尋找的是下面的...我有一個方形的圖像上轉了一圈,alpha爲0在角落渲染兩個紋理與混合和alpha測試
http://dl.dropbox.com/u/1401029/circle.png
,也是一個方陰影,alpha爲0其他地方
http://dl.dropbox.com/u/1401029/image.png
嗯,我想有作爲最終結果,這兩種的混合渲染,再加上沒有被人塔的陰影在圈子外面被定罪
我怎麼能做到這一點? :)
編輯:這是到目前爲止我的代碼(T 2圈,T1陰影)
gl.glTexEnvf(GL2.GL_TEXTURE_ENV, GL2.GL_TEXTURE_ENV_MODE, GL2.GL_MODULATE);
gl.glEnable(GL2.GL_ALPHA_TEST);
gl.glAlphaFunc(GL2.GL_GREATER, 0.1f);
t2.enable(gl);
t2.bind(gl);
t2.setTexParameteri(gl, GL2.GL_TEXTURE_MIN_FILTER, GL2.GL_LINEAR);
t2.setTexParameteri(gl, GL2.GL_TEXTURE_MAG_FILTER, GL2.GL_LINEAR);
a = 2.0f;
gl.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
gl.glBegin(GL2.GL_QUADS);
gl.glTexCoord2f(0, 0);
gl.glVertex3f(-a, -a, 0);
gl.glTexCoord2f(0, 1);
gl.glVertex3f(-a, a, 0);
gl.glTexCoord2f(1, 1);
gl.glVertex3f(a, a, 0);
gl.glTexCoord2f(1, 0);
gl.glVertex3f(a, -a, 0);
gl.glEnd();
t2.disable(gl);
gl.glDisable(GL2.GL_ALPHA_TEST);
gl.glDisable(GL2.GL_DEPTH_TEST);
gl.glEnable(GL2.GL_BLEND);
gl.glBlendFunc (GL2.GL_SRC_ALPHA, GL2.GL_ONE_MINUS_SRC_ALPHA);
t1.enable(gl);
t1.bind(gl);
t1.setTexParameteri(gl, GL2.GL_TEXTURE_MIN_FILTER, GL2.GL_LINEAR);
t1.setTexParameteri(gl, GL2.GL_TEXTURE_MAG_FILTER, GL2.GL_LINEAR);
gl.glBegin(GL2.GL_QUADS);
gl.glTexCoord2f(0, 0);
gl.glVertex3f(-a, -a, 0);
gl.glTexCoord2f(0, 1);
gl.glVertex3f(-a, a, 0);
gl.glTexCoord2f(1, 1);
gl.glVertex3f(a, a, 0);
gl.glTexCoord2f(1, 0);
gl.glVertex3f(a, -a, 0);
gl.glEnd();
t1.disable(gl);
gl.glDisable(GL2.GL_BLEND);
gl.glEnable(GL2.GL_DEPTH_TEST);
但它迄今沒有工作,影子得到圓上完全呈現,在這裏我錯了?