Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OpenGL中的颜色不透明度_Java_Opengl Es_Colors - Fatal编程技术网

Java OpenGL中的颜色不透明度

Java OpenGL中的颜色不透明度,java,opengl-es,colors,Java,Opengl Es,Colors,我想知道如何在OpenGL中打印对象的局部颜色。我的意思是,我希望能够编辑该颜色的不透明度级别,但我不知道怎么做。我只知道如何设置整个纹理的不透明度: gl.glColor4f(red, green, blue, **opacity**); 但是有了这个功能,我将纹理变成透明的,我只想编辑我给它的颜色级别 有什么建议吗?我在Android上使用OpenGL ES。我可以考虑这样做,但在将纹理传递给OpenGL之前,需要在CPU中进行一些预渲染,即使用32位纹理,然后在构建的例程中,当您输入要设

我想知道如何在OpenGL中打印对象的局部颜色。我的意思是,我希望能够编辑该颜色的不透明度级别,但我不知道怎么做。我只知道如何设置整个纹理的不透明度:

gl.glColor4f(red, green, blue, **opacity**);
但是有了这个功能,我将纹理变成透明的,我只想编辑我给它的颜色级别


有什么建议吗?我在Android上使用OpenGL ES。

我可以考虑这样做,但在将纹理传递给OpenGL之前,需要在CPU中进行一些预渲染,即使用32位纹理,然后在构建的例程中,当您输入要设置其不透明度的颜色参数时,您只需运行一个循环来检查特定颜色,并将其alpha分量设置为您想要的任何颜色

// Algorithm Only
void setOpacityOfColor(char r, char g, char b, char opacToSet, RGBAType image[][]){

    for(int x = 0; x < image.width; x++){
        for(int y = 0; y < image.height; y++){
            if(image[x][y].r == r && image[x][y].g == g && image[x][y].b == b{
                image.alpha = opacToSet;
            }
        }
    }

}
//仅限算法
void setOpacityOfColor(字符r、字符g、字符b、字符opacToSet、RGBAType图像[][])){
对于(int x=0;x
如果我真正理解你的问题,我认为这是正确的

还有一个好处是,如果您以后想将其设置回不透明,它会保留原始颜色。如果您真的想完全更改颜色,您也可以这样做,它看起来更像以下内容:

// Algorithm Only
void setOpacityOfColor(char r, char g, char b, char newR, char newG, char newB, RGBAType image[][]){

    for(int x = 0; x < image.width; x++){
        for(int y = 0; y < image.height; y++){
            if(image[x][y].r == r && image[x][y].g == g && image[x][y].b == b{
                image.r = newR;
                image.g = newG;
                image.b = newB;
            }
        }
    }

}
//仅限算法
void setOpacityOfColor(char r、char g、char b、char newR、char newG、char newB、RGBAType image[]{
对于(int x=0;x
您的问题不是很清楚,您是否尝试过使用glColor3f?虽然这是一个很酷的想法,但实际上我并不介意(我在这里吐痰)假设OpenGL ES或完整的OpenGL实现都没有提供这种类型的操作符/操作。您必须在片段着色器中执行此操作:检查颜色是否等于所需的颜色,然后调整alpha。