Opengl查看绘图问题

时间:2015-10-03 05:17:54

标签: ios opengl-es opengl-es-2.0

对于维度考虑,我将opengl视图的大小调整为2.0比原点大小,如下所示:

NSInteger Dimension = 2;
self.glView = [[WQPaintGLView alloc] initWithFrame:CGRectMake(0, 0, width*Dimension, height*Dimension)];

CGAffineTransform tScale        = CGAffineTransformMakeScale((float)1/Dimension, (float)1/Dimension);
CGAffineTransform tTranslate    = CGAffineTransformTranslate(tScale, -width, -height);

self.glView.transform = tTranslate;

[self.canvasContainerView addSubview:self.glView];

但是得到一个奇怪的问题,请参阅:

enter image description here

我只能在左下角1/4区域画画。

我错了什么?

1 个答案:

答案 0 :(得分:1)

UIView转换和openGL不是很兼容。此外,在openGL初始化之后调整大小的视图可能很麻烦,并且在大多数情况下必须从视图中创建新的渲染缓冲区。

无论如何,由于您将视图缩放为具有更大的曲面,因此您应该检查以下调用:

  • glViewport应该定义您正在编写的缓冲区的哪个部分。通常它设置为(0,0,viewWidth,viewHeight)。在您的情况下,它也必须包括比例。
  • glOrtho(或glFrustum)定义您的坐标系(如果使用)。无论视图比例如何,这些都应该是相同的。
  • 可以由视图框架定义的任何其他矩阵用法或剪刀。

如果可能,请删除视图上的转换并尝试找到更好的解决方案。