OpenGL 导入 3ds 模型的问题
本人用 lib3ds 导入模型后 采用最原始的画三角形的方法遍历模型中所有的点,画出模型 但在
光照的时候出现模型表面有很多杂斑(enable 了深度缓存)请问 如何去除杂斑?而且如果在场
景中添加一个地板 地板会覆盖部分模型(奇怪的是我激活了 depth buffer)
code:
#include <windows.h>
#include <gl/glee.h>
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glut.h>
#include <lib3ds.h>
#include <iostream>
typedef float Lib3dsVector[3];
typedef float Lib3dsTexel[2];
using namespace std;
Lib3dsFile* model;
Lib3dsMesh** mesh;
Lib3dsCamera** camera;
Lib3dsFace* face;
Lib3dsLight** light;
Lib3dsMaterial** material;
GLuint vertexVBO,normalVBO,textureVBO;
unsigned long total_face;
void lightup()
{
glShadeModel(GL_SMOOTH);
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
glFrontFace(GL_CCW);
float gambient[]={0.2,0.2,0.2,1.0};
float lightpos[]={1.0,1.0,1.0,0.0};
float lambient[]={1.0,1.0,1.0,1.0};
float ldiffuse[]={0.8,0.8,0.8,1.0};
float lspecular[]={0.3,0.3,0.3,1.0};
glLightfv(GL_LIGHT0,GL_DIFFUSE,ldiffuse);
glLightfv(GL_LIGHT0,GL_AMBIENT,lambient);
glLightfv(GL_LIGHT0,GL_SPECULAR,lspecular);
评论0