6-4.添加镜面高光到反光平面

6-4.添加镜面高光到反光平面

问题

当启用每像素着色,当你渲染一些金属或反光物体看起来还是有些钝。实际生活中,当看一个反光表面例如金属,玻璃或塑料,你将看到一个很亮的反光区。如6-6指示。这些光斑叫镜面高光。

 

 

方案

     当用每像素光照,你可以简单的告诉BasicEffect创建镜面高光。

 

注意 镜面高光只该添加到反光材料。不要添加到软性材料例如衣服或草等或至少使他们的影响非常薄弱

 

如何运作

你可以极端轻松使用BasicEffect来启用镜面高光。为每个光源,你可以指定镜面光色。接下来,你可以设置高光量,这个量允许你调整高光的宽度。量越高,高光越窄。详见6-8.

 

basicEffect.LightingEnabled = true;

       basicEffect.DirectionalLight0.Direction = lightDirection;

        basicEffect.DirectionalLight0.DiffuseColor = Color.White.ToVector3();

        basicEffect.DirectionalLight0.Enabled = true;

        basicEffect.PreferPerPixelLighting = true;

        basicEffect.DirectionalLight0.SpecularColor = Color.White.ToVector3();

basicEffect.SpecularPower = 32;  

 

注意 当用镜面光照是,你将一直使用每像素光照因为镜面高光典型的小,非线性点。因此,他们不应该用插值而是为每个像素分别计算。

posted @ 2009-09-21 19:06  conglele  阅读(389)  评论(0)    收藏  举报