2012年4月3日

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 阅读(1251) 评论(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 阅读(1269) 评论(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 阅读(1254) 评论(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 阅读(1576) 评论(1) 推荐(0) 编辑

Directx教程(22) 简单的光照模型(1)

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

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

导航