欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

java白色_java-将精灵颜色更改为白色

发布时间:2025/3/11 编程问答 84 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java白色_java-将精灵颜色更改为白色 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

如果要将精灵中所有形状的颜色更改为白色,则唯一的方法是使用像素着色器并将所有非黑色的片段设置为黑色(我假设黑色在您的游戏中呈现为透明) )到白色.像这样:

varying vec4 v_color;

varying vec2 v_texCoords;

uniform sampler2D u_texture;

void main() {

vec4 color=v_color * texture2D(u_texture, v_texCoords);

if(color.r!=0 && color.g!=0 && color.b!=0){

gl_FragColor=vec4(1,1,1,1);

}

else{

gl_FragColor=color;

}

}

如果您很不幸并且使用的是opengl 1.0(固定管道),我建议您现在就开始使用gles 2.0.固定管道是从90’开始的,我们现在是2013年!

编码:

初始化:

ShaderProgram.pedantic = false;

ShaderProgram defaultShader=SpriteBatch.createDefaultShader();

ShaderProgram shaderWhiteTexture=new ShaderProgram(Gdx.files.internal("vertexShader.vs").readString(),Gdx.files.internal("fragShader.fs").readString());

渲染:

//Render the textures with the normal colors

spriteBatch.begin();

spriteBatch.draw(sprite1,sprite2,sprite3...);//or whatever code u use to render them

spriteBatch.end();

//Render the textures with the shader

spriteBatch.setShader(shaderWhiteTexture);

spriteBatch.begin();

spriteBatch.draw(sprite4,sprite5,sprite6...);//or whatever code u use to render them

spriteBatch.end();

spriteBatch.setShader(defaultShader);

着色器:

//vertexShader.vs:

attribute highp vec4 a_position;

attribute highp vec4 a_color;

attribute highp vec2 a_texCoord0;

uniform mat4 u_projTrans;

varying highp vec4 v_color;

varying highp vec2 v_texCoords;

void main() {

v_color = a_color;

v_texCoords = a_texCoord0;

gl_Position = u_projTrans * a_position ;

}

//fragShader.fs:

varying highp vec4 v_color;

varying highp vec2 v_texCoords;

uniform sampler2D u_texture;

void main() {

gl_FragColor = vec4(0.0);

highp vec4 color = texture2D(u_texture, v_texCoords);

if(color.a > 0.0) {

gl_FragColor = vec4(1.0,0,0,1.0);

}

}

由问题所有者编辑:现在可以使用透明纹理

添加了什么? :

1 . the highp precision to variables

2 . the fragmentShader file Main() fonction edited

总结

以上是生活随笔为你收集整理的java白色_java-将精灵颜色更改为白色的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。