- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验十三 3DS模型的显示new
实验十三 3DS模型的显示
一、实验目的
实现3DS模型在程序中的显示与漫游
实现MDL模型在程序中的显示与漫游
了解3DS模型尺寸与OpenGL绘图坐标之间的关系
二、实验环境
硬件要求:
PC机,主流配置,最好为独立显卡,显存512M以上。
软件环境:
操作系统:Windows XP。
语言开发工具:Microsoft Visual studio 2005/2008,Visual C++。
三、实验内容与要求:
要求: 实验所有步骤所生成的效果截图拷贝到实验报告文档里备查,并附上相应的代码。 WORD文档命名方式:学号姓名-实验序号-实验名称。
内容:
铲车模型显示程序
图1· 铲车模型程序效果
仔细研读程序,修改程序,将模型放入上次实验的场景中
在场景中尝试添加其他模型,并查看效果
1. 如果屏蔽深度检测代码,模型显示会怎样变化?
2. 模型的纹理对场景的效果会有影响吗?
提供的模型(参见实验文件夹3DSModel))#include 3ds.h
#include texture.h
添加源程序
3ds.cpp,
texture.cpp
主程序修改步骤
变量定义 C3DSModel draw3ds[5]; //有多少个模型,数组就定义多大
// 调入模型文件 一般设置init()中,例如
draw3ds[0].Load(“car.3ds”);
draw3ds[1].Load(“house.3ds”);
// 模型调入后,位置处在世界坐标系的原点
//显示 写在显示回调函数Display()中
glEnable(GL_LIGHTING); //启用光源
glEnable(GL_TEXTURE_2D); //启用纹理
// 通过图形变换使得模型原来的尺寸和世界坐标系得尺寸保持一致
图形变换glScalef(x,y,z);
draw3ds[0].Render(); //显示模型1
draw3ds[1].Render(); //显示模型2
glDisable(GL_LIGHTING); //使用后关闭光源
glDisable(GL_TEXTURE_2D); //使用后关闭纹理
// 释放资源,释放内存
draw3ds[0].Release();
draw3ds[1].Release();
6.注意:要启用深度检测
六、思考题
哪几个因素影响3DS模型的显示效果?如果想调用不同大小的模型都能在同一个程序正确地显示,程序应该怎样修改?
七、加分题
在网上查找模型或者自己设计模型,调入自己设计的带光照的3D新场景(须有OpenGL绘制的其他物体)中。
八、演示程序
1)3DSModel_chanche.exe //3DS模型铲车效果演示
九、附属程序
1.铲车模型显示主程序 3DS Model(带mp3音乐播放功能)
#include stdafx.h
#include windows.h
#include math.h
#include 3ds.h
#include Texture.h
#include glut.h
#include fmod.h //// 音频库的头文件
#pragma comment(lib, fmodvc.lib) //音频库的静态链接库
FSOUND_STREAM *mp3back;
void init(void);
void Display(void);
void Keyboard(int key,int x,int y);
void draw3DSModel();
void Reshape(GLsizei w,GLsizei h);
void myidle();
C3DSModel draw3ds[5]; //有多少个模型,数组就定义多大
float eyex=0,eyey=0,eyez=100,atx=0,aty=0,atz=0;
float rotatex,rotatey;
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
char *argv[] = {hello , };
in
您可能关注的文档
最近下载
- ctf考试题及答案.doc VIP
- 1.1生活 观察(教学课件)-2025-2026学年七年级数学数学上册(苏科版2024).pptx VIP
- 念珠菌性阴道炎的诊治-极经典.ppt VIP
- 2025年北京城市副中心投资建设集团有限公司招聘笔试模拟试题及答案解析.docx VIP
- 八月下旬一级建造师考试《水利水电工程管理与实务》真题(附答案).docx VIP
- 优秀病例汇报大赛课件(手工精品图文).pptx VIP
- 掼蛋教学课件.ppt VIP
- 太阁立志传5资料集.doc VIP
- 七月下旬一级建造师考试《水利水电工程管理与实务》第二次真题(附答案).docx VIP
- 美容礼仪与人际沟通讲解.ppt
文档评论(0)