做了一个iOS上OpenGL ES的小玩意时,发现一个问题。当在真机上把图元切换成GL_POINTS后,好家伙,怎么满屏都是大方块啊。
但是奇怪的地方是,模拟器运行结果却很正常,全部都是一个个的小顶点。
经过各种查找。最后发现可能是顶点尺寸在作祟。在工程的vertex shader中加了一行gl_PointSize = 1.0; 搞定。
经过反思,想起之前在vertex shader中加过一行gl_PointSize = 50.0;但是老早就已经删掉了。
但是就因为这个“老早”,导致vertex shader很久没有被修改过。因此据我估计, 如果Xcode工程中的资源文件不作修改,那么在真机调试过程中,是不会把未修改过的文件再次传输到真机中的。这也解释了为何在工程的vertex shader中加入一行gl_PointSize = 1.0; 问题马上就解决了。
但是奇怪的地方是,模拟器运行结果却很正常,全部都是一个个的小顶点。
经过各种查找。最后发现可能是顶点尺寸在作祟。在工程的vertex shader中加了一行gl_PointSize = 1.0; 搞定。
经过反思,想起之前在vertex shader中加过一行gl_PointSize = 50.0;但是老早就已经删掉了。
但是就因为这个“老早”,导致vertex shader很久没有被修改过。因此据我估计, 如果Xcode工程中的资源文件不作修改,那么在真机调试过程中,是不会把未修改过的文件再次传输到真机中的。这也解释了为何在工程的vertex shader中加入一行gl_PointSize = 1.0; 问题马上就解决了。