网格渲染问题libgdx

编程入门 行业动态 更新时间:2024-10-23 13:35:41
本文介绍了网格渲染问题libgdx的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个非常简单的程序,加载的波前OBJ文件,旋转和显示。问题是,该方案的一些问题使得它(如缺少三角形)。我有一个类似的问题,当我试图呈现一个金字塔与讷河的教程采取了顶点缓冲。因此,我不知道是什么造成这种渲染的问题。你能帮助我吗?

包com.jam.libgdx3DTest;进口com.badlogic.gdx.Game;进口com.badlogic.gdx.Gdx;进口com.badlogic.gdx.graphics *。进口com.badlogic.gdx.graphics.g3d.loaders.obj.ObjLoader;进口的java.io.InputStream;公共类Libgdx3DTest扩展游戏{    私人网shuttleMesh;    私人相机拍照;    私人浮动rotateAngle;    公共无效创建(){        如果(shuttleMesh == NULL){            。InputStream的时间= Gdx.files.internal(shuttle.obj)阅读();            shuttleMesh = ObjLoader.loadObj(以假);        }    }    公共无效渲染(){        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);        Gdx.gl10.glMatrixMode(GL11.GL_MODELVIEW_MATRIX);        Gdx.gl10.glLoadIdentity();        camera.update();        camera.apply(Gdx.gl10);        rotateAngle + = 0.5F;        Gdx.gl10.glRotatef(rotateAngle,0F,1F,0F);        Gdx.gl10.glRotatef(-90f,1F,0F,0F);        shuttleMesh.render(GL11.GL_TRIANGLES);    }    公共无效调整大小(INT宽度,高度INT){        漂浮的aspectRatio =(浮点)宽/(浮点)高度;        摄像头=新PerspectiveCamera(67,2F *的aspectRatio,2F);        camera.translate(0F,0F,12F);    }    公共无效暂停(){    }    公共无效简历(){    }    公共无效的Dispose(){    }}

解决方案

我想你可能是具有缠绕的问题,即该模型有不同的绕组比的OpenGL。

OpenGL的绕组逆时针默认情况下,尽管这可以glFrontFace(GL_CW)来改变;

I have a very simple program, that loads an wavefront obj file, rotate and displays it. The problem is that the program renders it with some issues (like missing triangles). I had a similar problem when I tried to render a Pyramid with a vertex buffer taken from NeHe's tutorial. So I don't know what cause this rendering issues. Can you help me?

package com.jam.libgdx3DTest; import com.badlogic.gdx.Game; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.*; import com.badlogic.gdx.graphics.g3d.loaders.obj.ObjLoader; import java.io.InputStream; public class Libgdx3DTest extends Game { private Mesh shuttleMesh; private Camera camera; private float rotateAngle; public void create() { if (shuttleMesh == null) { InputStream in = Gdx.files.internal("shuttle.obj").read(); shuttleMesh = ObjLoader.loadObj(in, false); } } public void render() { Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); Gdx.gl10.glMatrixMode(GL11.GL_MODELVIEW_MATRIX); Gdx.gl10.glLoadIdentity(); camera.update(); camera.apply(Gdx.gl10); rotateAngle += 0.5f; Gdx.gl10.glRotatef(rotateAngle, 0f, 1f, 0f); Gdx.gl10.glRotatef(-90f, 1f, 0f, 0f); shuttleMesh.render(GL11.GL_TRIANGLES); } public void resize(int width, int height) { float aspectRatio = (float) width / (float) height; camera = new PerspectiveCamera(67, 2f * aspectRatio, 2f); camera.translate(0f, 0f, 12f); } public void pause(){ } public void resume(){ } public void dispose() { } }

解决方案

I think you might be having winding issues i.e. the model has different winding than OpenGL.

OpenGL Winding is counterclockwise by default though this can be changed with glFrontFace(GL_CW);

更多推荐

网格渲染问题libgdx

本文发布于:2023-11-23 04:45:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1620139.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:网格   libgdx

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!