OPENgl入门过程中遇到的问题

开发内容大概为:

使用库文件注册一个绘制窗口并命名。使用OpenGL绘制两个长方体当作动画短片的空间。在两个空间之间绘制一个管道,使得在第一个空间的小球可以通过该管道运动至另一空间。制作若干小球,使它们在第一个空间随机运动,并有一定几率运动到第二个空间中去。给空间中添加光照与材质为每个模型添加纹理利用碰撞实现小球在撞击空间边缘时产生特定的碰撞效果(类似爆炸闪光效果)。在第一个空间中通过粒子来实现四个“喷射”动作特效渲染环境。

问题一:  使用实验一所使用的控制台方式,不适合本实验的方式,不灵活。

解决办法:若使用控制台方式,只能在display函数中加入小球绘制过程,与刷新过程。但是我们的实验需要引入大量的其他类,需要灵活处理。所以我们采用了从网上学习到的glwindows库文件来注册窗口,并添加需要的函数。

问题二: 在设置小球碰撞的时候,小球刚开始附着在上面然后不会动。

解决办法:由于碰撞检测判断的是射线与面或球的交点,需要的参数为面的发现和射线的发现,但是当我在设置上面的法线时设置成了相反方向。经过修改后程序运行正常。

问题三:加入粒子特效后,并无显示。

解决办法:在走投无路的时候我将其他所有的绘制物体方法注释后添加粒子特效,发现是由于粒子特效过小所以在图中无显示。所以经过设置参数,将粒子特效设置成正常大小。

问题四: 加入摩擦力时速度并无变化

解决办法:加入摩擦力的原理为在小球碰撞右面盒子的时候,将速度设置为速度的百分之50.但是测试时碰撞并不减速。最后经过断点调试之后发现摩擦因数为0.由于设置参数的时候摩擦因数设置为int类型,而摩擦因数为小数。改变摩擦因数为double之后产生了正确的效果。

实验效果图:

时间: 2024-10-12 23:57:52

OPENgl入门过程中遇到的问题的相关文章

OpenGL入门学习

说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率.16色来做吗?显然是不行的. 本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物. OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性. 1.与C语言紧密结合. OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的

(转)Inno Setup入门(九)——修改安装过程中的文字显示

本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250837 前面说到过可以使用不用的语言文件实现不同的显示方式,方便与国际接轨,事实上即使没有语言文件也可以实现修改.[Messages] 段用于定义安装程序和卸载程序中显示的消息.一般不需要创建 [Messages] 段,因为所有的消息在Inno Setup的Default.isl文件 (或在[Languages] 段指定的语言选项) 中已经包含.但是可以通过覆

(转)Inno Setup入门(二)——修改安装过程中的图片

本文转载自:http://blog.csdn.net/augusdi/article/details/8564793 修改安装过程中的图片 一般编译之后,安装过程中出现在左边图片是是下图这个样子的: 其实也可以修改它,只需要在setup段中作一点稍微的修改,加一行代码即可: [setup] AppName=Test AppVerName=TEST DefaultDirName="E:\TEST" AppVersion=1.0 WizardImageFile=dh.bmp [files]

Inno Setup入门(二)&mdash;&mdash;修改安装过程中的图片

修改安装过程中的图片 一般编译之后,安装过程中出现在左边图片是是下图这个样子的: 其实也可以修改它,只需要在setup段中作一点稍微的修改,加一行代码即可: [setup] AppName=Test AppVerName=TEST DefaultDirName="E:\TEST" AppVersion=1.0 WizardImageFile=dh.bmp [files] Source: "F:\desktop\ipmsg.exe"; DestDir: "{

从输入 URL 到浏览器接收的过程中发生了什么事情

从输入 URL 到浏览器接收的过程中发生了什么事情? 原文:http://www.codeceo.com/article/url-cpu-broswer.html 从触屏到 CPU  首先是「输入 URL」,大部分人的第一反应会是键盘,不过为了与时俱进,这里将介绍触摸屏设备的交互. 触摸屏一种传感器,目前大多是基于电容(Capacitive)来实现的,以前都是直接覆盖在显示屏上的,不过最近出现了 3 种嵌入到显示屏中的技术,第一种是 iPhone 5 的 In-cell,它能减小了 0.5 毫米

OpenGL和D3D11中的深度模版测试

    在OpenGL和D3D11的管线中,像素shader之后的操作就是深度模版测试,深度模版测试是以sample为单位进行的,就是一个像素上可以有多个采样点,每个采样点都有深度信息.深度模版测试对每个采样点都要进行一次,如果是msaa,最后要对每次采样的像素结果进行resolve,得到最终的结果.在下面的链接中有msaa的介绍. http://www.cnblogs.com/mikewolf2002/archive/2012/11/22/2783235.html     深度模版测试的流程如

转:openGL入门(1)

                    OpenGL入门教程 第一课: 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率.16色来做吗?显然是不行的. 本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物. OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性. 1.与C语言紧密结合. OpenGL命令最初就是用C语言函

OpenGl入门——视口及物体移动函数

大学的时候有个选修课,要用OpenGl,很初级的内容,同样入门的学弟学妹适用 推荐个学习的资料NeHe的OpenGl教程,很完整而且有示例,讲的很明白.比某些破书好. 可以配合那本所谓的“红宝书”看看,中国人写的书就不要看了,我借过好几本内容都有些错误. 入门足够了 英文:http://nehe.gamedev.net/ 中文:http://www.yakergong.net/nehe/ 开始正题: glTranslatef(x,y,z);平移物体 glRotatef(角度,x,y,z);围绕制

Android OpenGL入门示例:绘制三角形和正方形 (附完整源码)

Android上对OpenGl的支持是无缝的,所以才有众多3D效果如此逼真的游戏,在Camera的一些流程中也有用到GLSurfaceView的情况.本文记录OpenGL在Android上的入门级示例,绘制一个三角形和正方形.尽管功能简单,可是我捣腾了好几个晚上,大量网上文章上的代码都有点问题,不是绘制不出来就是挂了. 第一个文件:MainActivity.java package com.example.learnopengl1; import android.opengl.GLSurface