当前位置: 首页 > news >正文

沈阳德泰诺网站制作网推app怎么推广

沈阳德泰诺网站制作,网推app怎么推广,优化百度seo,深圳市外贸网站光照的组成 环境光:这种类型的光经其他表面反射到达物体表面,并照亮整个场景,要想以较低代价粗略模拟这类反射光,环境光是一个很好的选择 漫射光:这种类型光沿着特定的方向传播。当它到达某一表面时,将沿…

光照的组成

环境光:这种类型的光经其他表面反射到达物体表面,并照亮整个场景,要想以较低代价粗略模拟这类反射光,环境光是一个很好的选择

漫射光:这种类型光沿着特定的方向传播。当它到达某一表面时,将沿着各个方向均匀反射,无论从哪个方位观察,表面亮度均相同,所以采用该模型时无须考虑观察者的位置,这样,漫射光方程中仅需考虑光传播的方向以及表面朝向,从一个光源发出的光一般都是这种类型的。

镜面光:这种类型的光沿特定方向传播,当此类光到达一个表面时,将严格地沿着另一个方向反射,从而形成只能在一定角度范围内才能观察到的高亮度照射,所以在镜面光照方程中不仅需要考虑光线的入射方向和图元的表面朝向,还需要考虑观察点的位置。镜面光可用于模拟物体上的高光点,例如当光线照射到一个抛光的表面所形成的高亮照射。

镜面光比其他类型光计算量大,因此Direct3D提供了开关选项,默认状态下Direct不进行镜面反射计算,如果想启用镜面光,必须调用接口进行设置

Device->SetRenderState(D3DRS_SPECULARENABLE, true);

每种类型的光都可用结构D3DCOLORVALUE或者D3DXCOLOR来表示,描述光线的颜色时,D3DXCOLOR类中的Alpha值都将被忽略

D3DXCOLOR redAmbient(1.0f, 0.0f, 0.0f, 1.0f);
D3DXCOLOR blueDiffuse(0.0f, 0.0f, 1.0f, 1.0f);
D3DXCOLOR whiteSpecular(1.0f, 1.0f, 1.0f, 1.0f);

材质

现实世界中,我们所观察到的物体的颜色是由该物体所反射的光的颜色决定的,例如一个纯红色的球体反射了全部的红色入射光,并吸收了所有非红色的光,所以呈现为红色。当一个物体吸收了所有的光时,便呈现为黑色,如果一个物体能够100%地反射红色光、绿色光、蓝色光,它将呈现为白色,Direct3D通过定义物体的材质来模拟同样的现象,材质允许我们定义物体表面对各种颜色光的反射比例,材质用结构D3DMATERIAL9来表示。

typedef struct D3DMATERIAL9 {D3DCOLORVALUE   Diffuse;  D3DCOLORVALUE   Ambient;  D3DCOLORVALUE   Specular; D3DCOLORVALUE   Emissive; float           Power;    
} D3DMATERIAL9;

Diffuse:指定材质对漫射光的反着率
Ambient:指定材质对环境光的反射率
Specular:指定材质对镜面光的反射率
Emissive:该分量用于增强物体的亮度,使之看起来好像可以自己发光
Power:指定镜面高光点的锐度,该值越大,高光点的锐度越大

//只反射红色光
D3DMATERIAL9 red;
::ZeroMemory(&red, sizeof(red));
red.Diffuse = D3DXCOLOR(1.0f, 0.0f, 0.0f, 1.0f);
red.Ambient= D3DXCOLOR(1.0f, 0.0f, 0.0f, 1.0f);
red.Specular = D3DXCOLOR(1.0f, 0.0f, 0.0f, 1.0f);
red.Emissive = D3DXCOLOR(0.0f, 0.0f, 0.0f, 1.0f);
red.Power = 5.0f;

设置材质接口SetMaterial

D3DMATERIAL9 blueMaterial;
Device->SetMaterial(&blueMaterial);
//draw...

顶点法线

顶点法线描述的是构成多边形的各个顶点的法线,Direct3D需要知道顶点的法线方向,以确定光线到达表面时的入射角,由于光照计算是对每个顶点进行的,所以Direct3D需要知道表面在每个顶点处的局部朝向(法线方向),描述一个顶点法线需要修改顶点结构

struct Vertex
{float _x, _y, _z;float _nx, _ny, _nz;static const DWORD FVF;
};
const DWORD Vertex::FVF = D3DFVF_XYZ | D3DFVF_NORMAL;

计算三角形三个顶点的法线,可由计算该面的法向量得到,首先计算位于三角形平面内的俩个向量

void ComputeNormal(D3DXVECTOR3* p0, D3DXVECTOR3* p1, D3DXVECTOR3* p2, D3DXVECTOR3* out)
{D3DXVECTOR3 u = *p1 - *p0;D3DXVECTOR3 v = *p2 - *p0;D3DXVec3Cross(out, &u, &v);D3DXVec3Normalize(out, out);
}

当用三角形单元逼近表示曲面时,将面片法向量作为构成该面片的顶点法向量不可能产生很平滑的效果,一种更好的求取顶点法向量的方法是计算法向量均值,我们需要求出共享点v的所有三角形的面法向量,然后将这些法向量相加后除以个数进行平均。

在变换过程中,顶点法线有可能不再是规范的所以最好的方法是在变换完成后,通过设置绘制状态来重新规范化

Device->SetRenderState(D3DRS_NORMALIZENORMALS, true);

http://www.khdw.cn/news/34734.html

相关文章:

  • 网站后台登录不进去天堂tv在线观看
  • 预约网站如何自己做关键词挖掘站长工具
  • 网站流量变现代运营
  • 政府网站html5广州疫情已经达峰
  • 快速做网站企业银徽seo
  • 零用贷网站如何做搜索引擎营销的主要方法包括
  • 做传奇私服网站大概多少钱济南网络优化网址
  • 教做网站优化方案的格式及范文
  • 淮安网站制作怎么做网页
  • wordpress 数据库权限河北seo网络推广
  • 自动发卡网站开发网络营销的手段包括
  • web前端培训一般多少钱seo是什么化学名称
  • 网站建设如何商谈交易平台官网
  • 网站建设 h5我想开个网站平台怎么开呢
  • 网站建设模板是什么意思广州百度推广优化排名
  • 平面设计制作搜索引擎优化的目标
  • 网站建设公司河南郑州青海网站seo
  • 韵达快递小网站怎么做网络舆情处理公司
  • 成都网站推广营销微信手游推广渠道
  • 做新闻网站危险吗百度号码认证平台官网
  • 建e网室内设计网官网榻榻米衣柜官方聊城seo优化
  • 做网站上是外部连接怎么改seo中国是什么
  • 徐州cms模板建站网站推广该怎么做
  • 做更好的自己 网站推广的公司
  • 专业的手机网站开发今日热搜前十名
  • 襄阳哪里做网站东莞网站推广技巧
  • 怎么做捕鱼网站四川seo快速排名
  • 做个商城网站怎么做便宜百度seo推广优化
  • 做医疗的网站怎么网上推广自己的产品
  • 湖南省重点建设项目办公室网站百度网址大全网站