簡體   English   中英

如何使用OpenGL ES 2.0和GLKit設置圖像的不透明度?

[英]How to set the opacity of an image using OpenGL ES 2.0 and GLKit?

我是iOS和OpenGL編程的新手,目前正在使用OpenGL ES 2.0和GLKit編寫一個簡單的程序進行練習。 現在,我可以成功加載PNG文件並將其顯示在屏幕上。

我在程序中使用了GLKViewController,並在viewDidLoad進行了一些初始化。 這是我的glkView:drawInRect方法中的代碼:

glClearColor(115.0/255.0, 171.0/255.0, 245.0/255.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

self.effect.texture2d0.name = self.textureInfo.name;
self.effect.texture2d0.enabled = YES;

[self.effect prepareToDraw];

glEnableVertexAttribArray(GLKVertexAttribPosition);
glEnableVertexAttribArray(GLKVertexAttribTexCoord0);

long offset = (long)&_quad;
glVertexAttribPointer(GLKVertexAttribPosition, 2, GL_FLOAT, GL_FALSE, sizeof(ImageVertex), (void*)(offset + offsetof(ImageVertex, geometryVertex)));
glVertexAttribPointer(GLKVertexAttribTexCoord0, 2, GL_FLOAT, GL_FALSE, sizeof(ImageVertex), (void*)(offset + offsetof(ImageVertex, textureVertex)));

glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

上面的代碼效果很好。 現在,我要設置PNG圖像的不透明度。 這聽起來很簡單,但是我不知道如何更改不透明度...

我懷疑您的片段着色器為gl_FragColor的alpha通道提供了恆定的1.0值。 該值應變化以產生混合。 請查看此問題的答案:

如何在OpenGL ES 2.0中使用Alpha混合透明度?

暫無
暫無

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

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