OpenGL学习笔记(常见错误与问题)
这里汇总常见错误与问题
如果不修改照片的宽带和高度
1、假如不修改宽度和高度,直接用your.jpg去替代G:\OpenGL\OpenGL教程_NeHe_源代码_1-48\Lesson06\Data\NeHe.bmp将源代码中的if 烫喇霰嘴(TextureImage[0]=LoadBMP("Data/NeHe.bmp"))一句更改为if (TextureImage[0]=LoadBMP("Data/your.jpg"))运行程序,出现以后提示
2、这可能是因为纹理图片不是.bmp格式的原因,为此,打开Adobe Photoshop CS4,将your.jpg另存为your.bmp,转换成功后,用your.bmp替换G:\OpenGL\OpenGL教程_NeHe_源代码_1-48\Lesson06\Data\ your.jpg,并将源代码中的if (TextureImage[0]=LoadBMP("Data/your.jpg"))一句更改为if (TextureImage[0]=LoadBMP("Data/your.bmp")),重新运行程序,结果:
3、看来不修改照片的高度和宽度是不行的。
修改照片的宽带和高度
1、修改照片的宽带和高度的方法:打开Adobe Photoshop CS4,使用“文件 -> 打开”打开your.bmp,之后“图像 -> 图像大小”,打开图像大小设置窗口。
2、将“约束比例”前面的对勾去掉,将宽度更改为256像素,高度更改为256像素。修改完成后进行保存。
3、重新运行程序,发现贴图成功,截图如下:
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1、在用VS2008编译运行NeHe的Lesson09的源代码时,出现已经错误提示:
2、该错误的中文翻译:error C4430: 缺少类型说明符 - 假定为int。注意:C++不支持默认的int
3、这是因为在VC6中,如果没有显示的指定返回值类型,编译器将其视为默认整形;但是vs2008不支持默认整形,解决这个问题不能修改每个没有显示指示返回值类型的函数地方,可以用wd4430来解决。
4、解决办法:打开项目的Properties,打开Configuration Properties -> C/C++ -> Command Line,在Additional options中添加/wd4430,点击应用和确定即可。
VS2008中输入小数0.5的时候可以只输入“.5”
1、在Lesson12的源代码中,有一处“0.5”被写成了“.5”,为此,编写简单程序畲驶郜杏测试:#include<iostream>using namespace std;void main(){ float a=.38,b=.9; float m; m=a+b; cout<<m<<endl<<endl;}运行结果表明,当输入小数的时候,如果小数点前面的数是0的话,可以省去。