opengl - OpenGL:位图字体的mipmap生成使其在缩小时变暗
问题描述
我正在从 TGA 纹理加载字体。gluBuild2DMipmaps()
我使用该函数生成 mipmap 。
当字体有一定大小时,它看起来非常好。但是当它变小时,每当它达到新的 mipmap 级别时,它就会变得越来越暗。
这就是我创建纹理的方式:
void TgaLoader::bindTexture(unsigned int* texture)
{
tImageTGA *pBitMap = m_tgaImage;
if(pBitMap == 0)
{
return;
}
glGenTextures(1, texture);
glBindTexture(GL_TEXTURE_2D, *texture);
gluBuild2DMipmaps(GL_TEXTURE_2D,
pBitMap->channels,
pBitMap->size_x,
pBitMap->size_y,
textureType,
GL_UNSIGNED_BYTE,
pBitMap->data);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST);
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
}
这使文本看起来像这样(它应该是白色的):
隐约可见。
如果我将其更改GL_TEXTURE_MIN_FILTER
为基本上忽略 mipmap(GL_LINEAR
例如使用),它看起来像这样:
我尝试了不同的过滤器选项,也尝试了使用glGenerateMipmap()
而不是gluBuild2DMipmaps()
,但我总是得到相同的结果。
代码有什么问题?
解决方案
推荐阅读
- ios - UIImageview 在 UIBezierPath 内时消失
- php - 如何从 DatePeriod 中获取一个随机的 DateTime?
- salesforce - LWC SuperBadge Challenge 7 船NearMe 错误
- karate - 空手道:参数化 json 路径表达式
- python - 有没有人看到任何可能的方法来切片这个?(Python)
- python - 空列表作为scrapy响应对象的输出
- vba - Excel VBA 格式函数返回“1A”、“1P”的意外值
- pandas - 使用简单的“。”将元素添加到系列中 符号
- java - 在 Android Room 中查询日期
- paypal - 使用 Paypal(或替代),以便我的客户可以直接销售商品