【发布时间】:2015-06-26 17:45:45
【问题描述】:
我发现图像在渲染过程中质量下降。
GL_LINEAR 设置使其平滑,并失去锐化。 有什么方法可以保存它的质量?
这是我的代码:
auto tex = TextureCache::sharedTextureCache()->addImage("No_1.png");
auto sprite = Sprite::createWithTexture(tex);
很难贴出所有代码,这是cocos2d-x引擎中CCTexture2D.cpp的一部分。
if (mipmapsNum == 1)
{
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, _antialiasEnabled ? GL_LINEAR : GL_NEAREST);
}else
{
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, _antialiasEnabled ? GL_LINEAR_MIPMAP_NEAREST : GL_NEAREST_MIPMAP_NEAREST);
}
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, _antialiasEnabled ? GL_LINEAR : GL_NEAREST );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
CCTexture2D.cpp 链接:github.com/cocos2d/cocos2d-x/blob/v3/cocos/renderer/CCTexture2D.cpp
cocos2d-x 链接:github.com/cocos2d/cocos2d-x
屏幕截图: 源图片:
【问题讨论】:
-
你能详细说明你到底想要做什么吗?如果采样频率不完全匹配,您总是会遇到一些重采样问题。你可以做一个像素精确的绘图,它不会以任何方式改变纹理的外观,但是这意味着图像不能缩放或旋转。