- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汉唐中医倪师感冒八大经方
NeHe OpenGL第四十二课:多重视口
2010-08-23 23:29:14
标签: HYPERLINK /tagindex.php?keyword=NeHe \t _blank NeHe HYPERLINK /tagindex.php?keyword=OpenGL \t _blank OpenGL HYPERLINK /tagindex.php?keyword=%B6%E0%D6%D8%CA%D3%BF%DA \t _blank 多重视口
原创作品,允许转载,转载时请务必以超链接形式标明文章 HYPERLINK /1130898/381907 \t _blank 原始出处 、作者信息和本声明。否则将追究法律责任。 HYPERLINK /1130898/381907 /1130898/381907
NeHe OpenGL第四十二课:多重视口
多重视口
画中画效果,很酷吧。使用视口它变得很简单,但渲染四次可会大大降低你的显示速度哦:)欢迎来到充满趣味的另一课。这次我将向你展示怎样在单个窗口内显示多个视口。这些视口在窗口模式下能正确的调整大小。其中有两个窗口起用了光照。窗口之一用的是正交投影而其他三个则是透视投影。为了保持
教程的趣味性,在本例子中我们同样需要学习迷宫代码,怎么渲染到一张纹理以及怎么得到当前窗口的分辨率。一旦你明白了本教程,制作分屏游戏以及多视图的3D程序就很简单了。接下来,让我们投入到代码中来吧!!!你可以利用最近的NeHeGL或者IPicture代码作为主要基本代码。我们需要看的第一个文件就是NeHeGL.cpp,其中有三节代码已经被修改了。我将只列出那些被修改了的代码。第一个且最重要的被修改了的代码就是ReshapeGL()函数。这是我们设置屏幕(主视口)分辨率的地方。现在所有的主视口设置都在画循环里完成了。因此这儿所有我们能做的就是设置我们的主窗口。 void ReshapeGL (int width, int height) // 当窗口移动或者大小改变时重新调整窗口{glViewport (0, 0, (GLsizei)(width), (GLsizei)(height)); // 重置当前视口}
下一步我们添加一些代码用于监视擦除窗口背景的Windows消息(WM_ERASEBKGND).如果它被调用,我们截取它并返回0,这样就阻止了窗口背景被擦除,并让我们自己来调整主窗口大小,这样就没有了我们以前常见
的那种恼人的闪烁。如果你还不明白我的意思,删掉 case WM_ERASEBKGND: 和 return 0; 你自己比较就能知道有何不同。 LRESULT CALLBACK WindowProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){DWORD tickCount; // 保存当前的时间__int64 timer; // 记录时间
// 返回窗口结构GL_Window* window = (GL_Window*)(GetWindowLong (hWnd, GWL_USERDATA));
switch (uMsg) // 处理消息{case WM_ERASEBKGND: // 检测Windows是否去擦除背景return 0; // 跳过直接返回
在WinMain函数中,我们需要修改窗口标题并设置分辨率至1024x768.如果由于某种原因你的显示器不能支持到1024x768,你可以设置低一点的分辨率,但是牺牲了一些细节。
window.init.width = 1024; // 宽window.init.height = 768; // 高
现在该是对lesson42.cpp文件动手术的时候了(主要代码)...我们以包含标准头文件和库文件作为开始吧. #include windows.h #include gl\gl.h #include gl\glu.h
#include NeHeGL.h
#pragma comment( lib, opengl32.lib ) #pragma comment( lib, glu32.lib )
GL_Window* g_window; Keys* g_keys; 然后我们声明一些我们打算在整个程序中都要用到的全局变量。mx和my纪录了当前所在迷宫中的房间。每个房间都被墙隔开(因此房间都是2个单元大小的部分)。with和height是用来建立纹理需要的。它也是迷宫的宽和高。让迷宫和贴图的大小一致的原因是使迷宫中的象素和纹理中的象素一一对应。我倾向于把宽和高都设成256,尽管这要花更长
您可能关注的文档
最近下载
- 企业采购管理蔬菜采购验收标准DOC56页.pdf VIP
- 2025年云南省中考物理试题卷(含答案解析).docx
- 体温测量软件GBT 25000.51-2016自测报告.docx VIP
- WS∕T 225-2024 临床化学检验血液标本的采集与处理.pdf
- 信息系统的使用与维护管理办法.doc VIP
- 环境影响评价报告公示大理州永平县汽车客运站环境影响评价报告表环评报告.doc VIP
- 2022年1月广东自考《07114现代物流学》试题和答案 .pdf VIP
- Unit 1 Happy Holiday(大单元教学设计)英语人教版2025八年级上册.pdf
- 2025年军队文职人员公开招录《管理学》真题库(含答案).pdf VIP
- 网络数据安全检查项及检查方法.docx VIP
文档评论(0)