Opengl-es绘制一个.obj文件,但是如何?

时间:2011-11-24 09:05:34

标签: android opengl-es

我想解析一个.obj文件。我的解析器工作正常,但我的显示效果不佳。 Obj文件是here

我的代码是:

    public ObjModelParser parse() {
        long startTime = System.currentTimeMillis();

        InputStream fileIn    = resources.openRawResource(resourceID);
        BufferedReader buffer = new BufferedReader(new InputStreamReader(fileIn));
        String line="";

        Log.e("model loader", "Start parsing object " + resourceID);

        try {
            while ((line = buffer.readLine()) != null) {
                StringTokenizer parts = new StringTokenizer(line, " ");
                int numTokens = parts.countTokens();
                if (numTokens == 0) continue;

                String part = parts.nextToken();

                if (part.equals(VERTEX)) {
                    Log.e("v ", line);

                    vertices.add(Float.parseFloat(parts.nextToken()));
                    vertices.add(Float.parseFloat(parts.nextToken()));
                    vertices.add(Float.parseFloat(parts.nextToken()));
....

我的显示代码是:

使用TRIANGLE_STRIP和gl。glDrawArrays(rendermode, 0, coords.length/dimension);

绘制该模型

enter image description here

这里的错误是什么?

编辑:file here以显示我的多维数据集程序中的好协调,以及来自.obj文件的内容,从不显示

谢谢,Leslie

1 个答案:

答案 0 :(得分:1)

您正在尝试使用TRIANGLE_STRIP而不是TRIANGLES进行绘制,您是否完成了工作并为STRIP设置了必要的退化三角形?

如果您确实放入了那些退化的三角形,我会在那里打赌问题,我们可以查看解析器的数据输出吗?只说前10个三角形...

如果你没有创建退化三角形或者不知道那是什么,只是将绘图从TRIANGLE_STRIP更改为TRIANGLES,同样使用带有这样的模型的三角形条限制了一些你可以使用法线制作的技巧,产生更好看的图形。 (如果您使用简单或卡通外观,请忽略此部分。)