direct3d】的更多相关文章

一.环境 Visual Studio 2012,DirectX SDK (June 2010) 二.准备 1.环境变量(如没有配置请添加) 变量名:DXSDK_DIR 变量值:D:\Software\Program\Microsoft DirectX SDK (June 2010) 这里D:\Software\Program\Microsoft DirectX SDK (June 2010)是我的DirectX安装目录,视情况修改即可 三.步骤 1.打开VS2012,创建一个空的Win32 Pr…
这几天在做dxva2硬件加速,找不到什么资料,翻译了一下微软的两篇相关文档.并准备记录一下用ffmpeg实现dxva2,将在第三篇写到.这是第一篇,英文原址:https://msdn.microsoft.com/en-us/library/aa965267(v=vs.85).aspx Direct3D设备管理器(Direct3D device manager)允许两个或多个对象(object)共用同一个Direct3D 9 设备(device).其中一个对象作为Direct3D 9 设备的拥有者…
http://www.phoronix.com/scan.php?page=news_item&px=OTI2NA Note:  Something very instersting to wine translating 这个点子是对于GPU virtualization有启发...不过有很多技术和专利上的问题. MSFT HSLS -> LLVM IR -> Windows graphics driver or Linux graphic drivers. Apple GLSL -…
译者:林公子 出处:木木的二进制人生 转载请注明作者和出处,谢谢! 这是微软公布的Direct3D 12文档的其中一篇,此翻译留作学习记录备忘,水平有限,错漏难免,还望海涵. 原文链接是https://msdn.microsoft.com/en-us/library/windows/desktop/dn899194(v=vs.85).aspx Direct3D 12到Direct3D 11的重大改变 Direct3D 12是对Direct3D 11编程模型的一个巨大颠覆.Direct3D 12让…
本篇将简单整理基本的Windows应用程序的实现,并作为创建Direct3D 10应用程序的铺垫.具体内容参照< Introduction to 3D Game Programming with DirectX 10>(中文版有汤毅翻译的电子书<DirectX 10 3D游戏编程入门>)中的附录A. 1.编写入口函数WinMain Windows编程中的WinMain函数与普通C++编程的main函数作用相同,指定了程序开始的执行点.其函数原型如下: INT WINAPI WinM…
本篇将简单整理Direct3D 10的文本输出的实现,具体内容参照< Introduction to 3D Game Programming with DirectX 10>(中文版有汤毅翻译的电子书<DirectX 10 3D游戏编程入门>). 1.填充D3DX10_FONT_DESC结构体 D3DX库提供了用于显示文本的ID3DX10Font接口.而要获取一个指向ID3DX10Font对象的指针,需要先填充一个D3DX10_FONT_DESC结构体,该结构体用于描述所创建的字体…
本篇将简单整理Direct3D 10的计时器实现,具体内容参照< Introduction to 3D Game Programming with DirectX 10>(中文版有汤毅翻译的电子书<DirectX 10 3D游戏编程入门>). 1.高精度性能计数器 Direct3D10使用高精度性能计数器(精度达微秒级)实现精确时间测量,为了调用下面介绍的两个Win32计数器API,需要添加包含语句“#include <windows.h>” BOOL QueryPer…
本篇将简单整理Direct3D 10的初始化,具体内容参照< Introduction to 3D Game Programming with DirectX 10>(中文版有汤毅翻译的电子书<DirectX 10 3D游戏编程入门>). Direct3D 10的初始化可分为以下几个步骤: 1.填充一个DXGI_SWAP_CHAIN_DESC结构体,用于描述了所要创建的交换链特性. 2.使用D3D10CreateDeviceAndSwapChain函数创建ID3D10Device设…
The new hardware tessellation feature available on Direct3D 11 video cards has great potential, but using it effectively currently requires understanding higher-order surfaces as well as a myriad of performance implications. In addition to the Window…
Direct3D初始化大概分为4个步骤: 1.获取接口IDirect3D9的指针.(Direct3DCreate9函数调用). 该接口用户获取系统中物理硬件设备的信息并创建接口IDirect3DDevice9,此接口是一个C++对象,代表显示3D图形的物理硬件设备. 2.检查设备性能(D3DCAPS9结构体),判断主显卡是否支持某些特性,比如是否支持顶点运算.创建IDirect3DDevice9之前,必须确定主显卡支持的特性. 3.初始化D3DPRESENT_PARAMETER结构的一个实例,通…
这一节介绍在Direct3d中观察变换的基本概念和怎么去设置观察矩阵. 视口变换把观察者放在世界坐标系中,并把顶点转化到摄像机空间.在摄像机空间,摄像机或者说观察者在原点,观察方向为z轴正向.Direct3d使用左手坐标系,所以z轴正向进入场景.观察矩阵把重新变换世界中的物品.摄像机位置.摄像机空间原点和方向. 有许多方法可以创建观察矩阵.摄像机在世界空间中的逻辑位置和方向被用作起始点来创建观察矩阵,得到观察矩阵会被应用于场景中的三维建模.观察矩阵平移和旋转在摄像机空间的模型,将他们放入摄像机空…
Introduction In DirectX 8, support for rendering to multiple windows is provided through the creation of additional swap chains. However, there are currently no examples of this in the SDK, and the documentation is a bit vague. This article is provid…
D3DDEVTYPE_REF 使用REF设备,用软件模拟Direct3D API 照理说是为了让电脑能跑本机不能硬件执行的渲染命令的 但我 pDeviceSettings->d3d9.DeviceType = D3DDEVTYPE_REF; 就会报failed creating the Direct3d device 当我用PIX 的trigger时 modify d3d device Force REF 也会引发同样的error 先记录下来 重新装了遍dx的sdk就好了 我估计是因为 装了俩d…
本文接着上一篇文章继续记录Direct3D(简称D3D)播放视频的技术.上一篇文章中已经记录了使用Direct3D中的Surface渲染视频的技术.本文记录一种稍微复杂但是更加灵活的渲染视频的方式:使用Direct3D中的Texture(纹理)渲染视频. 纹理有关的基础知识 在记录使用Direct3D的Texture渲染视频的技术之前,首先记录一下有关纹理的基础知识.我自己归纳总结了以下几点知识. 1. 渲染(Render),纹理(Texture) 刚开始学习Direct3D显示视频技术的人一定…
上一篇文章记录了GDI播放视频的技术.打算接下来写两篇文章记录Direct3D(简称D3D)播放视频的技术.Direct3D应该Windows下最常用的播放视频的技术.实际上视频播放只是Direct3D的“副业”,它主要用于3D游戏制作.当前主流的游戏几乎都是使用Direct3D制作的,例如<地下城与勇士>,<穿越火线>,<英雄联盟>,<魔兽世界>,<QQ飞车>等等.使用Direct3D可以用两种方式渲染视频:Surface和Texture.使用…
direct3D只是directX其中一个增强功能 DirectX是由很多API组成的,按照性质分类,可以分为四大部分,显示部分.声音部分.输入部分和网络部分. 显示部分担任图形处理的关键,分为DirectDraw(DDraw)和Direct3D(D3D),前者主要负责2D图像加速.它包括很多方面:我们播放mpg.DVD电影.看图.玩小游戏等等都是用的DDraw,你可以把它理解成所有划线的部分都是用的DDraw.后者则主要负责3D效果的显示,比如CS中的场景和人物.FIFA中的人物等等,都是使用…
一.预备知识 1.表面 表面就是Direct3D用于储存2D图像数据的一个像素矩阵.width和height以像素为单位,pitch以字节单位,用接口IDirect3DSurface来描述表面 LockRect:该方法用于获取指向表面存储区的指针,通过通过指针运算,可对每个像素进行读写操作: UnlockRect:配对使用,调用lock必须unlock,解除对表面存储区的锁定: GetDesc: 获取表面的描述信息,通过填充D3DSURFACE_DESC; //Assume _surface i…
        本文由哈利_蜘蛛侠原创,转载请注明出处.有问题欢迎联系2024958085@qq.com         注:我给的电子版是700多页,而实体书是800多页,所以我在提到相关概念的时候,会使用章节号而非页码.相同的情况适合于"龙书"第二版. 上一期的地址: DX 11游戏编程学习笔记之7  这一期我们专门来研究第6章的习题. 尽管数目比較多,可是大部分还是非常easy的.注意我说的是"大部分"! 习题解答: =====================…
Valve开源了Direct3D到OpenGL的转译层,方便开发者迁移游戏到Linux:https://github.com/ValveSoftware/ToGL Valve SteamBox主机系统SteamOS基于Debian Linux打造,可以免费下载安装:http://store.steampowered.com/steamos/buildyourown Steam for Linux游戏列表:http://store.steampowered.com/browse/linux/ Ub…
现在学习下Direct3D在窗口中绘制一些文本信息,ID3DXFont接口负责创建字体和绘制二维的文本.我们介绍下ID3DXFont的用法. 1.创建LPD3DXFONT接口 LPD3DXFONT g_pTextInfor = NULL; //创建字体 D3DXCreateFont(g_pd3dDevice, //Direct3D设备 , //字体的高度 , //字体的宽度 , //字体的权重值 , //过滤属性 false, //是否斜体 DEFAULT_CHARSET, //字符集 OUT_…
今天我们来学习Direct3D对模型的导入使用,Direct3D支持.X模型文件导入使用,.X文件是微软定义的3D模型文件格式,其中包含网格,动画,纹理等等一些信息. 目前3DS Max 和 Maya本身已经不支持对X模型的导出了, 只能使用3DS Max上有一个插件叫"3DS Max panda"可以把模型转换成X文件. 模型: http://yunpan.cn/cLXcxGKjwmqgk  访问密码 ec5c X模型查看器:  http://yunpan.cn/cLXcnArcQ7…
纹理映射是将2D的图片映射到一个3D物体上面,物体上漂亮图案被称为纹理贴图, 一个表面可以支持多张贴图等等,下面简单介绍下纹理贴图 纹理贴图UV: 贴图是一个个像素点组成,每一个像素点都由一个坐标最后形成一张贴图,贴图纹理坐标系UV两个轴组成, 从左上为原点. 那我们在学习下如何在Direct3D中创建一个纹理,绘制到一个正方形上面去. 设计顶点格式: struct CUSTOMVERTEX { float x,y,z,rhw; float u,v; }; //至少要一张贴图D3DFVF_TEX…
小学的时候我们知道3个顶点组成一个三角形,那么四个顶点我们会说有4个三角形.这就是一个顶点同时参与了四次绘制三角形的结果. 在程序中也一样,比如我们绘制的两个三角形是挨着一起的,总有几个顶点是重合的. 这个顶点是可以重复使用,可以使用顶点缓存来记录如何绘制顶点的顺序,多次使用同一个顶点.到达内存的节省. 下面我们就是用四个顶点绘制出2个三角形 创建索引缓存: LPDIRECT3DINDEXBUFFER9 g_pIndexBuffer = NULL; //索引缓存 //创建索引缓存 * ))) {…
今天我们来学习下Direct3D的顶点和顶点缓存,首先我们需要在场景中绘制一些物体,物体都是由多个三角形组成,每一个三角形由三个顶点组成,我们来看下面一个NPC的模型 左图:正常的模型                      右图:看的出模型是有多个三角形组成 现在我们知道了一个模型最小单位是一个顶点. 如果我们需要自己绘制物体,就要学习下Direct3D如何创建顶点. 顶点在Direct3D中叫顶点缓存(VertexBuffer),顶点缓存保存了顶点的一些数据空间,比如位置,颜色,法向量等等…
  今天我们来学习下Direct3D里面的光源和材质. 四大光照类型: 环境光 Ambient Light 一个物体没有被光照直接照射,通过每一些物体反射的光线到达这个物体,它也有可能被看到.这种称为环境光 漫反射光 Diffuse Light 这种类型光沿着特定的方向传播,当达到某一个表面,它会向四周方向均匀反射(重点考虑反射光的空间位置和方向) 镜面反射光 Specular Light 当此类光到达一个表面时,严格地沿着一个方向反射. 自发光 Emissive Light 自发光就是对象自己…
===================================================== 最简单的视音频播放演示样例系列文章列表: 最简单的视音频播放演示样例1:总述 最简单的视音频播放演示样例2:GDI播放YUV, RGB 最简单的视音频播放演示样例3:Direct3D播放YUV,RGB(通过Surface) 最简单的视音频播放演示样例4:Direct3D播放RGB(通过Texture) 最简单的视音频播放演示样例5:OpenGL播放RGB/YUV 最简单的视音频播放演示样例…
       本文从哈利_创.转载请注明出处.有问题欢迎联系本人!        邮箱:2024958085@qq.com 上一期的地址: DX 9 UI设计学习笔记之二 第4章 Introducing DirectInput ====================================================================== 在这一章中我们要学到例如以下东西: .Create COM interfaces that represent and contr…
1.顶点缓存和索引缓存 一个顶点缓存是一个包含顶点数据的连续内存空间:一个索引缓存是一个包含索引数据的连续内存空间. 顶点缓存用接口IDirect3DVertexBuffer9表示:索引缓存用接口IDirect3DIndexBuffer9表示. 1.1创建顶点缓存和索引缓存 HRESULT IDirect3DDevice9::CreateVertexBuffer(   UINT Length,  //为缓存分配的字节数   DWORD Usage, //指定如何使用缓存的附加属性,0表明无需附加…
1.Direct3D概述 Direct3D是一套底层图形API,借助该API,我们能够利用硬件加速功能来绘制3D场景. 设备制造商将其产品支持的全部功能都实现到HAL中. 1.1 Direct3D提供了参考光栅设备(REF设备),它以软件运算方式完全支持Direct3D API.REF速度缓慢,在测试以外的其他环节都不适用. 1.2 D3DDEVTYPE枚举类型   在程序中HAL设备用值D3DDEVTYPE_HAL来表示,REF设备用值D3DDEVTYPE_REF来表示. 2.COM:创建CO…
目录 DirectX11 Study Note Create a DirectX graphics interface factory.创建一个DirectX图形界面工厂 CreateDXGIFactory function CreateDXGIFactory函数 Use the factory to create an adapter 使用工厂创建适配器 IDXGIFactory interface IDXGIFactory接口 Enumerate the primary adapter ou…