Direct-X
文章平均质量分 81
puppet_master
coding can not change the world, but I will create my own world!
展开
-
DirectX SDK安装出错时解决方案
今天下了个DirectX,安装了半天,一直出现这个错误:原创 2014-10-27 19:12:08 · 4596 阅读 · 3 评论 -
Direct-X学习笔记--纹理映射进阶
之前学习了纹理映射相关知识,但是仅仅是知道读取一个纹理贴图,然后在绘制之前设置一下纹理,但是并不知道纹理设置的一些具体细节,今天就来填坑啦!一.四种纹理寻址方式我们读取一个纹理图片,最好的情况是所需要的图片大小和图片本身的大小一致,但是事实往往不是这么美好。所以当纹理图片的大小和我们所绘制的模型大小不一致时,就需要通过不同的纹理寻址方式来解决这个问题。通常,我们取的纹理坐标为(原创 2015-08-11 09:48:28 · 1602 阅读 · 0 评论 -
Direct-X学习笔记--公告板
// D3DDemo.cpp : 定义应用程序的入口点。//#include "stdafx.h"#include "D3DDemo.h"#include "DirectInput.h"#include "Camera.h"#define MAX_LOADSTRING 100// 全局变量:HINSTANCE hInst; /原创 2015-08-13 00:57:08 · 1457 阅读 · 0 评论 -
Direct-X学习笔记--顶点缓存绘图
DirectX描述物体使用三角形单元,构成三角形的最基本单位是顶点。DirectX中顶点格式是很灵活的,即我们可以自己定义顶点所包含的信息。除了坐标之外,我们还需要定义其他附加属性,颜色属性,法线属性等等。我们在定义的时候,首先要使用DX的一个宏声明一下我们所定义的顶点包含哪些属性。//------------绘制图形步骤1.定义灵活顶点格式#define D3DFVF_CUST原创 2015-06-07 18:19:01 · 1507 阅读 · 0 评论 -
Direct-X学习笔记--地形
地形系统,在游戏中肯定少不了滴。终于要开始学习这个东东啦!地形看起来非常神奇,绵延的山峦,横看成岭侧成峰,远近高低各不同,这么复杂的地形到底我们到底要怎么写呢?说实话不学这个之前我真的完全想不到地形的实现方法。一.简介三维地形系统在很多地方都有应用,不论是游戏还是模拟系统中,地形都是必不可少的元素之一。说到地图,我们最容易想到的就是一个二维数组,根据数组元素的不同,绘制出不同的图形原创 2015-08-04 00:41:54 · 2062 阅读 · 0 评论 -
Direct-X学习笔记--天空盒
学习了三维的地形系统之后,该抬头看看天空啦。下面学习一下传说中的三维天空系统。其实三维天空的实现比地形系统简单得多,我们只需要用一点点小伎俩,就可以蒙混大多数人。一.简介我们在玩游戏的时候,尤其是野外的大场景中,要想更逼真离不开三维天空系统。要用程序来模拟无边无际的天空是不可能的,而聪明的前辈们自然也想到了用“天圆地方”这种古代人们对于天空的认识来作为三维天空设计思想。即用一个足够原创 2015-08-04 20:39:29 · 3574 阅读 · 0 评论 -
Direct-X学习笔记--三维粒子系统
哇塞,一转眼已经到了传说中的粒子系统了,学会了粒子系统就可以做出一些更好玩的效果啦!加油啦!一.简介粒子系统,正如其名称,由各种小的粒子构成。通常用来模拟火焰,爆炸,烟,水流,火花,落叶,雨,雪等等难以用具体的形状来描述的物体。单个的粒子非常简单,可以用多边形来表示,甚至用像素表示。但是,不要小看了这样微小的粒子,当粒子的数量级达到上千,上万,甚至十万时,表现力是及其震撼的!下原创 2015-08-05 01:23:32 · 1550 阅读 · 1 评论 -
Direct-X学习笔记--深度缓存
今天来学习一下深度测试,不过这个东东貌似暂时就是了解一下原理啦,因为DX默认是打开深度测试的,即我们不需要额外进行设置就可以使用深度测试的功能,不过这个还是有必要了解一下,一是对DX的流程更加了解,二是我们可以手动设置深度测试的参数以及函数,达到一些自己想要实现的效果。一.简介三维的世界中,有各种物体,而这些物体难免会有遮挡,而且同一个物体不同部分也会有遮挡的关系,要想表现出来更加原创 2015-08-06 01:18:19 · 2913 阅读 · 0 评论 -
Direct-X学习笔记--骨骼动画
学了几个月DX了,终于到了骨骼动画这一步了,好激动!之前导入过一些静态的模型,还是挺帅的。不过不能动,实在是太遗憾了。今天学习了骨骼动画,终于让偶的模型动起来啦!!!一.简介说到动画,其实本人又想起了最早开始写小游戏的时候从网上找的那些关键帧素材,设置一个定时器,或者根据游戏循环,不断切换图片,就形成了动态的效果。不过这样实在是太麻烦了,需要美术一张一张的画图或者用PS调整。到了3D时代,原创 2015-09-05 20:10:38 · 2275 阅读 · 2 评论 -
Direct-X学习笔记--骨骼动画进阶
上一次,封装了一个简单的骨骼动画类,但是,这个类有很多问题。第一,只能播放一个默认的动画,第二,一个动画的实例里面包含了所有的资源,而我们只是绘制的时候需要资源,实例本身并不需要都包含资源,所以只需要一个指针指向资源,绘制的时候通过这个指针渲染一下就好了,所以,这次在进行一次封装,实现一个支持多实例,多动画的骨骼动画类。一.AnimationSet一个.X文件中可能包含多个动画,比如idl原创 2015-09-05 21:00:29 · 1641 阅读 · 1 评论 -
DX状态整理
转载地址:http://blog.csdn.net/yaoxinchao/article/details/7982376状态Direct3D设备使用状态来配置所有的管道处理。采样器状态通过例如定义纹理寻址方式(texture addressing)和过滤模式控制纹理采样器设置。纹理状态设置用于控制纹理如何被组合以及相互之间如何混合的多重纹理混合器。渲染状态控制大多数管道状态。状转载 2015-11-12 18:04:17 · 738 阅读 · 0 评论 -
纹理相关知识整理
原文地址:http://www.cnblogs.com/helinsen/archive/2012/08/01/2618539.html纹理是增强计算机生成的三维图像的真实感的有力工具。Microsoft® Direct3D®支持广泛的纹理特性,并使开发人员可以很方便地使用高级纹理技术。本节讲述如何使用纹理。纹理的基本概念纹理坐标纹理过滤纹理资源纹理环绕纹理混合表面转载 2015-11-13 16:36:50 · 2466 阅读 · 0 评论 -
Direct-X学习笔记--纹理映射
一.介绍 之前学习了怎样绘制物体,还画了个DX自带的茶壶,然而这个东东并不怎么好看....离我们现实的物体简直相隔千里。只能说像美术他们用来写生的模型...那么要怎么样才能让我们的东西看起来更像真实的物体呢?这个就要用到今天学习的纹理映射技术了...纹理映射(Texture Mapping),又称纹理贴图,是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。简单来说,就是把一幅图像贴到三原创 2015-07-11 13:24:35 · 1548 阅读 · 0 评论 -
Direct-X学习笔记--Alpha颜色混合
Alpha混合技术是灰常有用的东东。待我好好学习一下。一.简介首先看一下Alpha通道,Alpha通道是计算机中存储图片透明度信息的通道,它是一个8位灰度的通道,用256级灰度记录图像中的透明信息,定义透明,不透明,半透明等,其中黑色表示完全透明,白色表示不透明,灰色为半透明。如果不用Alpha混合,我们绘制图形的颜色总是替换当前颜色缓冲区中存在的颜色,这样后面的物体总是覆盖在原有的物原创 2015-08-08 17:53:50 · 4264 阅读 · 0 评论 -
Direct-X学习笔记--Direct-X的初始化
一.环境配置从网上下载到DirectX SDK,双击安装,即可得到以下文件。打开VS2012,打开项目的通用属性,按照图中方法配置库文件以及包含目录。这样,环境就配置好了。二.初始化步骤总览要想使用Direct-X这么强大的功能的图形API,自然要做一番准备工作。具体就分为这么几步:(1) 获得一个IDirect3D9接口指针。这个接口用于获得物理设备的信息原创 2015-01-31 15:51:26 · 1201 阅读 · 0 评论 -
Direct-X学习笔记--Direct-X的基本知识
一.Direct-X简介说是Direct-X,其实最主要的还是Direct3D,绘制3D世界的利器。拥有通过HAL(硬件抽象层)直接访问硬件的能力,比GDI/GDI+的效率高得不是一点半点。开始的时候是想学个游戏引擎的,比如特别火的unity3D,后来一想,还是懂一点底层的东西比较好。于是就选择了D3D。引擎的话应该就是写好的一种框架罢了,还是要基于D3D或者OpenGL等图形AP原创 2015-01-31 13:54:21 · 2240 阅读 · 0 评论 -
DirectX学习笔记--3D基本数学知识整理
最近在看《Direct9.0 3D游戏编程基础》以及浅墨大神的《windows游戏编程从零开始》两本书,希望能通过博客来记录一下自己的学习历程,整理相关的知识,方便查阅。一.数学知识整理1.对于2D,我们只需要一个二维坐标系,但是3D,就需要3D的坐标系。描述3D的坐标系分为左手坐标系和右手坐标系,二者的差别体现在z轴的方向上,左手坐标系z轴正方向穿进纸面,右手反之。对于屏幕,自然原创 2015-01-31 11:07:35 · 1037 阅读 · 0 评论 -
Direct-X学习笔记--DirectInput
学了绘制简单的2D图形以及3D物体之后,该学学怎么控制物体了!之前一直是用的是Windows自带的消息循环,WM_KEYDOWN,WM_MOUSELBUTTONDOWN等等,但是这个慢的不行,完全跟不上游戏的速度。以前用GDI/GDI+写游戏的时候使用过一个GetAsyncKeyState方法,可以用于实时的检测键盘按下,虽然简单,不过据本人亲测,会被360发现...所以还是好好学学正统的游戏原创 2015-06-20 14:10:37 · 2848 阅读 · 0 评论 -
Direct-X学习笔记--图元绘制
DX中有6种图元:顶点集合,线段集合,线段条带,三角形集合,三角形条带,三角扇形。在渲染时一般采用三角形来构成多边形,三角形三个顶点一定共面,共面的时候,渲染较快。(该图片来自百度)我们在绘制的时候,使用该函数绘制图元,第一个参数为图元的类型,即上图中的几种类型:点列集合 D3DPT_POINTLIST 一组点的集合线列集合 D3DPT_LI原创 2015-06-09 12:23:44 · 1542 阅读 · 0 评论 -
Direct-X学习笔记--X模型导入
一.介绍经历了之前手写立方体的痛苦过程,终于到了网格模型这一步。我们做游戏的时候肯定不能只用立方体呀,想要复杂的人物模型肯定是需要美工同学们使用专业的工具才能创建出来的,这些模型文件中定义好了网格模型的形状以及材质纹理等信息,我们所要做的只是读取这个文件,然后就可以根据文件中的信息创建复杂的模型啦!然而说白了,这些东东DX已经为我们定义好了,我们背一背API就行啦!创建这些模型一般用3DM原创 2015-07-11 14:03:01 · 2544 阅读 · 1 评论 -
Direct-X学习笔记--变换
1.顶点格式改动:之前写的几个例子都是2D的例子,使用的顶点格式是已经经过变换的顶点格式。而要写3D程序,我们就必须要用未经过变换的顶点。所以在定义顶点时也要有所改变://------------绘制图形步骤1.定义灵活顶点格式#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE)//坐标为经过变换的屏幕坐标,顶点的颜色//----原创 2015-06-15 17:36:32 · 1045 阅读 · 0 评论 -
Direct-X学习笔记--封装一个网格模型类
之前学习了网格模型的导入,绘制,了解了X文件等相关知识,但是,那样绘制比较麻烦,而且绘制一个模型需要好多代码,完全是面向过程的思维,这次,学习一下怎么把网格模型的导入以及绘制等功能封装在一个类中。顺便加深一下对World Transform的理解。感觉自己的3D思维还是没有培养起来,想绘制一个对象,绘制出来和想象中的位置相差甚远。原创 2015-07-27 23:13:02 · 968 阅读 · 0 评论 -
Direct-X学习笔记--三维摄像机
一.介绍哇!到了传说中的3D摄像机啦!之前我们写的东东,都是观察点不动,通过世界变换让东西动,今天,通过三维摄像机我们就可以改变我们的观察点,观察方向,随意在三维空间中驰骋。之前我们所设定的视角都是通过D3DXMatrixLookAtLH这个函数,通过几个设定好的向量,将视角初始化的,而在程序真正运行时,视角就不再改变了,而这次,我们要实时的生成视角变换矩阵,实时的改变我们的视角,我们所谓原创 2015-07-11 16:19:58 · 2999 阅读 · 0 评论 -
Direct-X学习笔记--光照&材质&DX自带几何体绘制
DX中自带几何体的绘制:为了方便,DX为我们提供了几种自带的几何体,我们就不需要定义成吨的顶点来绘制一个图形了。常用的有几种,立方体,茶壶,柱体,球面体。HRESULT D3DXCreateTeapot( __in LPDIRECT3DDEVICE9 pDevice, __out LPD3DXMESH *ppMesh, __out LPD3DXBUFFER *原创 2015-06-16 20:19:36 · 2204 阅读 · 0 评论 -
DirectX学习笔记--索引缓存绘图
引言:顶点缓存绘制图形,虽然比较简单,但是简单的图形还好。一个三角形,三个点。但是,比如我们要绘制一个立方体,需要6*2=12个三角形,总共要36个顶点,而实际上表示一个立方体只需要8个顶点就可以了。显然再使用顶点缓存绘图有些划不来,所以就有了索引缓存绘图。定义:索引缓存保存的就是一些索引,用于记录顶点缓存中每一个顶点的索引位置。这样,我们在定义顶点的时候,就不需要重复定义那些原创 2015-06-14 00:44:54 · 3008 阅读 · 2 评论 -
DXT纹理压缩格式解析
我们知道游戏中对于3D物体表面细节的表现最重要的还是靠贴图来实现的,那么越是高分辨率越是真彩色的贴图自然表现力也是越强,但是同时带来的问题是所需占用的内存会成倍的上升,而节省内存这一点在目前的游戏中还是非常非常重要的。 所以各个平台上都在使用纹理压缩的技术,让纹理贴图在内存占用和显示效果能达到一个尽可能的平衡。在DirectX中,使用一种叫做DXT的纹理压缩技术,目前这种技术被大部分显卡所支持转载 2015-12-05 15:56:13 · 13232 阅读 · 0 评论