自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jiexuan357的专栏

永远也不完美的程序。。。

  • 博客(50)
  • 收藏
  • 关注

转载 第14章 Windows API 的跨平台开发

14.1 Windows API 跨平台开发概述  Windows API是Miscrosoft公司在推出其Windows系列操作系统时同时提供给广大用户的一个应用程序接口,在这套应用程序接口中定义了数以千计的可用于面向Windows程序设计的函数。用户使用这些函数可以轻易地完成诸如窗口生成并显示,消息循环和处理等各种工作。由于其良好的可重用性、Windows操作系统的紧密集成以及强大的功能,

2012-07-24 21:58:44 916

转载 第13章 动态数据交换和对象链接与嵌入

剪贴板  在Windows操作系统中大量使用剪贴板使用户能够在同一应用程序之中或不同应用程序之间传输数据。13.1.1 剪贴板数据格式  当用户选中某些数据并对它进行复制操作时,Windows把这些数据从选中区中读出并传送到剪贴板上:当用户使用粘贴命令时,该数据从剪贴板上读出并粘贴到插入位置。剪贴板倾向于对用户保持透明,用户甚至不会意识到它的存在。注意:剪贴板只是一个简单的数据

2012-07-24 21:58:14 1974

转载 第12章 Windows的内存管理

Windows是一个多任务的操作系统,由于同时可以运行多个任务,因此Windows必须小心地管理系统的存储空间,以便一个应用程序对内存的要求得到满足的同时不会影响其他任务的执行。  尽管微处理机向物理内存写或读都是使用物理地址,但是程序员在程序设计中却是使用逻辑地址来对物理内存进行操作。逻辑地址包括两部分:  1、段标识符 用于说明存取的内存段的值;  2、偏移值 相对于段地址的字节数

2012-07-24 21:57:33 963

转载 第十一章 动态链接库

动态链接库(也称为DLL、动态库或库模块)是Microsoft Windows最重要的组成要素之一。大多数与Windows相关的磁盘文件要么是程序模块,要么是动态链接库模块。迄今为止,我们都是在编写Windows应用程序,现在是尝试编写动态链接库的时候了。许多您已经学会的编写应用程序的规则同样适用于编写这些库模块,但也有一些重要的不同。动态链接库基础知识库的基本知识  正如前面

2012-07-24 21:55:59 4362

转载 第十章 多文档界面

多文档界面(MDI)是Microsoft Windows文档处理应用程序的一种规范,该规范描术了窗口结构和允许用户在单个应用程序中使用多个文档的用户界面(如字处理程序中的本文文档和电子表格程序中的电子表格)。简单地说,就像Windows在一个屏幕上维护多个应用程序窗口一样,MDI应用程序在一个客户区内维护多个文档窗口。Windows中的第一个MDI应用程序是Windows下的Microsoft E

2012-07-24 21:55:11 1185

转载 第九章 对话框

在 Miscrosoft Windows中,对话框就是应用程序创建的用于获取用户输入的一个临时窗口。应用程序一般用对话框来提示用户输入命令的附加信息。对话框通常都含有一个或多个用户可以输入文本、选择可选择项或者指导命令操作的控件。对话框的基础知识一、对话框概述  Windows提供了许多函数、消息和预定义的控件,用于帮助创建和管理对话框。这样,开发应用程序用户接口就变得更容易了

2012-07-24 21:54:39 739

转载 第七章 弹出式窗体与子窗体

我们讨论三种窗体,它们分别是“重叠式窗体”(overlapped window)“弹出式窗体”(popup window) 与“子窗体”(child window)。窗体风格1. WS_OVERLAPPED2. WS_OVERLAPPEDWINDOW3. WS_POPUP4. WS_POPUPWINDOW5. WS_CHILD6. WS_CHILDWINDOW

2012-07-24 21:53:44 1009

转载 第六章 鼠标消息与键盘消息

在Microsoft Windows 中,键盘和鼠标是两个标准的用户输入源,在一些交叠的操作中通常相互补充使用。当然,鼠标在今天的应用程序中比10年前使用得更为广泛。甚至在一些应用程序中,我们更习惯于使用鼠标,例如在游戏、画图程序、音乐程序,以及Web创览器等程序中就是这样。然而,我们可以不使用鼠标,但绝对不能从一般的PC中拆掉键盘。  相对于个人计算机的其他组件,键盘有非常久远的历史,它起源

2012-07-24 21:53:17 1373

转载 第五章 文本和字体

文本输出是应用程序经常需要实现的功能。许多程序的运行结果都必须以文本输出形式显示;文字处理程序更是主要以文本作为处理的对象。所以,程序员掌握文本输出的基本原理和技术具有重要的意义。文本输出需要解决的问题是如何修改显示文本的字体、颜色和大小,以及如何协调在不同设备上显示文本的差异。第一节 文本输出的基本知识1.文本的设备描述表属性  设备描述表( Device Context)是一个

2012-07-24 21:52:22 584

转载 第四章 WINDOWS绘图程序设计

图形设备接口(GDI:Graphics Device Interface)是Windows的子系统,它负责在视频显示器和打印机上显示图形。正如您所认为的那样,GDI是Windows非常重要的部分。不但您为Windows编写的应用系统在显示视觉信息时只使用GDI,就连Windows本身也只使用GDI来显示用户界面对象,诸如菜单、滚动条、图标和鼠标光标。  不幸的是,如果要对GDI进行全面的讲述,

2012-07-24 21:51:47 996

转载 第三章 WINDOWS 资源

大多数Windows程序都包含一个定制的图标,Windows将该图标显示在应用程序窗口标题栏的左上角。当程序被列在“开始”菜单中,或者被显示在屏幕底部的任务栏中,或者被列在“Windows资源管理器”中,或者作为快捷方式显示在桌面上时,Windows也显示该程序的图标。有些程序——诸如 Windows Paint一类的重要的图形绘制工具——也使用用户化的鼠标光标来表示程序的不同操作。许多Windo

2012-07-24 21:51:15 1174

转载 第二章 WINDOWS应用程序框架

创建窗口只需调用CreateWindow 函数即可,但实际上并不这么简单。 但实际上并非真得这么简单。虽然创建窗口的函数确实被命名为CreateWindow, 但您将发现 CreateWindow的第一个参数就是所谓的“窗口类名称”,并且该窗口类连接所谓的“窗口过程”。在我们调用CreateWindow之前,有一点背景知识会对您大有帮助。WINDOWS应用程序的基本结构  进行Wi

2012-07-24 21:50:29 1198

转载 第一章 Windows程序设计概述

Windows和Windows应用程序最大的优点就是用户界面的一致性。因为大多数用户都在不同的软件包上工作,而每一个软件包都有自己的用户界面,所以用户界面一致性的设计就显得非常重要。Windows环境中的每一个窗口都包含了相同的基本特性,由于这些基本特性在应用程序中是一致的,因而用户能很容易地适应新的应用程序。  对用户的另一个好处是使用了基于图形的图标来代表应用程序和数据。由于Windows

2012-07-24 21:49:51 887

转载 第八章 子窗体控件

http://dec3.jlu.edu.cn/webcourse/T000024/files/bjjx/bjjx8.htm第八章 子窗体控件  图形界面和消息处理是任何一个基于Windows的应用程序必须认真考虑的事情。在前面的章节中已经介绍了Windows应用程序消息处理的机制,这种机制对于所有对象的消息处理都是一致的,即实行客户(用户操作或请求)到操作系统(捕获消息

2012-07-24 15:35:34 1112

转载 回调函数定义和使用

最近经常使用回调函数,有时感觉有点混乱,对回调函数理解不透,昨天花点时间深深品味了一下回调函数,写下博客记录一下,言规正转,VC中的定时器是一种特殊的回调函数,只要我们设置好了定时器,我们就不用管什么时候调用定时器处理函数,是操作系统负责调用,定时器的处理函数还是我们自己去写实现。      为什么 要用回调函数呢,这个问题我也想过,现在先说说回调函数的定义 和使用,过下在回答为什么 要使

2012-07-23 14:42:49 825

转载 怎样使用C++回调函数

程序员常常需要实现回调。本文将讨论函数指针的基本原则并说明如何使用函数指针实现回调。注意这里针对的是普通的函数,不包括完全依赖于不同语法和语义规则的类成员函数(类成员指针将在另文中讨论)。声明函数指针    回调函数是一个程序员不能显式调用的函数;通过将回调函数的地址传给调用者从而实现调用。要实现回调,必须首先定义函数指针。尽管定义的语法有点不可思议,但如果你熟悉函数声明的一般方法

2012-07-23 14:41:41 476

转载 关于Whisperwind数学库的选择:XnaMath

in Whisperwind(我的开源游戏项目) , by 李素颙in Whisperwind(我的开源游戏项目) , by 李素颙最近又开始愁数学库的问题了,折腾了一天,总算定了下来,大抵上如下:一般的开源引擎或是商业引擎基本上的选择都是自己去写,写一个通用库然后按照自己需要支持的平台去针对性优化,如果实力强悍这种方法当然是最好的,易控

2012-07-20 21:20:38 950

转载 DirectX 11 SDK文档(八)

总结      在前面的教程中,我们介绍了光照。现在我们为立方体添加纹理。我们将介绍静态缓存的概念,并解释如何使用缓存以最小的带宽来加快处理。纹理映射      纹理映射是指2D纹理到3D几何模型的投影。我们可以认为它是一种包装。为了完成这项任务,我们不得不确定2D图像跟表面上顶点的关系。      这个立方体比较适合进行纹理坐标的设置。对于复杂的模型,手动地设置纹

2012-07-20 20:54:51 803

转载 DirectX 11 SDK文档(七)

总结      在前面的教程中,这个世界看起来令人厌烦,因为所有的对象以同一种方式显示。在这个教程将介绍简单的光照概念,并介绍如何去应用它。这个技术是方向光。光照      在这个教程中,将介绍最基础的光照类型是方向光。方向光不论对象跟光源的距离,都受到统一的关照。当光照到一个表面时,光照的发射计算这个表面和光线的夹角大小。当光线直接照射到表面时,表面会将所有的光反射回去,

2012-07-20 20:54:26 670

转载 DirectX 11 SDK文档(六)

总结      在前面的教程中,我们将模型空间中的立方体渲染到屏幕上。在这个教程中,我们将扩展变换的概念,并使用这些变换展示简单的动画。变换      在3D图形学中,变换经常用来操作顶点和向量。也用来将一个对象从一个空间变换到另一个空间。变换能够能够用矩阵进行多种操作。这里有3个典型的原始变换:平移(与原点的位置关系),旋转(与X,Y,Z轴的方向关系),缩放(与原点的距离

2012-07-20 20:54:05 1246

转载 DirectX 11 SDK文档(五)

总结      在前面的教程中,我们成功地在应用程序窗口的中央绘制了一个三角形,我们没有吧注意力集中在顶点缓冲区里的坐标信息。在这个教程中,我们将详细描述3D坐标和Transformation。3D空间      在前面的教程中,我们很明智地把三个顶点信息放置在屏幕上。然而,不具有一般性。那么,我们需要一个系统来表示在3D空间中的对象和一个系统将他们显示出来。

2012-07-20 20:53:35 813

转载 DirectX 11 SDK文档(四)

总结      在前面的教程中,我们创建了顶点缓冲区,并且传送了一个三角形的数据给GPU渲染。现在,我们通过graphics pipeline来看看,它每个步骤是怎么工作的。渲染器的概念,对系统的影响将被一一解释。Graphics Pipeline      在前面的教程中,我们创建了顶点缓冲区,并且我们将顶点格式和顶点渲染器联系在一起。现在,我们将解释渲染器是如何工作的。

2012-07-20 20:53:00 970

转载 DirectX 11 SDK文档(三)

总结      在前面的教程中,我们创建了一个小型的,能够显示单颜色的窗口的Direct3D 11应用程序。在这个教程中,我们将扩展这个应用程序将一个三角形显示在屏幕上,我们将贯穿这个过程来创建关于三角形的数据结构。效果如上图。三角形的元素      一个三角形由三个点组成,也可以叫做顶点。用一个顶点数组来定义一个三角形,为了GPU能够渲染这个三角形,我们必须告诉GPU三角形的三个顶点

2012-07-20 20:52:32 1123

转载 DirectX 11 SDK文档(二)

总结     这是第一个教程,我们将通过必要的元素来创建一个小型的DirectX 11应用程序。每个DirectX 11应用程序必须拥有这些元素得以正常运转。这些元素包括创建一个窗口对象和设备对象,并且能够显示一种颜色的窗口。创建DirectX 11 设备      创建窗口对象和消息循环请参见DirectX 11 SDK文档(一)。现在我们有一个能够显示的窗口,接下来我们

2012-07-20 20:51:57 746

转载 DirectX 11 SDK文档(一)

原文地址:http://blog.csdn.net/cmt100/article/details/6343274总结      这是一个初步的教程。我们将通过必要的步骤来创建一个Win32 Application。我们创建一个空白的窗口为DirectX 11做准备。创建窗口      每一个窗口应用程序需要至少一个窗口对象。甚至在开始获得Dire

2012-07-20 20:50:25 3019

转载 #define用法总结

刚开始接触VC++的同学们,估计对这个东西有这莫大的恐惧。这个经常写在添加头文件的地方的奇怪语句。如果看过mfc那么,那么拿出一些application framework里面的宏,估计会吓死一片。说了这么多只是想说,不明白其用法的人很害怕,但要是知道它,熟悉它,那么你会觉得它很美妙。 进入正题:#define的个用法: 1:#define MAX  0x18第一个用法

2012-07-09 15:02:56 428

转载 正则表达式30分钟入门教程

一些要说的话:如果你没有正则表达式的基础,请跟着教程“一步步来”。请不要大概地扫两眼就说看不懂——以这种态度我写成什么样你也看不懂。当我告诉你这是“30分钟入门教程”时,请不要试图在30秒内入门。事实是,我身边有个才接触电脑,对操作都不是很熟练的人通过自己学习这篇教程,最后都能在文章采集系统中使用正则表达式完成任务。而且,他写的表达式中,还使用了“零宽断言”等“高级”技术。

2012-07-09 10:47:47 311

转载 DXUT 设计指南

DXUT设计指南   DXUT是一个建立在Direct3D API之上的,被大部分Direct3D指南和例子所使用的层。它的目标是创建Direct3D例子、原型、工具,更容易的建立坚固、专业的游戏。DXUT概观初始化DXUT使用基于DXUT的程序窗口使用DXUT设备使用DXUT主循环处理DXUT的错误DXUT高级设备选择DXUT高级功能

2012-07-09 00:35:29 685

转载 8、DXUT框架

Copyright © MikeFeng  QQ: 76848502  温故而知新,前面的DXUT框架我只看了一个外壳,我觉得这次框架的亮点就在于它对于图形界面的支持。如果说Win32 API SDK中gdi部分是主旋律,那么MFC就是一个流行歌曲作家发挥之后完成的作品,而DXUT的图形框架则继承了Platform SDK中的风格,代码行间给人一种高贵的感觉。-,-扯远了,拉回来。因为gd

2012-07-09 00:34:08 364

转载 7、多重纹理和纹理混合

Copyright © MikeFeng  QQ: 76848502  多重纹理MultiTexture:使用多张纹理来渲染一个场景,只调用一次(DrawPrimitive)  纹理混合TextureBlending:按要求混合在同一个位置的像素点上色彩或透明度  在多重纹理(multitexturing)出现之前,DirectX支持的是多次渲染(multipass

2012-07-09 00:33:46 1061

转载 6、光照和材质

Copyright © MikeFeng  QQ: 76848502  D3D支持三种光:环境光(Ambient Light),漫反射(Diffuse Light)和镜面反射(Specular Light)。镜面反射需要更多计算,因此D3D默认关闭镜面反射。可以通过给SetRenderState传D3DRS_AMBIENT来设置环境光。  在现实世界中,我们看到一个红色的物

2012-07-09 00:32:58 1320

转载 5、动画和矩阵变换

Copyright © MikeFeng  QQ: 76848502   D3D中世界的运动是通过矩阵变化完成的。这里不打算讲数学知识,相关问题请参考计算机图形学书籍。  在D3D中矩阵变换分为三种:世界变换,观察变换和投影变换。世界变换描述了物体本身的缩放,旋转和平移,也就是物体本身的运动;观察变换描述了一个观察者在场景中的位置和朝向;投影变换描述了观察者可以看到内容的范围,类似

2012-07-09 00:32:35 684

转载 4、纹理

Copyright © MikeFeng  QQ: 76848502   纹理在D3D中是一个非常重要的概念,它的出现改变了以前3D物体表面不真实的状况,为程序员提供了将2维图像应用到3维物体上去的功能。请做好心理准备,因为新的概念将像暴风骤雨般的袭来,而在没有弄懂基本概念之前是不可能进行下一步的学习的。下面是一些术语的大致概念:纹理( Textrue ):将要应用到3维(或者2维

2012-07-09 00:32:03 466

转载 3、索引缓冲

索引缓冲Index Buffer是由用户定义的,用来告诉D3D渲染顶点顺序的WORD或者DWORD数组。索引缓冲离不开顶点缓冲,但是顶点缓冲却不一定需要索引缓冲。创建索引缓冲的过程和创建顶点缓冲类似,首先是声明,然后在OnCreateDevice中初始化和创建,在OnFrameRender中渲染,在OnDestroyDevice中销毁。相关代码如下:声明:LPDIREC

2012-07-09 00:31:06 494

转载 2、顶点缓冲

Copyright © MikeFeng  QQ: 76848502  D3D9以一种比较易于理解的方式让程序员来组织游戏画面,这种方式就是顶点缓冲。程序员可以自己定义一组记录多边形定点颜色,纹理位置等的数组,让D3D9去自动生成多边形内部每个像素的信息。为了和以后的vertex shader相区别,我们现在谈论的都是固定功能的顶点处理( Fixed-Function )。  上面

2012-07-09 00:30:26 475

转载 1、框架

Copyright © MikeFeng  QQ: 76848502  友情提醒:所谓的框架是指SDK目录下\Samples\C++\Common路径下的DXUT系列函数包装。学习框架的前提是必须有足够的Windows API,GUI编程经验,必须熟悉Windows的消息机制,回调机制,最好有万行左右的C/C++编程经验。MFC在这里没有任何用处。另外我觉得最好在看程序之前对于D3D的所有

2012-07-09 00:29:55 396

转载 四元数旋转公式的证明

四元数旋转公式的证明对于左手坐标系,顺时针旋转有:V’q = Q*Vq*Q*;其中V’q为旋转后的四元数。假设旋转轴单位向量为q,要旋转的向量为v.旋转角度为θ,则四元素有:Vq =0+v=v;Q=cos(θ/2)+sin(θ/2)q;Q*= cos(θ/2)-sin(θ/2)q;带入上面公式有:V’q=(cos(θ/2)+sin(θ/2)q)*(0+v)*(cos

2012-07-09 00:22:09 1444

转载 物体绕任意向量的旋转——四元数法、旋转矩阵法、欧拉角法的比较

3D空间中的旋转可用旋转矩阵、欧拉角或四元数等形式来表示,他们不过都是数学工具,其中在绕任意向量的旋转方面,旋转矩阵和四元数两种工具用的较多,欧拉角由于存在万向节死锁等问题,使用存在限制。(本文假设坐标系为左手坐标系中,旋转方向为顺时针。)所求问题:给定任意单位轴q(q1,q2,q3)(向量),求向量p(x,y,z)(或点p)饶q旋转theta角度的变换后的新向量p'(或点

2012-07-09 00:18:17 5451

转载 四元数旋转

http://caterpillar.onlyfun.net/Gossip/ComputerGraphics/QuaternionsRotate.htm在討論「四元數」之前,我們來想想對三維直角座標而言,在物體旋轉會有何影響,可以擴充三維直角座標系統的旋轉為三角度系統(Three-angle system),在Game Programming Gems中有提供這麼一段:Quat

2012-07-09 00:16:55 750

转载 向量几何在游戏编程中的使用6

3-D空间中的基变换与坐标变换-Twinsen编写-本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教-我的Email-address: popyy@netease.com一、空间坐标系的基和基矩阵在3-D空间中,我们用空间坐标系来规范物体的位置,空间坐标系由3个相互垂直的坐标轴组成,我们就把它们作为我们观察3-D空间的基础,空间中物体的位置可以

2012-07-09 00:12:04 671

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除