04 2012 档案

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

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

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

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

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

Directx11教程39 纹理映射(9)
摘要:在myTutorialD3D11_32中,我们在PlaneModelClass中增加一个纹理TextureClass* m_Texture;读入一个grass的纹理,程序执行后的效果如下: 完整的代码请参考: 工程文件myTutorialD3D11_32 代码下载: http://files.cnblogs.com/mikewolf2002/d3d1127-28.zip ht... 阅读全文

posted @ 2012-04-13 20:11 迈克老狼2012 阅读(1541) 评论(1) 推荐(2) 编辑

Directx11教程38 纹理映射(8)
摘要:上篇日志中,我们用纹理和光照颜色调制的方式得到最终颜色,本章我们尝试用纹理采样的颜色,直接做为材质的漫反射系数Kd,并用它来做光照计算,最后再做个gamma校正,如果不做的话,效果会偏亮。 lighttex.ps主要改动代码: float4 textureColor = shaderTexture.Sample(SampleType, input.tex); float4... 阅读全文

posted @ 2012-04-13 16:42 迈克老狼2012 阅读(1201) 评论(0) 推荐(0) 编辑

Directx11教程37 纹理映射(7)
摘要:本章是在教程35、36的基础上来实现一个光照纹理结合的程序,就是把场景中旋转的cube加上纹理。 lighttex.vs中顶点的结构现在为: struct VertexInputType { float4 position : POSITION; float3 normal : NORMAL; float2... 阅读全文

posted @ 2012-04-13 16:20 迈克老狼2012 阅读(1470) 评论(5) 推荐(0) 编辑

Directx11教程36 纹理映射(6)
摘要:本章主要是整理代码,做以下两件事情: 1、把世界坐标矩阵的计算,放在GraphicsClass的渲染函数中,之前放在D3DClass中,而且只是返回一个单位矩阵,没任何作用。如果要使其起作用,就要对每个model类都单独设置,很麻烦,比如我要画两个颜色立方体,岂不是要建立两个model类,而只是世界坐标矩阵不同。 放在Render函数中后,我们主要通过一些D3D的矩阵变化函数... 阅读全文

posted @ 2012-04-13 15:34 迈克老狼2012 阅读(1415) 评论(0) 推荐(0) 编辑

Histogram equalization
摘要:This method usually increases the global contrast of many images, especially when the usable data of the image is represented by close contrast values. Through this adjustment, the intensities c... 阅读全文

posted @ 2012-04-10 06:42 迈克老狼2012 阅读(2083) 评论(0) 推荐(0) 编辑

Directx11教程(35) 纹理映射(5)
摘要:到现在为止,我们的TextureClass初始化函数非常简单,说白了就是一行代码: result = D3DX11CreateShaderResourceViewFromFile(device, filename, NULL, NULL, &m_texture, NULL); 这行代码装入一个dds文件,而且其它选项都设置为NULL,这时系统会使用装入文件本身的格式... 阅读全文

posted @ 2012-04-09 21:20 迈克老狼2012 阅读(4228) 评论(4) 推荐(2) 编辑

Directx11教程(34) 纹理映射(4)
摘要:本篇教程中,我们尝试在myTutorialD3D_27中改变采样状态描述符的各种设置,看纹理贴图的方式有什么变化。 原始的代码是: // 创建纹理采样描述符 samplerDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR; samplerDesc.AddressU = D3D11_TEXTURE_AD... 阅读全文

posted @ 2012-04-08 18:12 迈克老狼2012 阅读(2693) 评论(0) 推荐(1) 编辑

Directx11教程(33) 纹理映射(3)
摘要:现在我们在myTutorialD3D11_5的基础上,来逐步编码实现纹理映射,之所以在myTutorialD3D11_5基础上改写,是因为这个工程只是画了一个三角形,便于我们贴一个纹理上去,然后改变纹理采样状态,观察纹理贴图的变化。 首先,我们不再为每个顶点赋颜色值,用一个纹理坐标代替,这样在ps中我们可以通过采样纹理,得到物体表面的颜色。 对Color.vs和Co... 阅读全文

posted @ 2012-04-08 11:50 迈克老狼2012 阅读(2594) 评论(2) 推荐(0) 编辑

Directx11教程(32) 纹理映射(2)
摘要:在写代码之前,我们先制作一个dds文件。从网上找到了一张照片,处理成为512*512,保存为jpg格式。 启动微软的directx texture tool后,把图片拖到其内: 选择文件Format->Generate Mip Maps,可以在图像的标题栏看到Mip 1 of 10的字样,这是因为我们原始图像大小为512*512,生成MipMaps时,会产生2... 阅读全文

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

Directx11教程(31) 纹理映射(1)
摘要:在前面的例子中,我们要么是直接给顶点赋颜色值,要么是在顶点属性中设置Diffuse和Specular系数,从而根据光照参数计算得到物体表面颜色,但这样得到的颜色真实感要差很多。如果我们直接把一副图像映射到三角形面上,从而得到物体表面颜色值,效果会好很多,比如下面的两幅图,右边的图是把一副图片映射到2个三角形上。 甚至,我们还可以直接使用图像的颜色值做为顶点(... 阅读全文

posted @ 2012-04-07 15:46 迈克老狼2012 阅读(5105) 评论(3) 推荐(2) 编辑

Directx教程(30) 如何保证渲染物体不会变形
摘要:在Directx11教程(6)中, 我们曾经实现过这个功能,但那时是在SystemClass中,处理WM_SIZE时候,重新调用m_Graphics的初始化函数,这样的话,它的成员变量D3D类还有其它几个成员类,都会重新创建,所以我们的场景等于是从头重新渲染。对于静态场景,这没有问题,但是对于动画场景,我们一改变窗口大小,动画就会从头播放,这显然不是我们所希望的。 本章中,我... 阅读全文

posted @ 2012-04-06 21:56 迈克老狼2012 阅读(1902) 评论(0) 推荐(0) 编辑

Directx教程(29) 简单的光照模型(8)
摘要:现在我们新建一个工程myTutorialD3D_23,在这个工程中,对前面一章的代码进行一些整理: 1、我们在顶点属性中增加材质的的漫反射系数和高光系数,前面我们放在一个光照材质结构中,这样我们能够比较灵活的定义不同顶点的材质属性,当然这也增加了顶点缓冲的大小。 struct VertexType { D3DXVECTOR3 position; ... 阅读全文

posted @ 2012-04-06 21:11 迈克老狼2012 阅读(1412) 评论(0) 推荐(0) 编辑

Directx教程(28) 简单的光照模型(7)
摘要:现实生活中的点光源都是随着距离衰减的,比如一个电灯泡在近处会照的很亮,远处光线就很弱。本节中我们在前面光公式的基础上,再给漫反射和高光加上一个衰减因子。 光源随着距离衰减并不是纯线性的,常用的公式是: d 是光源到着色点的距离。 kC, kL, 和 kQ 分别是常量、线性以及二次衰减系数。 现在在light.ps中,计算光照的代... 阅读全文

posted @ 2012-04-04 10:54 迈克老狼2012 阅读(2441) 评论(4) 推荐(2) 编辑

Directx教程(27) 简单的光照模型(6)
摘要:从myTutorialD3D11_15到myTutorialD3D11_19的工程中,我们都只有一个光源,光源的位置在LightClass中我设置为m_position = D3DXVECTOR4(5.0, 5.0, -3.0,1.0),所以我们渲染的cube,在前面,右侧,上面都没有问题,但是,我们通过A键移动摄像机后,会发现右侧的面没有光照效果。这是因为右侧面的法向是-x方向,漫反射... 阅读全文

posted @ 2012-04-03 19:25 迈克老狼2012 阅读(1253) 评论(0) 推荐(0) 编辑

Directx教程(26) 简单的光照模型(5)
摘要:在前面的工程中,我们都是在vs中实现顶点光照计算,然后再把顶点颜色传到ps中。本章中我们尝试fragment光照(或者说叫ps光照),在vs中,我们把顶点在世界坐标系中的法向和位置都直接传输到ps中。 // 世界坐标系中的顶点法向. float3 N = mul(input.normal, (float3x3)worldMatrix); ... 阅读全文

posted @ 2012-04-03 15:21 迈克老狼2012 阅读(1272) 评论(0) 推荐(0) 编辑

Directx教程(25) 简单的光照模型(4)
摘要:在本篇日志中,我们尝试用不带衰减的点光源来计算漫反射颜色。 前面的三个工程,我们都用的是方向光源(directional light),它的特点是没有光源位置或者说光源位置位于无穷远处,且光线在各个方向都是平行的,所以在工程myTutorialD3D11_17中,我们看到的程序界面上,cube每个面上的颜色都是一样的[因为diffuse光占颜色的大部分]。 方向光... 阅读全文

posted @ 2012-04-03 14:45 迈克老狼2012 阅读(1549) 评论(0) 推荐(0) 编辑

Directx教程(24) 简单的光照模型(3)
摘要:在工程myTutorialD3D11_17中,我们重新定义我们的cube顶点法向,每个三角形面的顶点法向都是和这个三角形的面法向是一致的。如下图所示: 在该工程中,我们还修改了CubeModelClass文件,从一个cube.txt文件中读cube顶点位置、法向、纹理坐标。 cube.txt的格式为: Vertex Count: 36 Data: -1.... 阅读全文

posted @ 2012-04-03 14:13 迈克老狼2012 阅读(1255) 评论(0) 推荐(0) 编辑

Directx教程(23) 简单的光照模型(2)
摘要:在工程myTutorialD3D11_16中,我在文件light.vs中定义了一个材质光源属性常量缓冲。 //const buffer最好为4 float的倍数,否则创建const buffer会fail cbuffer LightMaterialBuffer { float4 lightPosition; //光源位置 ... 阅读全文

posted @ 2012-04-03 13:30 迈克老狼2012 阅读(1577) 评论(1) 推荐(0) 编辑

Directx教程(22) 简单的光照模型(1)
摘要:在前面的教程中,我们在顶点属性中直接给顶点赋颜色,这样生成的三维物体缺乏真实感,如下图中两个立方体,左边的是通过光照生成物体表面颜色的,右边的则是直接给顶点赋颜色值。 首先,我们学习一下最简单的phong光照模型: 在phong光照模型中,物体表面的颜色由自发射光(emissive)、环境光(ambient)、漫反射光(diffuse)以及镜面高光(... 阅读全文

posted @ 2012-04-03 13:09 迈克老狼2012 阅读(2594) 评论(1) 推荐(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
点击右上角即可分享
微信分享提示