简介
在之前使用物体时没考虑过透明的情况,而混合就是除了物体透明度的一种方式。在处理物体透明时一般有两种方式,一种是直接丢弃掉透明度达到一定程度的部分;另外一种就是混合。例如一扇窗户如果是全透明的我们看到的物体就是窗口后的物体;如果它是半透明的有色玻璃时,看到的就是玻璃和窗口后物体的叠加。之前我们使用纹理的颜色都是纹理的rgb颜色,没有用到最后一个alpha(也就是透明度),alpha的范围是0到1,1表示不透明,0表示全透明。
丢弃片段
有些物体的部分,要么是全透明,要么是不透明,不存在其他的情况下,我们选择丢弃掉透明的部分来显示。例如下面这个小草的图片:
首先我们先用它来显示不做任何处理的情况,我们改变位置显示几个纹理,一些关键代码:
private float[][] translate = new float[][]{
{-1.5f, 0.0f, -0.48f},
{1.5f, 0.0f, 0.51f},
{0.0f, 0.0f, 0.7f},
{-0.3f, 0.0f, -2.3f},
{0.5f, 0.0f, -0.6f}};
……
for (float[] vegetation : translate) {