vtk灯光效果 vtklight

vtkLight可以分为位置光照(Positional Light,即聚光灯)和方向光照(Direction Light,即平行光)

位置光照是光源位置在渲染场景中的某个位置,可以指定光照的衰减值、锥角等;方向光照即光源位置在无穷远,光线可以认为是平行的,比如自然界中的太阳光。光源的位置和焦点的连线定义光线的方向,默认的vtkLight即为方向光照。

  • SetPosition():设置灯光位置。
  • SetFocalPoint():设置灯光焦点。
  • SetIntensity():设置灯光强度。
  • SetConeAngle();设置灯光锥角 (只有聚光灯时有效)
  • PositionalOff/On 选择设置平行光或者聚光

   

1)平行光

平行光属性设置

  • SetPosition():设置灯光位置。

       SetFocalPoint():设置灯光焦点

只跟焦点和位置、灯光强度有关

 

物体的光照属性主要包括环境光系数、漫反射光系数、镜反射光系数和镜面指数四个,分别用方法SetAmbient()SetDiffuse()SetSpecular()SetSpecularPower()进行设置。 

  • SetAmbient()设置环境光系数 (放多个物体)
  • SetDiffuse()设置散射光系数
  • SetSpecular()设置反射光系数

- 环境光系数表示各种光线照射到物体材质上,经过很多次发射后最终在环境中的光线强度。 

 

实例演示

1每个球体上方添加它的环境光系数,如下图所示。我们可以看出:随着环境光系数属性值的增加,球体越来越亮,但是看上去不像球体,而像个 2D的圆盘。这是因为其他光反射系数都为零了,因而没有很好地反映出现实中物体的实际光照属性。参数设置 SetDiffuse(0.0) SetSpecular(0.0)SetAmbient(x); x = 0.1250.250.3750.50.6250.750.8751.0

(2)在截图上,每个球体上方固定环境光系数,如下图所示。我们可以看出:随着漫反射光系数属性值的增加,球体越来越亮,因而没有很好地反映出现实中物体的实际光照属性。

SetSpecular(0.0)SetAmbient(0.5); SetDiffuse(x)x = 0.1250.250.3750.50.6250.750.8751.0

 

 

 

 

 

 

3)在截图上,每个球体上方固定环境光系数,如下图所示。我们可以看出:随着镜面反射光系数属性值的增加,球体越来越亮,因而没有很好地反映出现实中物体的实际光照属性。SetDiffuse(0.0)SetAmbient(0.5); SetSpecular (x)x = 0.1250.250.3750.50.6250.750.8751.0

 

在这三个系数中,当环境光系数占主导时,阴影效果不明显。当散射光系数占主导时,显示效果会比较粗燥;但反射光系数占主导时,显示效果会比较光滑。

 

(4)镜面指数的取值范围是0~128。该值越小,表示材质越粗糙,点光源发射的光线照射到上面,也可以产生较大的亮点;该值越大,表示材质越类似于镜面,光源照射到上面后,产生较小的亮点。SetSpecular(0.0)SetAmbient(0.5); SetDiffuse(1)

SetSpecularPowerx),x = 0,20,40,60,80,100,120,128.

问题:

(1.环境光系数理解 2.怎么调节系数搭配 )

 

 

 

 

2)聚光灯

  • SetColor():设置灯光的颜色,以RGB的形式指定颜色
  • SetPosition():设置灯光位置。
  • SetFocalPoint():设置灯光焦点。
  • SetIntensity():设置灯光强度。
  • SetConeAngle();设置灯光锥角 (只有聚光灯时有效)

 

SetPosition(0,0,3)

SetFocalPoint(0,0,0)

SetConeAngle(0)

Setcolor100);

有环境光

无环境光

 

 

SetConeAngle(10)

 

 

SetConeAngle(80)

SetConeAngle(90)

 

SetConeAngle(100)

 

 

 

SetConeAngle(180)弹出跟平行光一样的错误 不是点光源 效果跟平行光一样

问题:

研究这个有什么用 对于我们有什么提升 理解更深刻

 

 

 

3)灯光类型

1. light->SetLightTypeToSceneLight();

设置灯光类型为场景灯光 (默认添加时为场景灯光)

灯光为固定位置

 

2. light-> SetLightTypeToCameraLight ();

设置灯光类型为相机灯光

灯光会自动随相机移动

摄像机坐标被定义在坐标空间中,其中灯光机位于(0, 0, 1),朝向(0, 0, 0)在1的距离处,向上(0, 1, 0)

 

方向一致

3. light-> SetLightTypeToHeadlight ();

前照灯总是位于摄像机上,并指向摄像机的焦点。渲染器可以随时修改相机的位置和焦点

 

位置固定

 

问题:

(render自带光是什么属性 是属于哪种类型 怎么验证)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值