DirectX标准规定 DirectX使用左手坐标系. X轴正向指向右,Y轴正向指向上,Z轴正向垂直纸面向内. 编写Direct3D应用程序时,通常只使用4×4的矩阵和1×4的行向量,相乘时行向量在前,矩阵在后. 平移系数在4×4矩阵的最后一行前三个数. DirectX使用左手规则,叉乘的正负也是. 比如up=look×right: Right=up×look: DirectX和OpenGL的不同 DirectX DirectX使用左手坐标系. X轴正向指向右,Y轴正向指向上,Z轴正向垂直纸面向…
转自:http://www.cnblogs.com/graphics/archive/2009/11/25/1583682.html DirectX 总结 DDS DirectXDraw Surface file format, .dds.这是微软从DirectX7开始引进的一种文件格式,它用来存储压缩的或未压缩的纹理,该格式支持mimaps cube maps和volume maps, D3DX和许多其他的DX工具都支持这种格式,比如DirectX Texture Editor(dxtex.e…
回到 DirectX11--使用Windows SDK来进行开发 DirectX Tool Kit下载 DirectX Tool Kit是一个包含许多类的集合,用于为公共Windows平台编写Direct3D 11 C++代码.里面包含如下可用的头文件(基本上都在名称空间DirectX中): 头文件 描述 Audio.h 使用了XAudio2的底层音频API CommonStates.h 一个工厂类,提供了常用的D3D状态对象 DDSTextureLoader.h 用于读取DDS文件 Direc…
OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库.OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL.IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL.OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”.虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL是不 能被取代的主角. O…
OpenGL 只是图形函数库. DirectX 包含图形, 声音, 输入, 网络等模块. 单就图形而论, DirectX 的图形库性能不如 OpenGL OpenGL稳定,可跨平台使用.但 OpenGL 多需要显卡支持. ---------------------------------------------------------------------------------------------- 做windows平台上的游戏,当然是DX,想跨平台,想做科学计算程序,想做CAD, 想做…
什么是OpenCL? OpenCL全称Open Computing Language,是第一个面向异构系统通用目的并行编程的开放式.免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器.桌面计算系统.手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU).图形处理器(GPU).Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏.娱乐.科研.医疗等各种领域都有广阔的发展前景. OpenCL 1.0主要由一个并行计算API和一种针对此类计算的编程语言组成,…
http://www.cnblogs.com/graphics/archive/2012/08/02/2616017.html 矩阵是三维图形学中不可或缺的部分,几乎所有和变换相关的操作都涉及矩阵,世界变换,视图变换,投影变换,视口变换无一不需要矩阵,但是当今的两大主流图形库DirectX和OpenGL对矩阵操作却有着细微的差别,大多数的图形学书籍都以OpenGL为基础进行阐述,游戏编程类的书籍则更多使用DirectX,这就难免产生混淆,今天这篇主要讲讲两者在操作矩阵的时候有何不同. 矩阵 在三…
事实上在早年OpenGL即使在游戏领域也是对DirectX压倒性的优势.John Carmack曾嘲讽DirectX是"horribly broken" 的API.直到DirectX6时代OpenGL都被认为是比DirectX更加优秀的API,即使那个时候DirectX已经有<CS><极品飞车5>等大作的支持,却依然不受当时FPS游戏霸主id Software的待见.作为那个时代的显卡杀手,<Quake III>都仅仅只支持OpenGL.Direct…
在Windows下开发游戏,大家都会联想到DirectX.实际上,DirectX并不等同于游戏,它也不是写游戏程序的唯一选择.其实,DirectX只是提供了一种更直接的控制硬件的API库而已.当然,它并不是一个单纯的图形API,它还提供了一整套的多媒体接口方案,只不过因为它在3D图形方面表现得特别优秀,让它的其它方面没有显示出来罢了. DirectX首次出现在1995年,当时被称为“GameSDK”.在其原始形式中,针对的目标是使用C和C++的开发人员.DirectX开发之初是为了弥补Windo…
对于刚刚接触 DirectShow 的人来说,安装配置是一个令人头疼的问题,经常出现的情况是最基本的 baseclass 就无法编译.一开始我也为此费了很大的功夫,比如说修改代码.修改编译选项使其编译通过.因为大家 Visual Studio 的版本与 DirectShow 的版本各不相同,导致问题多种多样.网上的参考也不可尽信,往往花费了大量的时间和精力,程序仍没有编译通过,而丧失学习 DirectShow 的兴趣和信心.我在 Visual Stdio 6.0,2003,2005,2008 都…
目  录 第一章 DirectX基础(初级篇) 第一节  什么是DirectX 一.什么是DirectX ? 二.DirectX的组成部分 三.关于DirectDraw 四.为什么要使用DirectDraw? 五.DirectX5.0的新特性? 六.什么是部件对象模型(COM) 七.自我检测 第二节  如何安装和使用DirectX 一.编译库和运行库 二.安装 VC++ 5.0 三.安装 DirectX5.0 的 SDK 四.DirectX 5.0 的文件说明 五.卸载 DirectX 第三节 …
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十五章:第一人称摄像机和动态索引 代码工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 学习目标 回顾视景坐标系变换的数学算法: 熟悉第一人称摄像机的功能: 实现第一人称摄像机: 理解如何动态索引一组纹理. 1 回顾视景坐标系变换 如果QW = (Qx, Qy, Qz, 1), uW = (ux,…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第八章:光照 代码工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 学习目标 理解基本的材质和光照之间交互方式: 熟悉局部光照和全局光照之间的不同: 学习如何用数学的方式描述平面上一个点的方向,以便于计算入射光和平面之间的夹角: 学习如何准确的变换法向量: 区分环境光,漫反射和高光: 学习如何实现点…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第一章:向量代数 学习目标: 学习如何使用几何学和数字描述 Vector: 学习 Vector 的运算方法及其在几何学上的应用: 熟悉在 DirectXMath library 中的 Vector 相关的类和函数. 1 向量 一个向量代表的是一个拥有大小和方向的量.类似力(拥有力的大小和方向).位移(移动的方向和距离).速度(速度的大小和方向)等,例如下图(图 1.1…
第一步:dll引用 Microsoft.DirectX.dll Microsoft.DirectX.AudioVideoPlayback.dll 如果没有的话,可能需要安装微软的DRECTX JDK directx支持的视频文件格式: (*.avi; *.mov; *.mpg; *.mpeg; *.ts; *.wmv; *.vob; *.dat; *.rm; *.rmvb; *.flv)|*.avi; *.mov; *.mpg; *.mpeg; *.ts; *.wmv; *.vob; *.dat…
1.首先要使用Microsoft.DirectX.DirectSound和Microsoft.DirectX这两个dll进行录音,需要先安装microsoft directx 9.0cz这个组件, 百度云盘下载地址:http://pan.baidu.com/s/1bpgbdP9,里面包含安装程序和两个dll 2.编写录音程序功能 1)编写录音支持的辅助类SoundRecord 源码: using System;using System.Collections.Generic;using Syst…
C#下进行directX的3D开发,一个旋转的4棱锥的例子. 建议看两个文档<Managed DirectX 9图形和游戏编程简略中文文档>和<Managed DirectX 9 SDK 中文文档>. 另外最好下载个DirectX SDK (August 2007).rar.里面有些范例还是非常好的. 一.首先在电脑上装了DirectX. 二.建立一个C#的Windows应用程序,添加两个引用Microsoft.DirectX和Microsoft.DirectX.Direct3D;…
一.COM 1.什么是COM对象 一个COM对象事实上是一个或一套实现了大量接口的C++类 2.COM的优点 不用重新编译你的程序就能升级COM模块 3.COM概貌 4.COM对象的接口 QueryInterface()是COM的关键,它用于申请一个指向你所希望的接口函数的指针 所有从IUknown派生的接口最少也必须实现QueryInterface().AddRef()和Release()这三个方法 IUnkonwn的类定义如下: struct IUnknown { virtual HRESU…
最近朋友建议我写一些关于微软云技术的博客留给学校下一届的学生们看,怕下一届的MSTC断档.于是我也觉的有这个必要. 写了几篇博客之后,我觉得也有必要把这一年的学习内容放在博客做个纪念,就这样写了本篇博客. 第一步:修改Program.cs,主要是判断显卡支不支持 using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.…
最近朋友建议我写一些关于微软云技术的博客留给学校下一届的学生们看,怕下一届的MSTC断档.于是我也觉的有这个必要.写了几篇博客之后,我觉得也有必要把这一年的学习内容放在博客做个纪念,就这样写了本篇博客. 第一步:判断显卡是否支持 using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace…
最近朋友建议我写一些关于微软云技术的博客留给学校下一届的学生们看,怕下一届的MSTC断档.于是我也觉的有这个必要. 写了几篇博客之后,我觉得也有必要把这一年的学习内容放在博客做个纪念,就这样写了本篇博客. 第一步:修改Program.cs,主要是判断显卡支不支持 using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.…
最近朋友建议我写一些关于微软云技术的博客留给学校下一届的学生们看,怕下一届的MSTC断档.于是我也觉的有这个必要.写了几篇博客之后,我觉得也有必要把这一年的学习内容放在博客做个纪念,就这样写了本篇博客. 第一步:判断显卡是否支持 using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace…
  上一章我们学会了如何C++Win32项目中搭建DirectX开发环境, 那么下面来写代码初始化DirectX吧O(∩_∩)O~. 首先你创建一个Win32程序,点击运行你可以看见一个window窗口程序,我创建的项目名叫 InitDirectX, 如下图 首先配置好DirectX开发环境, 然后点击进入InitDirectX.cpp写初始化的代码. 一. 引入头文件d3d9.h #include <d3d9.h> 二. 定义DirectX的接口对象,设备对象 LPDIRECT3D9 g_p…
Windows游戏编程读书笔记(5)——初识DirectX和COM 一.COM 1.什么是COM对象 一个COM对象事实上是一个或一套实现了大量接口的C++类 2.COM的优点 不用重新编译你的程序就能升级COM模块 3.COM概貌 4.COM对象的接口 QueryInterface()是COM的关键,它用于申请一个指向你所希望的接口函数的指针 所有从IUknown派生的接口最少也必须实现QueryInterface().AddRef()和Release()这三个方法 IUnkonwn的类定义如…
回到 DirectX11--使用Windows SDK来进行开发 目前暂时没有写HLSL具体教程的打算,而是着重于如何做到不用DirectX SDK来进行渲染.除此之外,这里也没有使用Effects框架的想法,而是直接通过调用一系列替代方法来实现.因为Effects11框架是一个微软自己编写的第三方库,用于管理着色器.在DirectX SDK中有Effects11框架的代码,但是也已经经过了8年时间了,当然我们还是可以在GitHub上看到微软其实一直都在给Effects11框架做更新,只不过未来…
这些天对directx有兴趣了,开始慢慢学,先学基础,找了好些资料,为毛都写的辣么长呢,学习精简下来就几行. 安装个directx sdk,在win10里面文件夹C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2902.0 把Microsoft.DirectX.AudioVideoPlayback.dll.Microsoft.DirectX.dll.Microsoft.DirectX.DirectDraw.dll等dll文件复制到exe…
最近迁移项目到x64上,要处理的东西还是蛮多的,所以我要在说一次,不到万不得已不要用COM组件,要用COM组件也得首先考虑不需要我们关心平台的做法,或者得有64位版本. 比如Office的COM组件调用,excel可以用NPOI大家都知道了,如果你没用收费的aspose,那么你要操作其他office比如word,ppt等可以用NetOffice组件,虽然同样是调用COM,但是x86 x64都可以使用,而且任意完整本地Office版本即可(97~) 回到正题,这次是把基于 Microsoft.Di…
目前,天空绘制主要有三种方法:矩形天空.天空盒和球形天空. (1)矩形天空使用一个与地面垂直或呈一定夹角的矩形表示天空,用接近于天空的颜色或云彩纹理贴于矩形上.这种方法简单易行,但需要不断调整视角或观察点来改变场景可视域,还会对运行效率造成一定影响. (2)天空盒是构建一个包含场景的方盒来表示天空,然后在方盒四周和顶部贴上云彩纹理.但这种方法当视角对准两个面的边界时,能够明显看到交接痕迹. (3)球形天空通常使用半球形网格模型来表示天空,并在半球形网格上贴上一幅云彩纹理,可以使半球形网格模型绕Y…
With the DirectX SDK (June 2010) release and the addition of support for Visual Studio 2010, I’ve been seeing a lot of questions of the form: How do I create a DirectX .NET application in Visual Studio 2010? I can’t find Microsoft.DirectX to add to m…
转载的,就不翻译了…微软把精力放到xna去了.所以推荐大家用XNA,如果非要用托管的DirectX也可以,只不过版本一直是2006年的了. 具体方法: 安装SDK之后 他默认的位置在C:\WINDOWS\Microsoft.NET\Managed DirectX把里面相应版本的Microsoft.DirectX.Direct3DX.Dll都复制到C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0…