这一课在上一课的基础
我们来绘制简单的 3D图形
请注意 三角形都是逆时针绘制
我们来绘制一个矩形,和金字塔
矩形如上节一样,是由6个四边形组成的
因此我们要绘制6个面
注意,旋转函数所放的地方不对,会产生很喜剧的效果 呵呵
public void display(GLAutoDrawable drawable)
{
GL gl = drawable.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT|GL.GL_DEPTH_BUFFER_BIT); //清除颜色缓冲
gl.glLoadIdentity(); //重置矩阵
gl.glTranslatef(0.0f, 0.0f, -6.0f); //向内(Z轴负方向)移动6
//---------
if(xrot>360){
xrot=0;
}
//---------------------
gl.glTranslatef(-2.0f, 0.0f, 0.0f);
gl.glRotatef(xrot, 1.0f, 0.0f, 0.0f);
//gl.glColor3f(0.0f, 1.0f, 0.0f); //设置颜色(r,g,b)绿色
//前面
gl.glBegin(GL.GL_QUADS); //开始绘制多边形
gl.glColor3f(1.0f, 0.0f, 0.0f);gl.glVertex3f(-1.0f, -1.0f, 1.0f); //第1个顶点
gl.glColor3f(0.0f, 1.0f, 0.0f);gl.glVertex3f(1.0f, -1.0f, 1.0f); //第2个顶点
gl.glColor3f(0.0f, 0.0f, 1.0f);gl.glVertex3f(1.0f, 1.0f, 1.0f); //第3个顶点
gl.glColor3f(1.0f, 1.0f, 0.0f);gl.glVertex3f(-1.0f, 1.0f, 1.0f); //第4个顶点
//后面
gl.glColor3f(1.0f, 0.0f, 0.0f);gl.glVertex3f(1.0f, -1.0f, -1.0f); //第1个顶点
gl.glColor3f(0.0f, 1.0f, 0.0f);gl.glVertex3f(-1.0f, -1.0f, -1.0f); //第2个顶点
gl.glColor3f(0.0f, 0.0f, 1.0f);gl.glVertex3f(-1.0f, 1.0f, -1.0f); //第3个顶点
gl.glColor3f(1.0f, 1.0f, 0.0f);gl.glVertex3f(1.0f, 1.0f, -1.0f); //第4个顶点
//左面
gl.glColor3f(1.0f, 0.0f, 0.0f);gl.glVertex3f(-1.0f, -1.0f, -1.0f); //第1个顶点
gl.glColor3f(0.0f, 1.0f, 0.0f);gl.glVertex3f(-1.0f, -1.0f, 1.0f); //第2个顶点
gl.glColor3f(0.0f, 0.0f, 1.0f);gl.glVertex3f(-1.0f, 1.0f, 1.0f); //第3个顶点
gl.glColor3f(1.0f, 1.0f, 0.0f);gl.glVertex3f(-1.0f, 1.0f, -1.0f); //第4个顶点
//右面
gl.glColor3f(1.0f, 0.0f, 0.0f);gl.glVertex3f(1.0f, -1.0f, 1.0f); //第1个顶点
gl.glColor3f(0.0f, 1.0f, 0.0f);gl.glVertex3f(1.0f, -1.0f, -1.0f); //第2个顶点
gl.glColor3f(0.0f, 0.0f, 1.0f);gl.glVertex3f(1.0f, 1.0f, -1.0f); //第3个顶点
gl.glColor3f(1.0f, 1.0f, 0.0f);gl.glVertex3f(1.0f, 1.0f, 1.0f); //第4个顶点
//上面
gl.glColor3f(1.0f, 0.0f, 0.0f);gl.glVertex3f(-1.0f, 1.0f, 1.0f); //第1个顶点
gl.glColor3f(0.0f, 1.0f, 0.0f);gl.glVertex3f(1.0f, 1.0f, 1.0f); //第2个顶点
gl.glColor3f(0.0f, 0.0f, 1.0f);gl.glVertex3f(1.0f, 1.0f, -1.0f); //第3个顶点
gl.glColor3f(1.0f, 1.0f, 0.0f);gl.glVertex3f(-1.0f, 1.0f, -1.0f); //第4个顶点
//下面
gl.glColor3f(1.0f, 0.0f, 0.0f);gl.glVertex3f(1.0f, -1.0f, 1.0f); //第1个顶点
gl.glColor3f(0.0f, 1.0f, 0.0f);gl.glVertex3f(-1.0f, -1.0f, 1.0f); //第2个顶点
gl.glColor3f(0.0f, 0.0f, 1.0f);gl.glVertex3f(-1.0f, -1.0f, -1.0f); //第3个顶点
gl.glColor3f(1.0f, 1.0f, 0.0f);gl.glVertex3f(1.0f, -1.0f, -1.0f); //第4个顶点
gl.glEnd();
gl.glTranslatef(4.0f, 0.0f, 0.0f);
gl.glRotatef(xrot, 0.0f, 0.0f, 1.0f);
gl.glBegin(GL.GL_TRIANGLES);
gl.glColor3f(1.0f, 0.0f, 0.0f);
gl.glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上顶点 (前侧面)
gl.glColor3f(0.0f, 1.0f, 0.0f);
gl.glVertex3f(-1.0f,-1.0f, 1.0f); // 三角形的左下顶点 (前侧面)
gl.glColor3f(0.0f,0.0f,1.0f);
gl.glVertex3f( 1.0f,-1.0f, 1.0f); // 三角形的右下顶点 (前侧面)
gl.glColor3f(1.0f, 0.0f, 0.0f);
gl.glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上顶点 (右侧面)
gl.glColor3f(0.0f, 1.0f, 0.0f);
gl.glVertex3f( 1.0f,-1.0f, 1.0f); // 三角形的左下顶点 (右侧面)
gl.glColor3f(0.0f,1.0f,0.0f);
gl.glVertex3f( 1.0f,-1.0f, -1.0f); // 三角形的右下顶点 (右侧面)
gl.glColor3f(1.0f, 0.0f, 0.0f);
gl.glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上顶点 (后侧面)
gl.glColor3f(0.0f, 1.0f, 0.0f);
gl.glVertex3f( 1.0f,-1.0f, -1.0f); // 三角形的左下顶点 (后侧面)
gl.glColor3f(0.0f,0.0f,1.0f);
gl.glVertex3f(-1.0f,-1.0f, -1.0f); // 三角形的右下顶点 (后侧面)
gl.glColor3f(1.0f, 0.0f, 0.0f);
gl.glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上顶点 (左侧面)
gl.glColor3f(0.0f,0.0f,1.0f);
gl.glVertex3f(-1.0f,-1.0f,-1.0f); // 三角形的左下顶点 (左侧面)
gl.glColor3f(0.0f,1.0f,0.0f);
gl.glVertex3f(-1.0f,-1.0f, 1.0f); // 三角形的右下顶点 (左侧面)
gl.glEnd(); // 金字塔绘制结束
xrot+=0.1f;
}
声明:
刚开始学习opengl的时候,在网上找了很久,终于找到NeHe的教程,从中得到了很多
我也希望我自己东拼西凑弄共享给大家,我也希望有更多的人加入进来,
引用时请声明此点
分享到:
相关推荐
jogl简介,jogl入门例子,jogl简介,jogl入门例子
这个是我刚刚学JOGL的时候找到的一份资料,很适合JOGL的初学者,内容是E文的,但都是通俗易懂的,只要一点点英语基础就可以理解,现在JOGL的资料很少,希望对想学而又找不到资料的朋友有点帮助
jogl简单入门例子,15个例子,已经包含了JOGL1.0,2.0的jar包
jogl常用jar包和dll库 博文链接:https://ligson.iteye.com/blog/1331528
NULL 博文链接:https://wjyjimy.iteye.com/blog/692991
NULL 博文链接:https://wjyjimy.iteye.com/blog/659837
NULL 博文链接:https://wjyjimy.iteye.com/blog/662254
NULL 博文链接:https://hcqmaker.iteye.com/blog/264676
nehe 的 Jogl教程源码,学习Jogl很好的参考材料
64bit的jogl包,里面包含jogl.jar,gluegen-rt.jar,已经四个解压dll文件
JOGL source code and project information can be found at: https://jogl.dev.java.net/ Numerous answers to common questions can be found on the JOGL forum: http://www.javagaming.org/index.php/board,...
英文版的jogl 4合1教程,很不错个人觉得jogl 比j3d要好
Nehe三维教程Jogl版
网上找到的关于JOGL的PDF格式的资料
jogl的官方api,英文版的,你可以从里面了解到jogl的详细api信息
JOGL2版本在Eclipse里面配置的图文教程,通俗易懂
想做自己的3d游戏么 想知道用java怎么实现opengl那样炫的效果么物超所值导入myeclipse工程直接可以使用.还等神马骚年.下载吧 注意有个别类没修改完不过这可是俺修改的最新jogl教程
整理好的关于搭建jogl开发环境需要的相关jar包、动态链接库(包括32为系统和64位系统的)以及相关的src和开发文档。
nehe-source JOGL学习代码