gpt4 book ai didi

iphone - Opengl ES - z 轴上的渲染不正确?

转载 作者:行者123 更新时间:2023-12-03 19:41:03 25 4
gpt4 key购买 nike

我有一个雪人模型,正在从 .obj 文件加载。一切正常,除了当我使用 glRotatef() 旋转模型时,雪人的头部将始终渲染在 body 前面。雪人的 Nose 也总是渲染在头部后面。这会产生雪人在旋转时改变方向的效果,但实际上这些部分并未以正确的 z 顺序渲染。为什么会出现这种情况?

注意:雪人的所有部分都来自使用 blender 创建的同一个 .obj 文件。

像这样渲染模型(在绘图循环中)

glVertexPointer(3 ,GL_FLOAT, 0, model_verts);
glEnableClientState(GL_NORMAL_ARRAY);
glNormalPointer(GL_FLOAT, 0, model_normals);
glDrawElements(GL_TRIANGLES, num_model_indices*3, GL_UNSIGNED_SHORT, &model_indices);

像这样旋转(在touchesMoved中)

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
touchBeginPos = [touch locationInView:self];

}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint touchEndPos = [[touches anyObject] locationInView:self];
glMatrixMode(GL_MODELVIEW_MATRIX);
glRotatef(10, (touchBeginPos.y - touchEndPos.y)/4, -(touchBeginPos.x - touchEndPos.x)/4, 0.0f);
touchBeginPos = touchEndPos;
}

最佳答案

检查您是否没有(错误地)对场景应用负(镜像)比例。另请检查您是否正在使用 Z 缓冲,也许您没有。

This page与另一个 3D 系统相比,谈论了一些 Blender 的坐标系,并且作为引用可能是半模糊的,但我对它有一定的信心。

关于iphone - Opengl ES - z 轴上的渲染不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/882576/

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