欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

OpenGl第四章紋理詳細(xì)亮度調(diào)整代碼注釋 - 新聞資訊 - 云南小程序開(kāi)發(fā)|云南軟件開(kāi)發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開(kāi)發(fā)/軟件開(kāi)發(fā)

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!

您當(dāng)前位置>首頁(yè) » 新聞資訊 » 技術(shù)分享 >

OpenGl第四章紋理詳細(xì)亮度調(diào)整代碼注釋

發(fā)表時(shí)間:2020-10-19

發(fā)布人:葵宇科技

瀏覽次數(shù):39


OpenGl應(yīng)用紋理在上一個(gè)正方體中常識(shí)簡(jiǎn)單的添加了一個(gè)紋理,這一章主如果經(jīng)由過(guò)程設(shè)置三個(gè)面的紋理來(lái)進(jìn)行具體的進(jìn)修;
前次紋理的調(diào)用是在onSurfaceCreated  的時(shí)刻才調(diào)用,如今,在Render中當(dāng)履行 onSurfaceChanged的時(shí)刻,就對(duì)紋理進(jìn)行初始化操作
/**
* 這是來(lái)進(jìn)行紋理初始化的辦法
* @param gl
*/
private void LoadTextures(GL10 gl) {
// create textures
gl.glEnable(GL10.GL_TEXTURE_2D);//起首啟用紋理
texturesBuffer = IntBuffer.allocate(3);
gl.glGenTextures(3, texturesBuffer);  //生成紋理的數(shù)量

// 這個(gè)處所加載一張圖片來(lái)做為我們的背景
Bitmap texture = BufferUtil.getTextureFromBitmapResource(context, R.drawable.crate);

// 設(shè)置第一個(gè)紋理
gl.glBindTexture(GL10.GL_TEXTURE_2D, texturesBuffer.get(0));//綁定紋理
/**
* 設(shè)置紋理的參數(shù),設(shè)置紋理過(guò)濾器
*/

gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_NEAREST);
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, texture, 0);  //生成紋理

//  設(shè)置第二個(gè)紋理
gl.glBindTexture(GL10.GL_TEXTURE_2D, texturesBuffer.get(1));
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, texture, 0);

// 設(shè)置第三個(gè)紋理
gl.glBindTexture(GL10.GL_TEXTURE_2D, texturesBuffer.get(2));
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR_MIPMAP_NEAREST);
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
BufferUtil.generateMipmapsForBoundTexture(texture);
//釋放bitmap
texture.recycle();
}
經(jīng)由過(guò)程這個(gè)辦法來(lái)初始化了紋理,然后在onSurfaceChanged的時(shí)刻履行,
其他的辦法根本膳綾腔有更改,因?yàn)槭沁M(jìn)修亮度調(diào)劑所以還要在onSurfaceCreated中設(shè)置gl的亮度  
代碼如下 // 亮度,三個(gè)面的亮度
gl.glEnable(GL10.GL_LIGHT0);
gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_AMBIENT, lightAmbBfr);
gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_DIFFUSE, lightDifBfr);
gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_POSITION, lightPosBfr);
然后在就是要在onDrawFrame進(jìn)行亮度的調(diào)劑,因?yàn)?
//跟新亮度
if (lighting) {
gl.glEnable(GL10.GL_LIGHTING);
} else {
gl.glDisable(GL10.GL_LIGHTING);
}
這就是對(duì)亮度的調(diào)劑的代碼,很簡(jiǎn)單,Demo我也傳了,可以用的不克不及用找我

相關(guān)案例查看更多