08 2012 档案

Directx11教程(64) tessellation学习(6)-PN Triangles
摘要:前面我们用tessellation细分三角形或者四边形,产生的细分点都是在三角形或四边形平面内。本教程我们学习一下PN triangles(point normal triangles)的方法,把一个三角形细分为一个曲面。PN triangles的详细介绍请参考:2001 paper by Vlachos et al ,下面我们简单介绍一下PN triangles: 大家都... 阅读全文

posted @ 2012-08-21 07:07 迈克老狼2012 阅读(3142) 评论(7) 推荐(0) 编辑

Directx11教程(63) tessellation学习(5)
摘要:TS中生成细分后顶点的u,v,{w}坐标,我们根据控制点和u,w,{w}坐标生成新的顶点位置,在前面四边形的细分中,我们用了双线性差值的方法,得到新的顶点位置,这些新顶点位置都在一个平面上。在本教程中,我们使用参数方程,可以生成多边形,在tess factor增大的情况下,得到近似的球体。 DS中生成新顶点的代码为: //顶点在现在表面的位置 ... 阅读全文

posted @ 2012-08-14 07:19 迈克老狼2012 阅读(1629) 评论(0) 推荐(0) 编辑

Directx11教程(62) tessellation学习(4)
摘要:现在看看四边形在不同tess factor时,四边形细分的细节,下图是tess factor1-8时候的细分。tess factor是偶数时候,细分的三角形是对称的,奇数时候,只有一条对角线,细分的三角形是不对称的。相比三角形的细分,四边形的相对来说还算简单,但边的细分以及内部环绕四边形的概念和三角形是一样的,奇数时,中心是一个小的四边形,偶数时中心是一个点。 阅读全文

posted @ 2012-08-13 20:39 迈克老狼2012 阅读(1306) 评论(0) 推荐(0) 编辑

Directx11教程(61) tessellation学习(3)
摘要:现在我们看看在不同tess factor的情况下,三角形是如何细分的?(这儿三条边和内部tess factor值是一样的,而且partitioning("integer")) 下面8张图是三角形在tess factor 1到8的情况下的细分细节: 因为TS阶段是硬件自己做的,没有算法细节,所以我们只能从这些图中,来猜一猜不同tess factor情况下的规律... 阅读全文

posted @ 2012-08-13 07:23 迈克老狼2012 阅读(2078) 评论(0) 推荐(0) 编辑

Directx11教程(60) tessellation学习(2)
摘要:本教程中,我们开始tessellation编程,共实现了2个程序,第一个tessellation程序,是对一个三角形进行细分操作,第二个程序是对一个四边形进行细分操作,两个程序coding差不多,我们先看第一个程序。 程序代码是在myTutorialD3D11_53的基础上改出来的,首先就是修改ModelClass,用来画一个三角形。代码主要的改动是Render函数中... 阅读全文

posted @ 2012-08-11 07:39 迈克老狼2012 阅读(2734) 评论(1) 推荐(0) 编辑

Directx11教程(58) 鼠标控制摄像机
摘要:本篇教程我们实现鼠标旋转摄像机的操作。主要就是按下鼠标左键的时候,根据鼠标的移动对摄像机进行pitch, raw的组合旋转。具体修改代码是在D3CClass类中,增加对鼠标事件的处理: case WM_LBUTTONDOWN: if( wparam & MK_LBUTTON ) { SetCapture(hwn... 阅读全文

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

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 阅读(4749) 评论(0) 推荐(2) 编辑

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

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

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

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

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

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

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

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

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示