日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

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

發布時間:2025/3/11 编程问答 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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-将精灵颜色更改为白色的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。