书法字典:https://www.shufadict.com

随笔分类 -  DirectX

rendering order of skybox
摘要:if you program involve a skybox, you’d better render it first, since other object may need blending, if you render these objects before the skybox, you object will not show the correct order like code... 阅读全文

posted @ 2010-05-17 11:00 翰墨小生 阅读(489) 评论(0) 推荐(0) 编辑

注意变换的顺序
摘要:注意一下三种变换的顺序 平移,旋转,缩放 下面的代码可以正常显示模型 // Set scalem_pWeapon->SetScale(0.01f, 0.01f, 0.01f) ; // Set positionm_pWeapon->SetPosition(0.0f, 15.0f, 0.0f) ; 而下面的代码却什么都不显示 // Set positionm_pWeapon->S... 阅读全文

posted @ 2010-05-01 20:53 翰墨小生 阅读(585) 评论(0) 推荐(0) 编辑

关于D3D中的颜色
摘要:1. 当模型自带颜色时,使用白色光照即可显示出模型的本色,如果禁用光照,那么模型就是黑色2. 当模型自带颜色时,要通过设置Material来设置模型的颜色,然后用白色光照之即可代码Code highlighting produced by Actipro CodeHighlighter (freew... 阅读全文

posted @ 2010-05-01 20:06 翰墨小生 阅读(867) 评论(0) 推荐(0) 编辑

Terrain
摘要:1. To create a flat terrain, just set the y coordinate to 0 2. The vertices in D3D must be defined in clockwise order. see the picture below so, when you specify the two triangles, you should say, (v... 阅读全文

posted @ 2010-04-28 16:22 翰墨小生 阅读(602) 评论(0) 推荐(1) 编辑

基于时间的渲染框架
摘要:下面是一个基于时间的渲染框架代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1//Getlasttime2staticfloatlastTime=(float)timeGetTime();34while(msg.message!=WM_QUIT)5{6if(PeekMessage(&msg,NULL,0U,0U,PM_REMOVE)!=0)7{8TranslateMessage(&msg);9DispatchMessage 阅读全文

posted @ 2010-03-09 11:31 翰墨小生 阅读(525) 评论(0) 推荐(0) 编辑

Vector与数组的转化
摘要:可以重载*运算符 1 operator float *(){ return &_x ;} ;2 operator const float *() const{ return &_x ; } ;3 仿照D3D库中的例子,写出如下代码 #include <iostream> using namespac 阅读全文

posted @ 2010-03-08 10:05 翰墨小生 阅读(10266) 评论(0) 推荐(0) 编辑

Terrain walking
摘要:需要注意到几个问题1. 如果行走时出现抖动,那么可能是地图高度差太大,也就是忽高忽低。2. 插值不够狠,多几次,使地图变得smooth一些3. 当高度差改变一定值时在更新当前高度,比如至少改变1.0时才更新,比如前一次的高度是2.0, 现在的高度是1.5,那么差是0.5,太小,不做改变,当前高度仍保持为2.0,但是差要累加。当累加值超过1.0时,再改变。比如前一次高度是2.0, 此次高度是1.5,... 阅读全文

posted @ 2010-03-02 09:49 翰墨小生 阅读(362) 评论(0) 推荐(0) 编辑

新版SDK发布时该做什么?
摘要:当一个新版本的DirectX SDK发布时,第一时间以新版SDK为基础编译你的程序,如果没有错误,则不需修改。如果有错误,则需要进行相应的升级工作,比如下面这个例子,如果你用Auguest 2009的SDK编译以前的程序,会遇到如下错误fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory... 阅读全文

posted @ 2010-03-01 10:48 翰墨小生 阅读(2228) 评论(2) 推荐(0) 编辑

骨骼动画
摘要:制作骨骼动画 从max中 1。首先要得到各个关节(bone)的链接关系(父子关系) 2。得到每个关节(bone)在每帧的矩阵 游戏中 1。组合得到各个关节 2。动画实际上就是每帧设置各个关节的矩阵 。一套骨骼应该有一个root节点用来控制translate,其他的关节(bone)只有rotate 。关节(bone)的矩阵是local的,在送给directx的时候需要和父关节相乘。 。max中的骨骼... 阅读全文

posted @ 2010-02-26 16:30 翰墨小生 阅读(782) 评论(0) 推荐(0) 编辑

使用DirectX截屏
摘要:如果截图变黑,请参考这一篇,DirectX截图黑屏的解决办法。网上有很多关于DirectX截屏的文章,但大都是屏幕截图,很少有窗口截图,本文则两者都涉及到,先讲如何截取整个屏幕,再讲如何截取某个窗口,其实二者的区别不大,只是某个参数的设置不同而已,最后我们还将扩展到任意区域的截图。首先看一下截屏用到的函数,最核心的当然是D3DXSaveSurfaceToFile,先看下函数原型Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1HRESULTD 阅读全文

posted @ 2009-11-25 23:22 翰墨小生 阅读(24736) 评论(56) 推荐(5) 编辑

DirectX 总结
摘要:DDSDirectXDraw Surface file format, .dds。这是微软从DirectX7开始引进的一种文件格式,它用来存储压缩的或未压缩的纹理,该格式支持mimaps cube maps和volume maps, D3DX和许多其他的DX工具都支持这种格式,比如DirectX Texture Editor(dxtex.exe)和Texture Conversion Tool(Texconv.exe),从D3D110开始,DDS文件也支持纹理数组DXGIDirectX Graphics Infrastructure转换为.x格式MeshConvert.exe,这个tool位于 阅读全文

posted @ 2009-11-25 15:48 翰墨小生 阅读(8771) 评论(26) 推荐(5) 编辑

在3D程序中使用坐标轴提示
摘要:一般的3D图形软件都有坐标轴提示的功能,比如3DMax,当旋转物体时,坐标轴也跟着旋转,这样就能实时跟踪物体的角度了,今天我们自己手动做一个,以前一直觉得挺难,今天做起来忽然发现,其实也很简单,说白了,就是画线而已,下面是3DMAX中的坐标轴提示图。坐标轴是由线段组成的,但由于DirectX中的ID3DXLine接口只能用来绘制2D直线,所以我们这里使用DrawPrimitive函数并传递D3DPT_LINELIST来绘制3D直线,旋转使用的是ArcBall技术,先上个图吧,做成以后效果如下,比起上面那个来,比较丑陋,但是功能一样好了,下面介绍详细步骤,首先我们来定义顶点格式,因为绘制直线首先 阅读全文

posted @ 2009-11-22 21:24 翰墨小生 阅读(5240) 评论(2) 推荐(0) 编辑

DirectX Effects初探
摘要:一个effect包括以下几部分:一个vertex shader和/或一个pixel shader,一个需要设置的设备状态列表,一个或多个渲染管道。此外,设计一个备用机制以使effect能够在不同级别的图形设备上工作也是很有用的-也即对于同一个效果设计不同的版本。Direct3D将effects放在effect文件中,这样做的好处是,首先它使我们能够随时改变一个effect的实现而不必重新编译程序的源代码,这使得使用effect非常简单,方便。其次它将所有的东西封装到了一个文件里面。一个effect包含一个或多个techniques,一个technique就是渲染某个effect的用的特定方法, 阅读全文

posted @ 2009-11-19 17:41 翰墨小生 阅读(3414) 评论(1) 推荐(0) 编辑

HLSL-高级着色语言简介
摘要:HLSL-High Level Shader Language优点用来书写Vertex Shader和Pixel Shader程序的代码,语法类似于C/C++,在DirectX 8.x的时代,Shader程序都是用低级Shader汇编语言编写的,姑且称之为LLSL吧,HLSL与之相比具有以下优点:更高的生产力,使用HLSL编程更快更容易,使我们有更多的时间关注与算法而不是编码更好的可读性,使用HLSH编写的程序更易读,易调试及维护编译器将生成更加高效的汇编代码可以将同一份代码编译成任何可用的Shader版本,但是用LLSL则必须按不同版本编写代码如果你的显卡不支持Shader的话,那么可以使用 阅读全文

posted @ 2009-11-18 16:09 翰墨小生 阅读(2420) 评论(0) 推荐(1) 编辑

Quaternion和Rotation Matrix的相互转换
摘要:设有Quaternion q(x, y, z, w), rotation axis(x, y, z), rotation angle (theta),则Quaternion和Axis-Angle有如下对应关系,q.x = sin(theta / 2) * axis.xq.y = sin(theta ... 阅读全文

posted @ 2009-11-06 09:41 翰墨小生 阅读(8711) 评论(4) 推荐(1) 编辑

如何使用DXUT框架
摘要:DXUT是什么?DXUT即DirectX Utility Library,它是微软为DirectX Samples写的一个框架,有了这个框架,Sample的构建就方便多了,这个框架实际上抽取了构建Sample的公共代码,比如处理窗口消息,处理设备丢失与重设等等,将这些代码提取出来放到DXUT中,便于... 阅读全文

posted @ 2009-11-04 10:00 翰墨小生 阅读(9549) 评论(18) 推荐(9) 编辑

如何配置DirectX开发环境
摘要:一个DirectX程序要想正确的编译和链接,需要下面三个主要前提安装DirectX SDK正确配置.h文件路径和.lib文件路径正确链接所需.lib文件安装DirectX SDK可以直接到微软的官方网站上下载最新的SDK,Microsoft DirectX SDK(June 2010)是微软发型的最后一个独立的DX SDK,以后则不再单独发行DX SDK,而是集成到Windows SDK当中。如果使用的是Visual Studio 2010及以前的版本,那么需要安装DX SDK,如果使用 Visual Studio 2012及后续版本,则自带Windows SDK(包含DirectX)。配置. 阅读全文

posted @ 2009-11-04 09:46 翰墨小生 阅读(17979) 评论(8) 推荐(2) 编辑

使用Camera的几个步骤
摘要:1.绘图前初始化Camera矩阵2.程序运行时,根据用户动作实时更新Camera矩阵3.绘图时先取得Camera矩阵,然后应用该矩阵绘图4.在消息处理过程中调用Camera的消息处理函数只有这样才能实时得到变化的Sence下面看一下核心代码1. 在InitD3D函数中初始化三种矩阵,world matrix, view matrix, porjection matrix,对应步骤1[代码]2. 定... 阅读全文

posted @ 2009-10-28 11:30 翰墨小生 阅读(1550) 评论(0) 推荐(0) 编辑

导航

书法字典:https://www.shufadict.com