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

2012年5月15日

Directx11教程(49) stencil的应用-镜面反射

摘要: 本教程中,我们利用stencil来实现一个镜面反射效果。 1、首先我们要在D3DClass中增加几个成员变量及函数。 ID3D11DepthStencilState* m_depthStencilStateMirror; ID3D11DepthStencilState* m_depthStencilStateReflect; m_depthStencilSt... 阅读全文

posted @ 2012-05-15 20:12 迈克老狼2012 阅读(3786) 评论(0) 推荐(0) 编辑

Directx11教程(48) depth/stencil buffer的作用

摘要: 在D3D11中,有depth/stencil buffer,它们和framebuffer相对应,如下图所示,framebuffer中一个像素,有相对应的depth buffer和stencil buffer值: D3D11中,depth buffer和stencil buffer一起定义,比如DXGI_FORMAT_D24_UNORM_S8_UINT,是指用一个无... 阅读全文

posted @ 2012-05-15 07:52 迈克老狼2012 阅读(6721) 评论(0) 推荐(1) 编辑

2012年5月12日

Directx11教程(47) alpha blend(4)-雾的实现

摘要: 除了用来实现透明效果之外,我们还可以用alpha blend来实现雾(fog)的效果。通过逐渐清晰的雾气效果,可以增加场景的真实感。 雾的效果实现很简单,首先我们要一种颜色来表示雾,通常使用用灰色。 其实雾的效果和视点有很大关系,距离视点越近,雾就越淡,距离越远,雾就越浓。 最终物体颜色是雾的颜色和计算出的pixel颜色的混合,我们使用的公式如下:... 阅读全文

posted @ 2012-05-12 11:40 迈克老狼2012 阅读(2081) 评论(3) 推荐(1) 编辑

Directx11教程(46) alpha blend(3)

摘要: 现在我们尝试改变box的贴图,使用一张带alpha的dds文件wirefence.dds, 用directx texture tool打开文件界面如下: 实际上,这幅图中一些像素有alpha值,一些像素alpha值为0,我们点击View-alpha channel only,可以看到下面的图,其中黑色部分的alpha值为0: 现在我们把这幅图贴到... 阅读全文

posted @ 2012-05-12 07:15 迈克老狼2012 阅读(1720) 评论(0) 推荐(0) 编辑

2012年5月11日

Directx11教程(45) alpha blend(2)

摘要: 在myTutorialD3D11_40中,我们在场景中再添加一个box,并把box放在水里,实现半透明的效果。如下图所示: 我们要特别注意一点的就是场景中物体的渲染次序,先渲染山谷、第二个box,第三个水。 box和水的顺序不能颠倒,颠倒后的效果如下,没有了透明的效果: 完整的代码请参考: 工程文件myTutorialD3D11_40 代码下载: h... 阅读全文

posted @ 2012-05-11 22:01 迈克老狼2012 阅读(1240) 评论(0) 推荐(0) 编辑

Directx11教程(44) alpha blend(1)

摘要: 我们知道,D3D11中按Frame来渲染物体,每个Frame中又可能包含若干个primitive,如下面的示意图所示: gpu在实际渲染中,会按帧来渲染,比如上图frame0中,有两个primitive(三角形),经过vs以后,PA(primitive assemble) block会进行体元装配,然后进行光栅化操作,光栅化操作时候,会比较depth buffer的值。因... 阅读全文

posted @ 2012-05-11 07:29 迈克老狼2012 阅读(4778) 评论(3) 推荐(0) 编辑

2012年5月10日

Directx11教程(43) 纹理映射(13)-动态纹理映射

摘要: 本篇教程中,我们将在前面基于光照的地形与水面程序里面加上纹理映射,而且我们会基于时间动态改变水面的纹理坐标,实现水面纹理波动的效果。 地形(山谷)以及水面都是基于网格的平面。 对于地形,修改顶点类型为: struct VertexType { D3DXVECTOR3 position; ... 阅读全文

posted @ 2012-05-10 07:16 迈克老狼2012 阅读(2177) 评论(0) 推荐(0) 编辑

2012年4月21日

Directx11教程(42) 纹理映射(12)-简单的bump mapping

摘要: 有时候,我们只有一个粗糙的模型,但是我们想渲染纹理细节,比如一个砖墙,我们如何在只有一个平面的时候,渲染出砖墙凹凸的效果。 比如只有这样的墙: 但是我们想要这样的效果: 怎么办呢?这时候,我们可以考虑对第一张图进行处理,生成它的法向图,存储在一张纹理中,生成法向图的主要算法是: 对于一张图片,假设像素排列如上图所示,Hg,Hr,Ha... 阅读全文

posted @ 2012-04-21 13:20 迈克老狼2012 阅读(1812) 评论(2) 推荐(0) 编辑

2012年4月15日

Directx11教程41 纹理映射(11)

摘要: 1、第一副图我们采用各性异性的滤波方式,并设置最大各性异性值为8. samplerDesc.Filter = D3D11_FILTER_ANISOTROPIC; samplerDesc.MaxAnisotropy = 8; 第二副图我们用了常用的3线性差值滤波方式 samplerDesc.Filter = D3D11_FILTER_MIN_... 阅读全文

posted @ 2012-04-15 09:10 迈克老狼2012 阅读(1473) 评论(0) 推荐(0) 编辑

2012年4月13日

Directx11教程40 纹理映射(10)

摘要: 本章尝试使用纹理行列式,或者说纹理数组,在ps中,使用2个纹理,最终的像素颜色,是光照颜色*纹理1采样颜色*纹理2采样颜色,主要是想达到如下的效果: 把这两个图像以及光照产生的颜色融合生成以下图像: 为此我们新建一个lighttex2.ps文件,在其中定义: //两个纹理,可用于纹理混合,bump mapping等等 Texture2D shad... 阅读全文

posted @ 2012-04-13 20:37 迈克老狼2012 阅读(1418) 评论(0) 推荐(1) 编辑

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

导航