最近在学习DIRECTX11,在学习过程中编写了一个程序,到现在发现这个程序也有几行代码了,结构还算整齐,就想把这个程序分享出来,其中涉及到了C++程序的架构,windows窗口程序编写,和DirectX11图形程序的知识.希望大家喜欢.程序风格和很多知识来源于这个网站:http://www.rastertek.com/index.html .大家想深入学习Dx的可以去看看. 先说程序框架吧.我的程序结构及文件如图所示: 在这里,main.cpp是入口函数(WinMain)所在的文件,其余的既有…
主菜终于来了.这个d3dclass主要做的工作是dx11图形程序的初始化工作,它将创建显示表面交换链,d3d设备,d3d设备上下文,渲染目标表面,深度模板缓存:设置视口,生成投影矩阵. D3D设备:可以看成是一个接口,获得这个接口后就能创建各种d3d对象 D3D设备上下文:应该也可以看成是渲染环境的接口吧,使用它就能定制各种渲染环境,对绘制环境进行配置 显示表面交换链:显示表面的集合,显示表面是什么?是当前屏幕内容的内存映射,这或许应该说是主显示表面,与主显示表面同在交换链里的是副显示表面.它们…
这是框架的第三层graphicsclass,这个类才真正可以说是整个程序的框架,因为它组织了后面所有的成员. 代码: graphicsclass.h #pragma once #include<Windows.h> #include <d3d11.h> #include <d3dcompiler.h> #include <D3DX11.h> #include <xnamath.h> #include"cameraclass.h"…
整篇文章中对于directx11的知识的介绍并不多,我也不知道怎么介绍,也应该说对于directx,它有它自己的部分,比如设备(device),设备上下文(devicecontext),顶点缓存,索引缓存之类,也有图形学的部分比如世界矩阵,观察矩阵,投影矩阵,三角形渲染,光照,混合.要将这里涉及的api的功能,参数,对象一一说明,非常难.要将图形学里世界矩阵,观察矩阵,投影矩阵的推理,为什么选择渲染三角形而不是渲染四边形五边形这些一一明说,更不易(这个内容是我自己根据<3d游戏大师编程技巧>然…
先上代码: systemclass.h #pragma once #include"graphicsclass.h" const bool FULLSCREEN = true; class systemclass { public: systemclass(); ~systemclass(); bool Initialize(); void Run(); void Shutdown(); private: graphicsclass *m_graphics; HWND m_hwnd;…
粒子系统类,粒子系统是游戏里细小元素的控制系统,虽然感觉上它对游戏的影响不大,但是其实有了它能给游戏增色不少.粒子系统控制着细小元素的生死,运动,纹理.对它的编写让我知道,游戏里的这一片从天空飘落的雪花其实是之前那一朵已经融化在地上的雪花. 这个类我还没有编写完整,因为我发现如果要真正实现那种很美的效果我还要多加学习啊.使用广告版技术让人觉得它真的是个粒子,开启alpha通道能让粒子与背景融为一体,开启光照能让粒子煜煜生辉,给纹理混合上颜色才能让粒子真正的变幻幻幻(不是打错字)起来. parti…
模型类是世界空间中的表示物体的类,那么他的所做的事就是加载模型,移动模型,渲染模型 modelclass.h #pragma once #include <d3d11.h> #include <d3dcompiler.h> #include <D3DX11.h> #include <xnamath.h> #include<fstream> using namespace std; #pragma comment(lib,"d3dx11.…
cameraclass是一个相机类,它的作用是生成非常重要的观察矩阵.本小节涉及到一点数学知识,相对前面需要只是填充,调用,算是比较有趣的吧. cameraclass.h #pragma once #include <d3d11.h> #include <d3dcompiler.h> #include <D3DX11.h> #include <xnamath.h> #pragma comment(lib,"d3dx11.lib") #pr…
这个类是用来创建着色器并设置输入布局的. 这个类比较特殊,它创建的着色器与Effect文件有关,effect文件是用高级着色语言(hlsl)编写的. shadersclass.h #pragma once #include <d3d11.h> #include <d3dcompiler.h> #include <D3DX11.h> #include <xnamath.h> #pragma comment(lib,"d3dx11.lib")…
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点也都能说出了123来,但是这些孤立的点终究显得太零散了,因此,我想从今天开始,以最经典的手机安全卫士项目为例,自己锻炼一下,也是想和大家交流交流,希望大家都能给出见解,共同进步. 七.应用程序的更新安装 当下载成功后(onSuccess方法中) 建立一个安装软件的方法: 具体代码: private…
Java小项目之租车系统 一:项目背景介绍: 根据所学知识,编写一个控制台版的“呱呱租车系统” 功能: 1.展示所有可租车辆: 2.选择车型.租车量: 3.展示租车清单,包含:总金额.总载货量以及其车型号.总载人量及其车型: 二:项目分析: 数据模型分析: 业务模型分析: 显示和流程分析: 三:数据模型分析: 1.通过对现实世界的事与物主要特征的分析.抽象,为信息系统的实施提供数据存取的数据结构以及相应的约束: 2.数据结构组成:操作(方法).属性: 如现实世界中的汽车,最终会转化为一段代码:…
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/8191036.html 这里不知道会不会有人是真的新手 新新手 不知道怎么 如何建立一个MFC 工程 应该不会吧? 就是 打开VS 新建项目-MFC -MFC工程-点基于对话框 -和在静态库中使用 然后下一页将关于对话框取消了 不然会有两个对话框出来 然后点击完成 具体如下 步骤1:双击打开vs2013,进入起始页,按Ctrl+Shift+N组合快捷键(此时也可以一步步新建->项目操作),可以…
实现内容: axios取到的数据在前端使用(父子组件各自应该怎么使用) 一.简单使用(在哪取在哪用) 1.在App.vue中script中加上data(data专属于当前组件,父子组件传参通过prop,prop优先级高于data,这个我们稍后讨论),created中的this.xxx就指向data中的数据(简单来说就是先在data中定义) 2.我现在是直接在App.vue中写的getScience.getLiterature.getHumanity取得数据,要在App.vue中直接用的话这样写:…
恍如眨眼间,痞子衡在飞思卡尔/恩智浦已经工作 8 年多了,前 5 年主要是在软件团队,最近 3 年在系统团队.所处团队不同,工作思维也不同,自从转到系统团队,开始跟客户打起交道,对待问题和解决问题的立场都发生了明显变化,尽量都想着从让客户舒服的角度去处理问题. 在系统团队这三年多来,基本上每年都会做一个小项目,2018 年做的是 MCUBootUtility(一站式下载工具),2019 年做了 MCUBootFlasher(专用量产工具),2020 年则是 i.MXRT-UFL(超级下载算法),…
C语言写贪吃蛇本来是打算去年暑假写的,结果因为ACM集训给耽搁了,因此借寒假的两天功夫写了这个贪吃蛇小项目,顺带把C语言重温了一次. 是发表博客的前一天开始写的,一共写了三个版本,第一天写了第一版,第二天写了第二版和第三版. 相信C语言写个小游戏或小项目是大多数计算机相关专业的学生都做的事情,但是作为一个数学专业的学生,我们教研室的老师对C语言的要求也就比较低了,大一没有让我们做个小项目实践一次.至今为止用C/C++做过的三个小项目(大作业),一个是外校同学让我帮忙写的学生信息管理系统(天呐,这…
所用的IDE为idea,数据库用的是Navicat for MySQL. 好了,开始正题,今天要做person小项目,有以下几个步骤: Navicat for MySQL数据库的构建,以及如何建person表 在idea中导入mysql-connector-java-5.0.8-bin.jar包 创建person小项目的目录 具体代码的书写 第一步,Navicat for MySQL数据库的构建,以及如何person建表 Navicat for MySQL是一套管理和开发MySQL或MariaD…
学习机器学习相关技术的最好方式就是先自己设计和完成一些小项目. Python 是一种非常流行和强大的解释性编程语言.不像 R 语言,Python 是个很完整的语言和平台,你既可以用来做研发,也可以用来开发产品体系. 而且,Python 还有很多模块和程序库供我们选择,从而针对一个任务能有很多个解决方案.怎么样,听起来还是很厉害的吧? 如果用 Python 执行机器学习,刚开始时最好方式就是先完成一个小项目,为什么这么说呢? 因为这会让你先懂得如何安装和启动 Python 解释器(这是最起码的要求…
转载自: http://blog.csdn.net/sunkes/article/details/51189189 Andriod小项目——在线音乐播放器 Android在线音乐播放器 从大一开始就已经开始自学Java和Android了,到现在差不多有一年了. 终于到了开始做项目实战的阶段了.就先DIY个在线音乐播放器. 实现了以下功能: 这个播放器可以从本机电脑搭建的简易服务器里异步读取并解析json数据,播放音乐,实现音乐切换,时间显示,以及显示播放进度. 程序有三个界面,启动画面,音乐列表…
不知道大家有没有用过XShell这款工具,这款工具通过windows可以远程操作处于开机状态的linux操作系统,也就是说把你的电脑和一台服务器连入网络,你通过输入服务器所在的IP地址建立一个会话就可以远端操作linux的服务器了,十分方便. 这次这个模拟XShell的小项目就是类似的功能 执行流程: windows客户端输入命令,通过网络传输到linux服务器端上,linux服务器端执行命令,将执行命令产生的结果保存进文件,然后再将文件传输回windows客户端进行展示. 问题思考:真的有必要…
个人认为学习3D图形程序开发,有两套经典教程.D3D的<D3D游戏开发编程基础>也就是红龙那本书.OpenGL的NEHE教程.为向经典致敬,将我之前翻写他们的程序开源. 我所做的工作是将其所有的DEMO集成到一个项目中.所有的DEMO使用同一个渲染设备.这样可以在一个进程中自由地切换DEMO.写这套东西最大的麻烦是,每一个DEMO对渲染设备状态做出的改变,在其退出时需要恢复回去.这看上去很容易,但当出现问题时查起来却很麻烦,因为教程中的DEMO实在是太多了.最常见的问题是渲染效果不对了,这在搞…
Java小项目--坦克大战<TankWar1.0> 这个小项目主要是练习j2se的基础内容和面向对象的思想.项目实现了基本的简单功能,我方一辆坦克,用上下左右键控制移动方向,按F键为发射炮弹,敌方有10辆坦克,我方阵亡或者敌方挂光了游戏就结束了.用大小实心圆表示坦克和炮弹.这是最初版本,界面不够友好图形很土鳖,没有网络功能.在后续版本中会添加更炫的图片和网络功能,并加入聊天室,可以局域网内聊天和对战. 效果图: 项目包括4个文件,我把它们贴出来. 文件一:TankClient.java Tan…
上一篇已经介绍了celery的基本知识,本篇以一个小项目为例,详细说明django框架如何集成celery进行开发. 本系列文章的开发环境: window 7 + python2.7 + pycharm5 + celery3.1.25 + django1.9.4 一.项目功能 在web应用中,用户触发一个操作,执行后台处理程序,这个程序需要执行很长时间才能返回结果.怎样才能不阻塞http请求,不让用户等待从而提高用户体验呢?这是本例需要解决的问题.具体设计是:用两个网页进行展示,一个网页是提交加…
实现内容: 写路由接口(express) axios取数据 一.写接口 1.我们要在前端取到后端的数据(之前写的data.json)可以用vue-resourse或者用axios,在vue2之后官方就不再维护vue-resourse,推荐使用axios. 2.在axios取到数据前要先写一下路由接口,不同版本vue-cli建的文件目录有一点不一样. 我用的是vue2.5.2,写路由接口是在build文件夹下的某文件,以下分别列出高版本和低版本写法: ①2.5.2版本 文件里加上这些程序: dev…
Sudoku 小项目 - 软工第二次作业 Part 1 · 项目相关 Github 地址: https://github.com/TheSkyFucker/Sudoku 项目的更多信息以及所有开发文档见 README.md 整体过程,Todolist工具: Teambition 部分动态 撰写该文时 SourceTree 结构如下: Part 2 · PSP 表格 Statu Stages 预估耗时 实际耗时 Accept [计划]Planning 60 100 Accept -- 估计时间 E…
这是我最近接的一个小项目,花了是整整四天多时间. 任务是将http://www.examcoo.com/index/detail/mid/7网站下所有的试卷里的试题全部提取出来,首先按照题型进行分类,接着分析出题目的类型 类别 来源 出题时间等等信息,最终将这些信息转化到excel表格中,excel中的数据有着统一的格式.其中有些信息有关医学,故而需要自行了解. 由于仅仅是是为了完成最终的任务,故而没有使用什么爬虫框架之类的,也没有使用什么数据库来保存数据,尽量做到快速高效,因为你用的东西越多越…
写这篇文章之前先吐槽一下,最近换了一个公司,是给一个国企做外包,有两个月了,感觉这里的气氛有点不爽,还有点怀念以前的公司.具体听我说来,这里有几个团队,.net,java,手机开发,.net只有6个人,其他团队都很多人,没办法,这个貌似国际惯例了. 用.net在这里开发一个类似展示信息的系统,是航空公司的运营信息,包括飞机,跑道,地勤,机场等.java做的是飞机排班系统,一听说明白,.net受歧视啊.这个还不是最主要的,我们做的这个系统没有什么重要的逻辑,无非是展示一下表,图等,但是项目经理给我…
介绍:学了quartz2D的绘图知识后,我根据它的一些功能制作了一个小项目:涂鸦画板. 功能:绘制各种图形,还可以选取相册上的照片做涂鸦,然后保存到相册中.其中,还包括功能有:颜色的选取.线宽的选取.橡皮擦除.撤销上一次绘制痕迹.清除所有痕迹. 用到的自定义控件:工具栏控件(UIToolBar).工具栏上的按钮控件(UIBarButtonItem).警告框控件(UIAlertView.UIActionSheet).图像选择器控制器控件(UIImagePickerController)等. 需要的…
昨天写了一篇flask开发环境搭建,今天继续,进行一个实战小项目-blog系统. blog系统很简单,只有一个页面,然而麻雀虽小五脏俱全.这里目的不是为了做项目而做项目,这篇文章本意是通过这次练习传达以下几个知识点: 1.从全局上了解flask项目的目录结构 2.flask项目的运行机制 3.flask框架实现MVC架构 4.flask-sqlalchemy 操作mysql数据库 一.新建项目:blog系统 在pycharm中,新建flask项目,如下图: 完成后的目录结构是这样的:非常简单,一…
由来 我最早接触到图这个概念是在大二的离散数学当中图论相关的内容,当时是以著名的哥尼斯堡七桥问题引出图论的概念,现在依然记忆犹新(不过只是记得这个名字,具体的解题思路我重新温习了一下才想起来),当时也提出了求最短路径的迪杰斯特拉算法,不过没有用编程语言具体实现. 之后在数据结构的学习中,又出现了图的相关知识,提出了在计算机中存储图的几种方式,我们学校的课程中学习的是邻接表和邻接矩阵,同时也用编程语言实现了具体的算法. 离散数学中的图用几何图形表示,清晰明了,但实现算法时步骤不清晰:邻接矩阵和邻接…
扫雷 我之前分享的小项目和小游戏,电影购票.坦克大战.捕鱼达人.贪吃蛇等,虽然已经是耳熟能详人尽皆知的项目和游戏,但是保不齐真的有人没接触过. 今天分享的这个项目,我不相信没人接触过(仅限80后-00后).扫雷,这几乎所有电脑都有的一款超级小游戏,在全国各地的微机课上饱受欢迎,玩法紧张刺激.老少皆宜,而且还益智.今天便分享用java怎么实现这一款神作.(文末附带源码素材获取方式) 游戏介绍: 扫雷就是要把所有非地雷的格子揭开即胜利:踩到地雷格子就算失败. 游戏主区域由很多个方格组成.使用鼠标左键…