我使用一些与我的OpenGL ES仿真器一起提供的演示作为起点。我目前使用的演示是960x540像素,在屏幕中间绘制了一个简单的2D三角形。什么决定了OpenGL ES 2.0中的屏幕网格的尺寸? (使用C++)
我看到三角形已经用浮动画出,屏幕的左下角是(-1,-1),而屏幕的右上角是(1,1)。
可以改变这个吗?我想用整数而不是浮点数,并且屏幕的左下角为(1,1),而右上角为(960,540)。
因为我打算制作2D平台游戏,所以这会容易得多。我不想在这个游戏中分割任何像素;一切(纹理,玩家移动,相机移动)都将符合全像素坐标。
我试着嘎吱嘎吱的数字(使用常规网格和浮点数)绘制一个24x24像素的直角三角形。但是,它最终在屏幕上是24x23像素。所以我不想继续前进,如果有更准确,更快的方法可以使用像素坐标。
演示确实有4x4矩阵,注释:“用于投影模型视图的矩阵”。它的对角线上有1,下降到其他地方的零。你会推荐我在那里放什么号码? – Jourgen 2012-03-09 23:20:15
按照我输入的方式思考,我想你想用2/960来缩放x,所以把它放在左上方,y放2/540,然后沿着主对角线放置下一个,然后你想把中心移到底部左边,所以在x上是负数,在y上是负数,在每种情况下都是-1,所以这些会在最后一列的前两位中出现。在标准GL术语中,作为将是{2.0f/960.0f,0.0f,0.0f,0.0f,0.0f,2.0f/540.0f,0.0f,0.0f,0.0f,0.0f,1.0 f,0.0f,-1.0f,-1.0f,0.0f,1.0f} – Tommy 2012-03-09 23:31:44
刚试过你的矩阵,它的工作完美。现在,我绘制的所有形状都完全取决于我所期望的形状。谢谢! – Jourgen 2012-03-09 23:59:54