2014-05-01 90 views
0

openFrameworks存在问题。某些3D模型可以正确显示,但像没有纹理的椅子这样的基本3D模型涂成白色,没有阴影。只绘制模型的线框即可。这里是一个picture of the result我得到:Open GL ES渲染只显示3D模型的白色图像

enter image description here

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

我不是openGL的专家,任何帮助将不胜感激。

回答

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文件中,或者因为它没有正确处理。