
ComputerGraphics
文章平均质量分 66
batilei
Temporal - Spatial Data
展开
-
细分曲面Catmull-Clark Subdivision算法
随着Directx11的推出,细分曲面在游戏中得到了越来越大的关注。细分曲面也有很简单的算法实现, 比如Catmull-Clark Subdivision算法,其可以对任意拓扑结构的多边形进行细分。下面简要介绍下。 细分新的曲面,先求出新的曲面的顶点: Face point(位于原来多边形面里的新顶点) Edge point(在原来的边中点附近的新顶点) New vertex point (对原来的顶点进行调整得到新顶点)。原创 2010-10-13 17:00:00 · 10378 阅读 · 4 评论 -
Directx11基于GPU_GeometryShader的粒子系统
粒子系统作为在游戏中一个挺常见的技术,用在各种爆炸,下雨,火焰等特效中。我们利用GPU中的GeomtryShader来实现一个粒子系统。以下雨特效为例。 介绍粒子系统具体实现前先介绍下GeomtryShader的StreamOutput这个特性。StreamOutput这个Stage把GeometryShader的计算结果输出到一个buffer中。 下面主要从Shade原创 2011-11-23 11:10:04 · 2745 阅读 · 0 评论 -
HLSL中struct里面的变量在内存中的放置方式
《Intro to d3d10》里面关于hlsl的structure packing有这样一段描述struct Light{ Light() { ZeroMemory(this, sizeof(Light)); } D3DXVECTOR3 pos; float pad1; // not used原创 2011-09-02 21:59:57 · 2215 阅读 · 3 评论 -
DX11_基于GPU_ComputeShader的3D精确拾取
这里使用ComputeShader做拾取,主要为了熟悉下ComputeShader,为自己后面一个项目做准备。拾取基本原理前面博客也讲了,都差不多,将射线从屏幕坐标系转换到物体局部坐标系,然后再判断三角形是否被射线射中。主要是代码的实施上不一样,这里我尝试并行地通过ComputeShader,由线程i来负责判断三角形i是否被选中。 HLSL的代码://==============原创 2011-12-21 18:28:13 · 2794 阅读 · 3 评论 -
DX11_基于GPU_GeometryShader的3D精确拾取
拾取是图形学里一个很常用的应用,在3D世界里选中我们想要的东西,枪战游戏中判断子弹是否射中敌人。 这里我们讲下如何实现一个精确的拾取碰撞,不仅检测是否射中了这个物体,更进一步的返回射中了这个物体的上哪个三角形。在《COD》等比较优秀的枪战游戏中,我们都可以看到子弹是射中敌人身体的不同部位,敌人的身体会做出不同的反应。 然后我们看看如何实现一个基于GPU的拾取,把拾取的所有计算原创 2011-11-28 21:49:34 · 2340 阅读 · 0 评论 -
Directx11 HelloWorld之_一个简洁漂亮的框架
前些天在看微软的一个HandsOnLab和《Intro to D3d10》的时候,发现一个挺好的设计框架,简洁优美,很方便初学者搭建自己一些简单的绘制程序,修改下后拿来分享下。 关键是Run()和里面的Setup()和MessageLoop()。class BasicDraw{public:HRESULT Run();BasicDraw();~BasicDraw();原创 2011-05-22 22:36:00 · 2426 阅读 · 4 评论 -
Directx11:基于GPU_GeometryShader的Billboard公告板绘制
公告板是游戏里一很常见的技术,用来绘制树木,草地,爆炸效果等。说白了就求一个矩形框,然后贴一张照片上去。(Ps下由于个人博客所以讲的比较随便,有时候讲billboard,有时候公告板,有时候一个矩形框,都指差不多一个东西) 而Geometry Shader则是Directx10里面推出的一个新的Shader能够处理完整的几何模型。想典型VertexShader只知道并处理顶点,而Geom原创 2011-11-22 14:42:59 · 2794 阅读 · 0 评论 -
Directx11 HelloWorld之HLSL的Effect框架的使用
最近尝试用了下Directx下的Effect框架,作为一初学者初学者,说下为什么我们要使用Effect框架及其好处吧。 首先Effect最大好处的就是简单,使得编写Shader绘制的程序工作量大大下降。如果不用Effect框架,那么一个个Vertex Shader,Geometry Shader和Pixel Shader都要一遍遍的先用D3DX11CompileFromFile得到二进制原创 2011-08-13 11:10:48 · 4278 阅读 · 0 评论 -
Vs中高亮HLSL关键字
很多刚开始写HLSL,或者cg,glsl等shader语言的朋友一定会有个小困惑,编辑器不支持这些shader语言的关键字,在记事本中跟文本一样全是一个颜色的写,很容易犯错。下面以HLSL为例(其他类似)说下,如何使得vs能够识别并高亮这些shader的关键字。 主要有原创 2011-08-17 16:24:29 · 5896 阅读 · 1 评论 -
Directx11与PhysX的结合
最近因为一个比赛项目用了段时间的PhysX,来总结下如何在Directx11中使用PhysX吧。 首先是PhysX的部署。这个在PhysX SDK的第一页的Installation也有讲了。 1:在PhysX的SDK里面找到PhysXCore.dll, Phy原创 2011-08-13 16:09:55 · 2389 阅读 · 0 评论 -
图形学的坐标转换问题(局部到世界坐标系,世界到观察坐标系)
<br /><br />3D图形学的坐标系转换偶感觉比较琐碎的问题。看了后几个月又忘记了。决定又重新看遍,记录下来以增加记忆。但偶太懒了,加上某些描述《Introduction to d3d9c》这本书原著描述的很好了,偶都不敢翻译,就直接粘过来了。<br /> 3D图原创 2011-01-04 20:22:00 · 14176 阅读 · 3 评论 -
3DPointCloudReconstruction(3D点云重构)
本科时候做的东西了,三维点云重构。这个算是个成败参半的项目。最近决定拿出来晒晒,一来从这个项目自己学到很多东西,拿来复习下,二来也从失败的经验学到教训,三来很多公司要作品链接,顺便发上来。 从软件工程角度说,无疑非常失败的。一是用了XNA作为3D的API,这是最失败一步。由于XNA是面向开发小游戏的,做3D图形研究非常不适合,一来速度受到限制,二来没有GPU的接口,三来由于其基于C#.net平台,无法利用已有的3D图形开源资源(因为3D绝大部分学术资源都是用C++写的,像cgal,meshlab,vt原创 2011-04-28 11:23:00 · 10594 阅读 · 3 评论 -
基于GPU的3D流体模拟
最近在做一个基于GPU的3D流体模拟。API是Directx11,主要GPU并行计算也是在Directx11的DirectCompute上完成的。初步已经完成了流体的计算,所有的计算都映射到GPU上去。正在打算扩展到流体与固体的交互,能够轻易的整合到任何游戏场景中。先放几个截图。原创 2011-04-27 19:29:00 · 3978 阅读 · 10 评论 -
Directx11的warning:Resource View Is Already Bound To An OutputSlot
之前在博文里面说过不能同时将一个resource的shader resource view和unordered access view绑定到pipeline。本来想说这种sb行为估计也没人会犯错。但是今天才发现防不胜防,当系统一大起来,算法复杂起来,就会不经意的犯这种错误了。首先看看SDK对同时绑定两个view时(先用CSSetUnorderedAccessView绑定到output slot,再用CSSetShaderResourceView绑定到input slot)系统会做的反应的解释:ID3D11D原创 2011-04-13 21:09:00 · 1610 阅读 · 0 评论 -
Directx10,11的SwapChain,RenderTarget和DepthBuffer解释
在开始学Directx10,11时,有几个常见的概念,或变量如SwapChain,RenderTarget,Depth Buffer都有点似懂非懂,很多时候都是依样画葫芦。写的多了,加上看了SDK和《Intro to d3d10》后,最近突然焕然大悟。记录分享下。1:SwapChain。SwapChain这个概念还是比较容易懂的,主要负责维护几个表面(图像)的集合,当显示器在展示当前帧时,Directx在后台绘制下一帧。 怕讲的不够准确清晰,附《Intro to d3d10》的详细解释如下: T原创 2011-04-07 21:02:00 · 7136 阅读 · 5 评论 -
Directx11中获取HLSL中变量一些问题
在Directx10和11中,如何将CPU初始化好的resource(主要以buffer为例)绑定到HLSL语言中buffer,是个让我曾经有点小小困惑的问题,这两天做了几个小小实验。整理下思路如下。 一般用CSSetShaderResources()绑定shader resource,如果在HLSL中的structured有指定register(比如StructuredBuffer testInBuffer:register(t0)),那么就根据CSSetShaderResources(UI原创 2011-03-18 16:09:00 · 4841 阅读 · 1 评论 -
坐标系的转换
<br /> 从小就感觉自己的逻辑思维比空间想象思维要强,但是现在居然来做图形学,蛮有意思的。<br /> 下午就在纠结这样一句话:三维观察流水线中,场景构造完成的第一步是将对象描述从世界坐标系变换到观察坐标系中。等价于将观察坐标系叠加到世界坐标系的一连串变换。<br /> 恩恩,记下来。<br />原创 2010-10-17 17:20:00 · 1087 阅读 · 0 评论 -
(转)计算几何Poj题目集合
一如这篇博主所说,计算几何在GIS 图形学很多领域都是很基本的问题。需要用到计算几何算法的同学不妨用poj上题目验证下自己的模板正确与否。。其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中。之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的算法,在很多领域有着重要的用途(例如本人的专业,GIS)。以后若有机会,我会补充、完善这个列表。转载 2012-06-08 19:24:56 · 1115 阅读 · 0 评论