2012年3月18日

Directx11教程(11) 增加一个debug宏

摘要: 现在我们在common.h中增加一个debug的宏,在每个d3d11函数后调用,如果d3d函数出错,它能够给出程序中错误的代码行数。 common.h代码如下: #pragma once #include <d3d11.h> #include <d3dx10math.h> #if defined(DEBUG) || defined(_DEBUG) #if... 阅读全文

posted @ 2012-03-18 13:51 迈克老狼2012 阅读(1407) 评论(0) 推荐(0) 编辑

Directx11教程(10) 画一个简易坐标轴

摘要: 本篇教程中,我们将在三维场景中,画一个简易的坐标轴,分别用红、绿、蓝三种颜色表示x,y,z轴的正向坐标轴。 为此,我们要先建立一个AxisModelClass类,来表示坐标轴顶点。 现在系统类之间的关系图如下: AxisModelClass类和前面的ModelClass类相似,只是创建顶点缓冲和索引缓冲时,指定了3条线段,表示三个坐标轴。 AxisModel... 阅读全文

posted @ 2012-03-18 12:45 迈克老狼2012 阅读(3097) 评论(0) 推荐(0) 编辑

2012年3月12日

Directx11教程(9) 增加一个TimerClass类

摘要: 在上篇教程代码的基础上,我们增加一个TimerClass类,这个类的功能很简单,就是可以计算相邻2帧的时间差。利用这个时间差值,可以实现平滑的动画,使得动画不会因为不同机器fps不同,从而动画效果变快或者变慢。 我们主要是利用QueryPerformanceCounter函数来查询定时器的计数值。 如果硬件里有定时器,它会启动这个定时器,之后会不断获取定时器的值,这样... 阅读全文

posted @ 2012-03-12 20:26 迈克老狼2012 阅读(1634) 评论(0) 推荐(0) 编辑

2012年3月11日

Directx11教程(8) 一个新的camera类

摘要: 本章我们将替换掉CameraClass类,实现一个稍微靠谱点的摄像机类。并通过Q,W,E,A,S,D,Z,X,C等按键实现摄像机的控制。 该类的主要功能就是根据指定的摄像机位置,up方向以及lookat方向,得到最终的视图矩阵,所谓视图矩阵就是把世界坐标系的顶点位置转化到视点(或者说摄像机)空间的矩阵。该类可以实现两种模式的摄像机操作,一类是AIRCRAFT摄像机,允许摄像机... 阅读全文

posted @ 2012-03-11 21:33 迈克老狼2012 阅读(5292) 评论(2) 推荐(2) 编辑

Ring buffers and queues

摘要: The data structure is extremely simple: a bounded FIFO. One step up from plain arrays, but still, it’s very basic stuff. And if you’re doing system programming, particularly anything involving IO or d... 阅读全文

posted @ 2012-03-11 14:58 迈克老狼2012 阅读(884) 评论(0) 推荐(0) 编辑

Z-order curve

摘要: http://en.wikipedia.org/wiki/Z-order_curve Z-order curve From Wikipedia, the free encyclopedia Jump to: navigation, search Not to be confused with Z curve or Z-order. Four iterations of the Z... 阅读全文

posted @ 2012-03-11 14:46 迈克老狼2012 阅读(2308) 评论(0) 推荐(0) 编辑

Texture tiling and swizzling

摘要: 原帖地址:http://fgiesen.wordpress.com If you’re working with images in your program, you’re most likely using a regular 2D array layout to store image data. Which is to say, it’s basically a 1D array of ... 阅读全文

posted @ 2012-03-11 14:05 迈克老狼2012 阅读(1982) 评论(0) 推荐(1) 编辑

Directx11教程(7) 画一个颜色立方体

摘要: 前面教程我们通过D3D11画了一个三角形,本章我们将画一个颜色立方体,它的立体感更强。主要的变动是ModelClass类,在ModelClass中定义一个立方体需要的顶点信息,然后创建顶点缓冲和索引缓冲。 在ModelClass.h中,我们定义一些宏来表示颜色,以便后面给顶点颜色属性赋值时用。 ModelClass.h代码如下: #pragma once #inc... 阅读全文

posted @ 2012-03-11 13:29 迈克老狼2012 阅读(2829) 评论(1) 推荐(0) 编辑

Directx11教程(6) 画一个简单的三角形(2)

摘要: 在上篇教程中,我们实现了在D3D11中画一个简单的三角形,但是,当我们改变窗口大小时候,三角形形状却随着窗口高宽比例改变而改变,如下图所示: 这是因为我们改变了窗口大小,但后缓冲大小在程序初始化时候,已经被指定,不随着窗口改变而改变,这样在视口映射下,我们所渲染的三角形就改变了形状。 下面我们将对程序进行一些小的改动,从而实现改变窗口大小,而渲染的图形... 阅读全文

posted @ 2012-03-11 13:11 迈克老狼2012 阅读(2492) 评论(1) 推荐(0) 编辑

Directx11教程(5) 画一个简单的三角形(1)

摘要: 在本篇教程中,我们将通过D3D11画一个简单的三角形。在D3D11中,GPU的渲染主要通过shader来操作(当然还有一些操作是由GPU固定管线完成,比如光栅化操作),最常用的shader操作是顶点shader(vertex shader)和像素shader(pixel shader)。其实shader就是在GPU中执行的代码,这些代码被driver编译成硬件依赖的机器码,最终被GPU... 阅读全文

posted @ 2012-03-11 10:23 迈克老狼2012 阅读(7352) 评论(11) 推荐(0) 编辑

导航