gpt4 book ai didi

ios - OpenGL Es 2.0 GLKit 绘制像素

转载 作者:行者123 更新时间:2023-11-29 11:14:32 25 4
gpt4 key购买 nike

我需要一些帮助来在屏幕上绘制像素。我编写的代码在模拟器上运行良好,但当我在设备上部署时,它会输出垃圾。所以这是我的代码:

我有 GLKViewController 设置,这里是 viewDidLoad:

- (void)viewDidLoad
{
[super viewDidLoad];

self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];

if (!self.context) {
NSLog(@"Failed to create ES context");
}

GLKView *view = (GLKView *)self.view;
view.context = self.context;
view.drawableDepthFormat = GLKViewDrawableDepthFormat24;

[EAGLContext setCurrentContext:self.context];

self.effect = [[GLKBaseEffect alloc] init];


self.effect.useConstantColor = GL_TRUE;

self.effect.constantColor = GLKVector4Make(
0.0, // Red
0.0, // Green
0.0, // Blue
1.0f);// Alpha

GLKMatrix4 projectionMatrix = GLKMatrix4MakeOrtho(0, 480, 0, 320, -1024, 1024);
self.effect.transform.projectionMatrix = projectionMatrix;

}

这是我绘制点/像素的地方:

- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
{
GLfloat points[] =
{
110.0f, 110.0f,
111.0f, 110.0f,
110.0f, 111.0f,
111.0f, 111.0f,

112.0f, 112.0f,
113.0f, 112.0f,
112.0f, 113.0f,
113.0f, 113.0f,
};

glClearColor(1.0f, 0.0f, 1.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

GLKMatrix4 modelViewMatrix = GLKMatrix4MakeTranslation(0.0f, 0.0f, 0.0f);
self.effect.transform.modelviewMatrix = modelViewMatrix;


// Prepare the effect for rendering
[self.effect prepareToDraw];

glEnableVertexAttribArray(GLKVertexAttribPosition);
glVertexAttribPointer(GLKVertexAttribPosition, 2, GL_FLOAT, GL_FALSE, 2*4, points);
glDrawArrays(GL_POINTS, 0, 8);

}

当我在模拟器上运行时,它工作正常,即相应地绘制像素,但是当我在 iPod4 上部署时,它显示一些垃圾。我是初学者,因此需要有关显示简单像素的帮助。

最佳答案

我认为这里的问题是您需要在顶点着色器中设置内置的 gl_PointSize 变量,因为模拟器和设备上的默认值不同。

this question 的答案进一步解释。

关于ios - OpenGL Es 2.0 GLKit 绘制像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10044654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com