glut

十大C++实战项目,你会几个?【高薪必备】

≯℡__Kan透↙ 提交于 2020-12-05 00:58:19
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:实验楼 市面上有很多C++的实战项目,从简单到进阶,学习每个项目都可以掌握相应的知识点。 如果你还是C++新手的话,那么这个C++的项目列表你可以拿去练手实战开发,毕竟学编程动手实践是少不了的! 如果你不知道C++可以用来做哪些项目,可以应用在哪些地方,那么,可以去小编的C++交流.裙 :九起久伞吧起伞留伞(数字的谐音)转换下可以找到了,里面有最新C++教程项目 * C++项目列表:* 1、C++ 实现太阳系行星系统 项目使用 C++实现 OpenGL GLUT 实现一个简单的太阳系行星系统,将涉及一些三维图形技术的数学基础、OpenGL 里的三维坐标系、OpenGL 里的光照模型、GLUT 的键盘事件处理。 2、C++实现运动目标的追踪 这个项目是在前面一个项目的后续项目,利用 OpenCV 来实现对视频中动态物体的追踪。 3、C++ 实现银行排队服务模拟 项目使用 C++对银行排队服务进行模拟,以事件驱动为核心思想,手动实现模板链式队列、随机数产生器等内容,进而学习概率编程等知识。作为可选进阶,这个模型同时还能稍加修改的应用到 CPU 资源争夺模型中。 4、1小时入门增强现实技术 项目利用C++

VS Code + MinGW + Clang + OpenGL (vscode 配置 opengl环境)

£可爱£侵袭症+ 提交于 2020-10-24 19:59:35
vscode配置opengl环境会遇到一些问题,这里是在看了一些博文之后给出的一篇完整的可行的配置 首先,要配置C++环境,网上有很多完整的配置C++环境的教程,这里就引用一条 https://www.zhihu.com/question/30315894 上面这篇博文里面使用的是64位环境 (!!!强调一下,你使用的MinGW是64位的 ,那么Clang也要是,glut也要是64位的 ,32位的同理) 这里附上64位需要的glut地址(这里考虑到墙的原因上传到码云 ) https://gitee.com/wentao-k/OpenGlDevelop/tree/master/glut64%E4%BD%8D 下载glut.h , glut32.lib , glut32.dl文件就行(这是我们需要使用到的), 看完第一个博客,你已经配置好你的Clang环境了,也就是C++的环境 然后我们开始配置glut环境,我把vscode需要的配置文件 包括,c_pp_properties.json , launch.json , setting.json , task.json 上传到码云 https://gitee.com/wentao-k/OpenGlDevelop/tree/master/.vscode 然后在vscode中,配置到自己的工作环境下 如图,放到自己创建的.vscode

【游戏开发】基于VS2017的OpenGL开发环境搭建

∥☆過路亽.° 提交于 2020-08-20 09:35:29
一、简介   最近,马三买了两本有关于“计算机图形学”的书籍,准备在工作之余鼓捣鼓捣图形学和OpenGL编程,提升自己的价值(奔着学完能涨一波工资去的)。俗话说得好,“工欲善其事,必先利其器”。想学习图形学和OpenGL编程必须先把开发环境搭建好,而马三只是在上学的时候稍稍做了一些基于Android平台的OpenGL开发学习,并没有搭建过OpenGL开发环境。因此在搭建过程中颇废了一番周折,也查阅了不少资料才算搭建成功,特此记录一下搭建过程,以备不时之需。 二、搭建环境 1.VS2017   这个不必多说了,基本做过开发的都会安装这个“宇宙最强IDE”了。直接去官网下载安装助手,然后安装即可。 2.GLFW库   正常来说开发进行OpenGL开发的话,glut库是必不可少的,但是马三在网上一搜啊,发现glut这个库过时了,现在比较新版的GLFW完全可以替代它。关于这些名词相关的具体介绍,我们会在稍后仔细介绍一下,我们还是先去 GLFW官网 把库下载下来。    图1:GLFW官网下载示意图 3.GLEW库   接着我们还需要下载GLEW库,众所周知,OpenGL只是一个标准,不同的显卡公司在不同的平台下对其有不同的实现,同时也是发布一些只支持自家显卡的拓展函数。通过引入glew库,我们完全可以不用理睬这些细节,安心写代码就好了。   同样还是去 GLEW的官网 下载我们所需要的内容

颜宁:一公对实验记录的重视,我总结出以下5点学以受用

我怕爱的太早我们不能终老 提交于 2020-08-20 09:17:32
文章 | 颜宁 来源 | 颜宁微博@nyouyou 颜宁微博截图 从我进Shi Lab的第一天,就被导师灌输: 好好记实验记录。 施一公在实验室(图源网络) 到现在还能想起进实验室rotation的第一天,正好赶上一公教当时二年级的Eric做实验,我就在旁边看着。因为第一次观摩做实验耳濡目染效果良好,于是也就成了一贯的习惯,在进实验室的第一年抓住一切机会用心观察、琢磨、总结其他资深成员做实验(详见:科学网《师父领进门,修行在个人》), 而印象最深刻的就是一公对实验记录的重视。 我大概总结一下: 颜宁在普林斯顿大学实验室(图源网络) 1. 实验记录是给【未来的自己和其他成员】看的,每一天都要好好整理; 也许很多内容,比如PCR、protein purification,每天同样的内容你都烦了,但是依旧要如实记录。别忘了,lab notes是可以用来作为呈堂证供的。我经常对学生说:你的工作体现在实验记录里。我们谈课题,你带着实验记录本给我看,如果没有当天的记录,等同于没做实验。 2. 一本新的实验记录本,前面空出五页,用来做索引或者回溯的时候写一些东西; 3. 每一天另起一页,标明实验日期(年月日)、标题 (也就是一句话总结当天的主要实验内容,比如Purification of GLUT1; subcloning of Nav1.7之类的,方便之后查看); 4. 实验记录本的页码要连贯

GLUT Tutorials 17:子窗口

拥有回忆 提交于 2020-08-18 08:22:09
博客转自: http://www.lighthouse3d.com/tutorials/glut-tutorial/subwindows/ 创建和销毁子窗口 With GLUT we can define subwindows, i.e. divide the main window in different regions, each with its own OpenGL context and callbacks. One possible application is to provide several views of the same scene simultaneously. In order to create a subwindow we use the function glutCreateSubWindow with the following syntax: int glutCreateSubWindow( int parentWindow, int x, int y, int width, int height); Parameters: parentwindow – the id of the parent window x, y – the top left corner of the subwindow, relative to the

GLUT Tutorials 17:子窗口的reshape

◇◆丶佛笑我妖孽 提交于 2020-08-17 04:02:08
博客转自: http://www.lighthouse3d.com/tutorials/glut-tutorial/subwindow-reshape/ The callback for the reshape function needs to do two things: it resizes the subwindows, and recomputes the projection matrices for each subwindow. In our case we’re not rendering any geometry in the main window, so we’ll skip recomputing the projection matrix for the main window. First let’s introduce the functions to resize, and reposition the subwindows. void glutPositionWindow( int x, int y); void glutReshapeWindow( int width, int height); Parameters: x,y – the top left corner of the window width, height – the

GLUT Tutorials 18:多窗口的rendering

无人久伴 提交于 2020-08-17 02:39:10
博客转自: http://www.lighthouse3d.com/tutorials/glut-tutorial/rendering-to-multiple-subwindows/ Before we start lets recall our callback definitions, as defined when the window and subwindows were created: idle function – renderSceneAll display func for main window – renderScene display func for subwindow 1 – renderScenesw1 display func for subwindow 2 – renderScenesw2 display func for subwindow 3 – renderScenesw3 We’ll start by the display functions for each window. The main window is covered with subwindows so we only want to paint it black. Since we are working with multiple windows the first

GLUT Tutorials 19:glutPostRedisplay vs. Idle Func

别来无恙 提交于 2020-08-16 20:25:57
博客转自: http://www.lighthouse3d.com/tutorials/glut-tutorial/glutpostredisplay-vs-idle-func/ . GLUT将会调用显示函数知道没有事件函数去处理,也就是说,只要没有事件函数处理,主程序尽可能调用显示函数。我们将建立一个很简单的交互程序,当我们按下键盘,触发键盘事件之后,显示函数将会被调用,屏幕将会被重新绘制。我们需要做的就是 注册显示函数和空闲处理函数为同一函数。 如果只有我们的OpenGL程序运行,或者仅仅是想要测试,这样设置是OK的。但是当OpenGL程序仅仅是我们想要运行的程序其中之一时,计算机资源此时将显得匮乏。导致这个问题的当然是GLUT程序,因为他一直持续调用显示函数,即使在没有任何需要更新的时候。Try checking the task manager tab for the processes and you can see that even if the render does not change from frame to frame, our GLUT app is eating CPU resources. GPU resources are also being used, of course. 当我们需要CPU或者GPU去处理其他事情的时候

GLUT Tutorials 7: GLUT高级键盘控制

送分小仙女□ 提交于 2020-08-13 03:57:26
博客转自:http://blog.csdn.net/xie_zi/article/details/1925667 这节我们将去介绍4个新的处理键盘输入的函数。 第一个函数允许我们去 禁止keyboard repeat 。函数原型如下: int glutSetKeyRepeat( int repeatMode); 参数: repeatMode:开启,禁用,或恢复auto repeat模式,下面是它可能的取值。 RepeatMode的可能取值如下: GLUT_KEY_REPEAT_OFF:关闭auto repeat模式。 GLUT_KEY_REPEAT_ON:开启auto repeat模式。 GLUT_KEY_REPEAT_DEFAULT:把auto repeat模式恢复到默认状态 注意这个函数,作用范围是全局性的。也就是,它会影响所有窗口的repeat模式。不仅仅是我们应用程序这一个。因此注意当使用这个函数关闭auto repeat模式后,有必要在程序结束时将auto repeat模式重设到默认模式。 第二个GLUT提供我们的函数,用来禁用keyboard repeat,这个让我们安全的忽视keyboard repeat,而不会影响其他程序。函数原型如下: Int glutIgnoreKeyRepeat( int repeatMode); 参数: RepeatMode:传递0