簡體   English   中英

OpenGL ES 2-頂點的顏色和紋理

[英]OpenGL ES 2 - color and texture in vertex

我正在使用OpenGL ES 2.0編寫程序。 我需要在另一個上繪制紋理,例如鍾針。 紋理均為1024 x 1024,並且是透明的。 透明度始終呈現黑色,這使我無法將時鍾指針紋理疊加在時鍾上。

simple_fragment_shader.glsl

precision mediump float;

varying vec4 v_Color;

void main() 
{
    gl_FragColor = v_Color;
}

simple_vertex_shader.glsl

uniform mat4 u_Matrix;

attribute vec4 a_Position;  
attribute vec4 a_Color;

varying vec4 v_Color;

void main()                    
{                            
    v_Color = a_Color;

    gl_Position = u_Matrix * a_Position;
    gl_PointSize = 10.0;          
}          

texture_fragment_shader.glsl

precision mediump float; 

uniform sampler2D u_TextureUnit;                                        
varying vec2 v_TextureCoordinates;                                          

void main()                         
{                               
    gl_FragColor = texture2D(u_TextureUnit, v_TextureCoordinates);    
}

texture_vertex_shader.glsl

uniform mat4 u_Matrix;

attribute vec4 a_Position;  
attribute vec2 a_TextureCoordinates;

varying vec2 v_TextureCoordinates;

void main()                    
{                            
    v_TextureCoordinates = a_TextureCoordinates;          
    gl_Position = u_Matrix * a_Position;    
}          

我是OpenGL的新手,我使用過紋理,但是我不知道如何獲得透明度。

另外,如果有幫助,我會遵循The Pragmatic Programmers Kevin Brothaler的OpenGL ES 2 for Android的方法。

如果不進行以下設置,則可能會忽略Alpha值。

glEnable(GL_BLEND);

glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);

希望對您有所幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM