设置透明度

设置带纹理的物体的透明度有两种方式:

1,使用glColor4f();通过设置alpha分量改变物体的透明度。

2,通过设置纹理的alpha分量改变纹理的透明度。如果纹理没有alpha分量,通过函数添加alpha分量。

 

int CTexture::AddAlphaLayer(unsigned char alpha) // 0 - 255
{

 // Alloc memory
 unsigned char *pData = new unsigned char[4*m_Width*m_Height];
 if(pData == NULL)
  {
  AfxMessageBox("CTexture::AddAlphaLayer : insuffisant memory");
  return 0;
  }

 // Fill new data
 int size = m_Width * m_Height;
 int BytePerPixel = m_Depth / 8;
 ASSERT(size > 0);
 for(int i=0;i<size;i++)
 {
  pData[4*i+0] = m_pData[BytePerPixel*i+0];
  pData[4*i+1] = m_pData[BytePerPixel*i+1];
  pData[4*i+2] = m_pData[BytePerPixel*i+2];
  pData[4*i+3] = alpha;
 }

 // Set new depth
 m_Depth = 32;

 // Replace datas
 delete [] m_pData;
 m_pData = pData;

 return 1;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值