Open GL ES渲染仅显示3D模型的白色图像

时间:2014-05-01 20:34:15

标签: ios opengl-es openframeworks

我的openFrameworks有问题。一些3D模型显示正确,但基本的3D模型,如没有纹理的椅子,涂成白色,没有阴影。仅绘制模型的线框是可以的。这是我得到的picture of the result

enter image description here

椅子模型来自Sketchup仓库,并已转换为dae。模型在Xcode和Finder中正确显示。

我不是openGL的专家,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您正在使用的应用程序/示例可能无法处理顶点颜色,或者不会以与导出模型兼容的方式处理它们。

如果没有纹理的模型确实存在问题,并且纹理一切正常,那么简单的解决方案就是为SketchUp中没有纹理的模型烘焙纹理。

如果您想修改代码,首先需要知道您是否使用OpenGL ES 1.1或2.0? (应在应用程序启动时打印到终端 - 默认值为1.1,启用2.0通常使用调用ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);完成)

在OpenGL ES 2.0中,顶点和着色/纹理的定位都在着色器中完成,以修复找到它们所需的内容。它们通常放在openFrameworks项目的bin / data目录中,并在视频卡上编译,无需自己编译。模型的所有白色都表示您没有在需要的地方标准化值。 (例如,期望值可能介于0和1之间,但您的值可能介于0到255之间。)

在OpenGL ES 1.1中没有着色器 - 使用顶点颜色着色应该是开箱即用的,但是规范化仍然适用。

另一个选择是' white'它只是模型的默认颜色,并且根本没有使用顶点颜色数据 - 因为它不在DAE文件中,或者因为它没有被正确处理。