上一篇文章中我们认识了Direct3D中一些空间坐标系,其中包含了几何模型坐标系,世界坐标系,观察坐标系,投影坐标系以及屏幕坐标系,一些纯理论的知识。今天我们来了解一下这些坐标系的变换,并且通过一个例子来说明这些坐标系的关系。这些变换主要在于几何模型到世界坐标系的变化,世界坐标系到观察坐标系的变化,和观察坐标系到投影之间的变换,最后将投影所得的图像通过绘图管线在屏幕上绘制出来。 Read More
在前一篇文章中我们知道了顶点着色器和像素着色器的用途,在例子中也知道了如何在3D的坐标系中画一个2D的图像,即画一个三角形,这次我们需要知道如何在3D坐标系中呈现一个3D的图像,并且了解一下在3D空间中几个坐标系的认识。这些在游戏编程中都会使用到,因为每个3D物件都有自己的坐标系,至于如何转换这些坐标系我想可能我们需要在下一节中进行另一番讨论。学习是无止境的,贵在坚持,希望我也能够坚持我童年时的梦想,在不久的将来实现我的游戏梦。 Read More
前面我们学习了Directx 11如何在屏幕上绘制一个图形(三角形),其中涉及到着色器,我们只是使用了其中的方法,而没有讲解着色器是如何工作的,到底什么是着色器等等,今天将来了解一下着色器到底是什么!!!由于在Directx 11中包含了多种着色器,而有些着色器在一些高级的应用中才会用到,因此作为一个初学者,先了解顶点着色器和像素着色器就OK了,其它的在碰到的时候再进行深入了解。 Read More
在前面我们讲过了如何初始化D3D11Device设备初始化等等,这里所讲的绘制图形将在上一篇文章的项目里进行扩展,在屏幕中绘制图形。在3D的呈现中最小的单位为三角形,无论我们看到的是多么大或多么小的,都是有一个或很多个三角形通过各种方向,角度构成的,当然这会涉及到很多数学中的几何学问题,最悲剧的就是我在大学里却没学好代数以及几何学,有学也忘记了。不过Directx SDK中以及为我们解决了很多几何上的问题,通过他们的方法就可以得到结果,说了这么多目的就是我告诉大家,要掌握高阶运用,必然要学会基础知识,所以我们这里就来学习一下如何在屏幕上绘制一个三角形,并涂上颜色。 Read More
最近正在学习Directx 11的开发,上一次记录了Win32应用程序的基础,主要是注册窗体类,加载图标和鼠标,处理事件循环等,链接为:C++Directx11开发笔记一:Win32应用程序窗体创建。今天我们要介绍的是Direct3D基础,其中包括Direct3D 11的设备初始化等等来初步认识Direct3D这个神秘的面纱。由于要用到Directx11所以需要在项目中引入一些库,为了便于后面操作,这里列举了所需要的常见的库名称:d3d11.lib(d3d11d.lib调试下),d3dcompiler.lib(HLSL编译器,HLSL开发一:语言基础),dxerr.lib(错误库),dxguid.lib(这个库定义了Direct3D中所需要的GUID,即COM需要引用的,由于Directx是一个COM组建哦,所以如果不引入会出现问题的哦)。以上这些就是常见的Direct3D在C++编程中需要引入的库,可以在解决方案中的链接输入中引入,这个是C++基础这里就不多说了哦。 Read More
在学习Directx11编程中,你会发现图形渲染等等很大一部分需要一种叫做HLSL(High Level Shading Language),中文应该叫:高级着色器语言,由微软拥有及开发的一种语言,HLSL 独立的工作在 Windows 平台上,只能供Direct3D使用。 HLSL是微软抗衡GLSL的产品,同时不能与OpenGL标准兼容,废话不多说了,我们来看看到底啥子是HLSL,希望我们可以慢慢熟悉他。 Read More
好久没有关注微软的开发了,今天看到了MVC3,顺便学习学习,我觉得Razor是个不错的做法,比使用简单多了,而且好看。首先“_”开头的cshtml文档将不能在服务器上访问,和asp.net中的config文档差不多。
Razor语法以@开头,以@{}进行包裹,在变量上使用private等等区域限定基本没啥作用,所以就不需要了,直接var声明即可。代码区分大小写,如果使用vbhtml估计就不区分了,本人使用c#所以不大清楚。初级web开发者都喜欢HTML和.NET并用,这个就满足了你的需求,感觉微软越来越........ Read More
union主要是共享内存,分配内存以其最大的结构或对象为大小,即sizeof最大的。在C/C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 选1”),我们也可以使用联合体来发挥其长处。 Read More