随笔分类 -  DirectX/HLSL

引擎技术中骨骼动画的蒙皮设计与实现
摘要:自己研究的主要是ogre引擎,最近由于在做SBS的蒙皮研究,所以系统的学习了一下骨骼动画的实现源码.由于GEEgine(具体参考《3D游戏引擎设计与实现》)是仿照OGRE的骨骼动画实现的,所以我先以这个为切入点。 首先说明骨骼动画的思想:大致就是在骨骼和mesh之间建立一种关联,这种关联诱使在骨骼运动的时候mesh也做运动,在这里我们暂且不考虑IK.通过系统的研究源码和参考论文。个人感觉很多概念性东西在和具体实现起来时总会有或多或少的‘冲突’,从而总让人感觉有点置身于云里雾里。如果不弄明白之间的联系,很难对蒙皮做出进一步的改正。我这里谈谈自己的心得体会:第一:可以换种思维方式,把骨骼和顶点之. 阅读全文

posted @ 2011-04-28 16:39 数据牛仔 阅读(3983) 评论(2) 推荐(1)

per pixel lighting 和 per vertex lighting
摘要:以前没有用过FX Composer,今天用这个写了一下per pixel lighting 和 per vertex lighting,主要参考了http://dev.gameres.com/Program/Visual/3D/PPL.htm和《3D绘图程序设计》。 per vertex lighting顾名思义主要是对三角形或者四边形的顶点进行光照计算,然后内插得到其他顶点的光照,当三角形面很大时,效果不是很好,而且容易出现马赫带想象,vs和ps代码如下:[代码]而per pixel lighting由于把光照以后,相当于对每个像素进行光照计算,而插值的部分主要是法线向量,所以计算量比较大 阅读全文

posted @ 2011-02-20 14:59 数据牛仔 阅读(1373) 评论(0) 推荐(0)

(转)D3D Lock Pool
摘要:转自:http://www.cnblogs.com/lsmdiao0812/archive/2010/10/12/1848444.htmlD3D RUTIME的内存类型,分为3种,VIDEO MEMORY(VM)、AGP MEMORY(AM)和SYSTEM MEMORY(SM),所有D3D资源都创建在这3种内存之中,在创建资源时,我们可以指定如下存储标志,D3DPOOL_DEFAULT、D3DPOOL_MANAGED、D3DPOOL_SYSTEMMEM和D3DPOOL_SCRATCH。VM就是位于显卡上的显存,CPU只能通过AGP或PCI-E总线访问到,读写速度都是非常慢的,CPU连续写VM稍 阅读全文

posted @ 2010-12-19 16:12 数据牛仔 阅读(585) 评论(0) 推荐(0)

Shader的使用
摘要:转自http://www.cppblog.com/palm/archive/2010/02/26/108511.html一直比较纠结DX或者opengl中哪些函数是归cpu调用,哪些又在gpu被使用的情况下哪些cpu函数又会失效,看了这个贴有点恍然大悟的感觉,突然好想回去再学习cuda,但愿在图书馆能够成功预约到这本书。 Shader Model 1.0-3.0的版本,Shader分为Vertex Shader和Pixel Shader两种。没有规定要同时使用这两种Shader,可以只使用Vertex Shader,Pixel Shader的部分使用Fixed Function Pipelin 阅读全文

posted @ 2010-12-15 21:45 数据牛仔 阅读(1933) 评论(0) 推荐(0)

多重纹理——像素着色器
摘要:上午花了几个小时仔细研究了一下像素着色器中的多重纹理,由于对固定流水线比较熟悉,所以看这本书看的比较快。下面就来解析一下这个多重纹理,对于一些不太明白的东西也做一下讨论: 1、利用DirectX Caps Viewer查我的显卡(GeForce 9400 GT)支持的着色器版本,是3.0,这样最好了,支持16层纹理。对于D3DXCompileShaderFromFile()这个函数,有个参数值得... 阅读全文

posted @ 2010-09-09 14:35 数据牛仔 阅读(1400) 评论(0) 推荐(0)