以下是我正在使用的reference of library
粘贴在opengl墙上的纹理看起来分辨率低,质量差,我该如何改进呢?
代码
ground->m_texture = new cTexture2D();
fileload = ground->m_texture->loadFromFile(RESOURCE_PATH("resources/images/shadow.bmp"));
ground->setUseTexture(true);
ground->m_texture->setSphericalMappingEnabled(true);//this line is for circular objects, but without it texture doesnt even show up
来自一个例子 - 它应该如何看待
它在我的实施
中的表现答案 0 :(得分:3)
好的,发生的事情如下:球面贴图根据顶点到视口矢量和顶点法线生成纹理坐标,将其映射到映射到鱼眼图像类别的球面反射方向。由于您的几何体看起来非常平坦,因此通过此方法生成的纹理坐标的变化将相当小,这意味着您在很大程度上放大了图像。如果现在您的纹理过滤模式设置为最近过滤,则会发生这种情况。
解决方案:不要使用球面纹理贴图。如果要模拟反射,请使用立方体贴图(它们对于反射矢量中的小偏差表现得更好)并切换到线性过滤模式。