2D游戏使用约数更多的像素尺寸texture是否能减少因多机型、缩放、旋转带来的各种问题出现可能性

如果你那么纠结一个像素的话,请用矢量图,或者预渲染成多图
■网友
不能。和被多少约没有关系。我的理解是这样:opengl es 2.0 specification没有完全支持NPOT(not pow of two)纹理,所以遇到NPOT纹理,各GPU厂商的实现方案会有不同,有可能会遇到直接补齐像素导致黑边的情况,遇到retina进行插值自然也可能会有问题。而opengl es 3.0 明确要求支持NPOT纹理,所以都无所谓了。
■网友
不知道题主想说的像素对齐 是什么含义2D像素对齐 一般只在UI渲染上面用防止因为最后转换到视口的顶点坐标 不在“像素的顶点”上而导致最后采样插值的结果变的模糊需要对齐也很简单在顶点着色器中 微调你的顶点 确保 最后输出到裁剪空间的坐标是2/viewportSize的倍数 也就是舍入到2 / viewportSize * pos.w(你可以选择都向上或者都向下舍入)举个例子 如果 你的视口 是 100 * 100的那么你x轴就舍入到 2 / 100 * pos.w如果w = 1x = 0.053 如果向下舍入 到0.02 就变成 0.04这样输出的顶点就必然在“像素的顶点”上不知道题主是否想知道的是这个?还有一个可能的问题就是题主提到retina屏幕我不知道题主采用的投影矩阵式是什么样的不过我猜测 恐怕是一个 投影表面和屏幕一样大的正交投影矩阵这个情况下 恐怕会遇到浮点数精度问题因为这种情况下 你传入的顶点的坐标值会很大浮点数的精度 随着浮点数越大 精度越差这种情况下 计算出来的裁剪空间坐标 必然存在很大误差难以保证像素级的精度解决办法是 选择投影表面宽高比和视口一致 面积小的投影矩阵能改善顶点精度最后一点就是对于纹理尺寸上面也说了ES2.0如果采用NPOT尺寸的纹理要检查硬件是否支持该扩展如果不支持 就只能采用POT纹理不然行为是未定义的解决办法可以是先弄一个大的POT纹理然后再上面建立子纹理


    推荐阅读