上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 33 下一页

2012年8月10日

Directx11教程(59) tessellation学习(1)

摘要: 在D3D11管线中,新增加了3个stage, Hull shader, Tessellator, Domain shader,用来实现细分操作,就是在gpu中把低细节的表面细分成高细节的体元。在gpu中把低模通过tessellation转化为高模,在获得高细节模型的同时,可以有效降低把顶点数据从system memory传到 video memory的带宽消耗。 下面我们看... 阅读全文

posted @ 2012-08-10 19:35 迈克老狼2012 阅读(4719) 评论(0) 推荐(2) 编辑

Directx11教程(57) 环境映射

摘要: 建好skydome后,如果我们想让其中的某个物体,比如那个球体来映射出周围环境的蓝天白云(不包括自己附近的物体),该怎么做呢?此时可以把这个球体当成一面镜子,把我们视点看这个物体上某个顶点p时的反射向量当作cube map查询向量v,得到纹理texel,然后p点的颜色可以用blend的方式,混合当前颜色和采样的纹理texel,就可以实现我们想要的效果。 我们新建一个Li... 阅读全文

posted @ 2012-08-10 06:53 迈克老狼2012 阅读(1184) 评论(0) 推荐(0) 编辑

2012年8月9日

Directx11教程(56) 建立一个skydome

摘要: 本章建立一个skydome(天空穹),主要学习如何使用cube mapping。 cube map就是把六张纹理当作一个cube的六个面,而cube的中心,则是坐标轴,而六个面则是垂直于坐标轴某个轴,如下图所示,在cube mapping中,我们不在使用二维纹理坐标,而是用(u,v,w)三维纹理坐标,用这个坐标产生一个查询向量,这个向量和cube 纹理的交点,即为该顶点对应... 阅读全文

posted @ 2012-08-09 20:15 迈克老狼2012 阅读(2899) 评论(1) 推荐(1) 编辑

Directx11教程(55) 建立球形和锥形物体

摘要: 本教程中,我们新建2个model class,SphereModelClass以及CylinderModelClass,分别用来表示球形和锥形物体。 程序执行后的界面如下: 线框模式界面如下: 从线框模式可以看出,球形是由三个因素决定:半径、经度线、纬度线。 在SphereModelClass.cpp中,我们看到,初始化顶点缓冲和索引缓冲的函数为:Initialize... 阅读全文

posted @ 2012-08-09 06:59 迈克老狼2012 阅读(1706) 评论(0) 推荐(0) 编辑

2012年8月5日

Directx11教程(20) 一个简单的水面

摘要: nnd,以前发的这篇教程怎么没有了?是我自己误删除了,还是被系统删除了? 找不到存稿了,没有心情再写一遍了。 简单说一下,本篇教程就是实现一个水面的动画,主要是利用动态顶点缓冲,在每一帧都改变顶点的值,从而实现水面的动画。主要参考的是《introduction to 3D game programming with d3d10》这本书,但D3D10和D3D11的动态缓冲实现有所改... 阅读全文

posted @ 2012-08-05 09:47 迈克老狼2012 阅读(1892) 评论(0) 推荐(0) 编辑

2012年5月26日

Directx11教程(54) 简单的基于GS的billboard实现

摘要: 本章我们用一个billboard的实现来学习D3D11中的GS。 在VS shader中,我们输入的是顶点位置及顶点属性,输出的也是顶点位置及顶点属性。在GS shader中,我们输入的是体元(primitive,可以是点,线,三角形等等,凡是D3D11中允许的体元都可以使用), 输出顶点、顶点属性,以及体元信息。 如下面两个图,左边对一个三角形做vs操作,则会对三个顶... 阅读全文

posted @ 2012-05-26 06:21 迈克老狼2012 阅读(1636) 评论(0) 推荐(0) 编辑

2012年5月25日

Directx11教程(53) D3D11管线(8) GS的调度执行

摘要: 在前面的教程中,我们分析了VS-PS的shader管线组合执行过程,本章我们分析一下VS-GS-PS的管线执行过程,主要是GS阶段hardware何如调度。 参考资料:http://fgiesen.wordpress.com/2011/07/01/a-trip-through-the-graphics-pipeline-2011-part-8/ 从D3D1... 阅读全文

posted @ 2012-05-25 20:29 迈克老狼2012 阅读(1392) 评论(0) 推荐(0) 编辑

2012年5月18日

Directx11教程(52) 实例(instancing)的简单应用

摘要: 有些时候,我们需要在场景中渲染大量的重复的物体,比如体育场中的观众,森林里面的树木等等,这些物体具有相似的形状,比如很多树木,只是位置不同,或者贴图不同而已,如果重复渲染这些树木,用billboard技术,n棵树,就要输入n*4个顶点,在树木很多的时候,这也是比不小的开销,因为每次都要在syste... 阅读全文

posted @ 2012-05-18 20:17 迈克老狼2012 阅读(3705) 评论(0) 推荐(0) 编辑

2012年5月16日

Directx11教程(51) 简单的billboard

摘要: billboard称作公告板,通常用一个quad(四边形)表示[有的billboard用两个正交的quad表示],它的特点就是始终面向摄像机的方向。在大规模场景渲染中,可以公告板上贴一个纹理,比如树,这样在比较远的场景中,可以用它表示模型数据,从而减少场景中的顶点数量。 假定xz平面是大地,y轴是向上的方向,则billboard和y轴的方向一致,随... 阅读全文

posted @ 2012-05-16 21:09 迈克老狼2012 阅读(2016) 评论(0) 推荐(0) 编辑

2012年5月15日

Directx11教程(50) 输出depth/stencil buffer的内容

摘要: 有时候,我们需要查看depth/stencil buffer的内容,比如上一章中,我们要查看stencil buffer,看看我们设置的stencil值是否起作用,这时就要输出depth/stencil buffer内容,但这些内容在gpu中,我们并不能直接查看,需要通过纹理copy,资源映射的方式,拷贝到system memory中才可以直接查看。 下面是输出depth... 阅读全文

posted @ 2012-05-15 21:32 迈克老狼2012 阅读(1935) 评论(0) 推荐(0) 编辑

上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 33 下一页

导航