![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Direct
锐萌瑞
这个作者很懒,什么都没留下…
展开
-
Direct3D9之二学习资源篇
Direct3D9的学习就不献丑了,毕竟我也很菜,下面可以推荐一下学习路线。首先龙书如果有的话当然是好的,这个时候你需要有龙书的源码,自己百度吧。然后其实龙书中有些讲的也不是很详细,可以推荐一个网站http://www.directxtutorial.com/,按照上面有很多详解,英文不好的可以用谷歌浏览器的翻译。当然还可以推荐浅墨的一本梦想之书《windows游戏编程之从零开始》上面原创 2017-11-07 20:16:38 · 334 阅读 · 0 评论 -
D3D11之一,初始化窗口
本来不打算写11的学习过程的,但是发现网上用VS2015写D3D11的教程少之又少,大多还是用旧的IDE,和旧的SDK还有数学库之类的,而Tutorial上对于VS2015教程又不全。故而在这里记录一下自己的学习过程,让若干年以后能回头看看自己的学习过程。正题:The Framework:虽然Tutorial上有,但是还是要自己动手画一画(画图工具ProcessOn)框架还是比较简原创 2018-01-09 14:52:47 · 1616 阅读 · 2 评论 -
D3D11之坐标空间的转换
世界坐标系转换:世界坐标系转换其实就是将顶点从几何模型坐标系移到世界坐标系中,在游戏里就是构建游戏场景,将物品放置到一个场景里。通常在世界坐标系转换时,还将通过改变大小来控制基元物件的放大或缩小,通过改变方向来设置旋转,通过改变位置来进行转变。在一个场景中,每一个物件都有他自己的世界坐标系转换矩阵,这是由于每一个物件都有其自己的大小,方向和位置。 观察坐标系转换:所有顶点在转换原创 2018-01-16 15:59:26 · 2210 阅读 · 1 评论 -
D3D11之四,贴图的创建
在我们进入代码之前,我们应该讨论纹理映射如何工作。要将.tga图像中的像素映射到多边形上,我们使用所谓的Texel坐标系。该系统将像素的整数值转换为0.0f和1.0f之间的浮点值。例如,如果纹理宽度为256像素宽,则第一像素将映射到0.0f,第256像素将映射到1.0f,而中间像素128将映射到0.5f。在纹理坐标系中,宽度值被命名为“U”,高度值被命名为“V”。宽度从左边的0.0到右原创 2018-01-15 18:11:02 · 838 阅读 · 1 评论 -
D3D11之三,缓冲区和创建三角形
顶点缓存区:举一个3D球形为例子:实际上它是由上百个三角形组成的:球体模型中的每个三角形都有三个点,我们称每个点为顶点。因此,对于我们渲染球体模型,我们需要将形成球体的所有顶点放入一个特殊的数据数组中,我们称之为顶点缓存区。一旦球体模型的所有点都在顶点缓存区中,我们就可以将顶点缓存区发送给GPU,以便它可以渲染模型。索引缓存区索引缓存区与顶点缓存区有关。其目原创 2018-01-10 16:30:36 · 1278 阅读 · 1 评论 -
D3D渲染过程
历代的D3D教程中,介绍基本绘图时都会拿立方体作为例子,这次也不例外~ 立方体虽然简单,但正所谓麻雀虽小,五脏俱全。绘制立方体的过程其实已经包含了所有D3D渲染程序中最基本的、必不可少的步骤。因此,从绘制立方体开始学习D3D绘图,既简单易懂,又可以掌握绘图程序的核心步骤,效率自然会很高。 在学习D3D11绘图前,有几个重要的概念尤其需要深刻理解,它们是所有D3D11程序的基础。转载 2017-11-15 12:47:02 · 4460 阅读 · 1 评论 -
Effect框架
Effect框架简述 之前我们已经提到过HLSL文件。并且我还编写程序编译它,加载它,使用它。但是那样使用未免有点复杂。需要绘制复杂图形的时候,我们可以直接使用Effect框架来加载.fx文件.这里提到的.fx文件和我们之前提到的.HLSL文件差不多,语法上基本相同。我们把它编译之后是与一个ID3DX11Effect接口关联在一起,被关联的接口就成为了它的经纪人,把外界的数据传递给它,比转载 2017-11-15 10:55:47 · 609 阅读 · 0 评论 -
Effect框架之一
最近尝试用了下Directx下的Effect框架,作为一初学者初学者,说下为什么我们要使用Effect框架及其好处吧。 首先Effect最大好处的就是简单,使得编写Shader绘制的程序工作量大大下降。如果不用Effect框架,那么一个个Vertex Shader,Geometry Shader和Pixel Shader都要一遍遍的先用D3DX11CompileFromFile得到二转载 2017-11-14 17:53:01 · 485 阅读 · 0 评论 -
Direct9之一:初始化创建
以创建一个Cube为列子,进行创建。用的是Direct 2010的SDK,以龙书作为模板来讲解。首先导入include 和lib并手动添加lib,这三个步骤一般教程都有,但是实际上还遇到了一些容易被遗忘的问题,比如说添加库文件的链接选项,如:#pragma comment(lib,"d3d9.lib")#pragma comment(lib,"d3dx9.lib)#pragma com原创 2017-11-03 21:57:52 · 850 阅读 · 0 评论 -
D3D11之二,初始化Direct 11
更新Framwork:和上一篇不同的是多了一个D3DClass类,使用D3D来渲染窗口,和之前比较,只需要改变D3DClass,和graphicsclass,其他可以保持不变。下面是代码,该有的注释都会有,有疑问请留言。graphicsclass.h#pragma once#include #include "d3dclass.h"const bool FULL_SC原创 2018-01-09 21:46:39 · 1435 阅读 · 0 评论