PV3D学习笔记-光源

PV3D里的光源似乎只有点光源,PointLight3D,而且不能直接作用于物体,必须通过接受光源的材质来传递。

点光源的创建一条代码就够,引用路径org.papervision3d.lights.PointLight3D

 

var lt:PointLight3D = new PointLight3D(true);

参数true是说明光源可见。

 

随后是创建一种接受光照的材质,PV3D里有这些材质可选:PhongMaterial,CellMaterial,GouraudMaterial

三种材质的创建参数都一样,第一个是光源对象,第二是光源颜色,第三个是氛围颜色,第四个是反光级别,典型代码如下:

var m:GouraudMaterial = new GouraudMaterial(lt,0xFFFFFF,0x000000,1);
然后就可以赋给各种模型,几何体了。

如果要使用贴图,也要光照,PV3D就不如Away3D灵活了,PV3D里必须创建一个着色器材质对象,同时包含贴图材质和光照材质,然后赋给模型,这样才能显示出来。三种光照材质都有对应的着色器材质:PhongShader,CellShader,GouraudShader,创建着色器材质的代码也相同。然后用ShaderMaterial对象混合两种材质即可。比如创建一个贴图材质和一个PhongMaterial,代码如下;

var mf:BitmapFileMaterial = new BitmapFileMaterial("test.jpg");
var ms:PhongShader = new PhongShader(lt);
var m:ShadedMaterial = new ShadedMaterial(mf, ms);
然后再将ShaderMaterial材质赋给模型。

 

需要说明的是,三个光照材质赋给立方体似乎有Bug,就是立方体的背光面边缘也莫名其妙地发光了,只有球体的光照效果最好。

还需要说明的是,上次的DAE模型导入方法还是不全对,Sketchup里把模型建的复杂一点,导入PV3D依然无法显示。

转载于:https://www.cnblogs.com/wocdev/archive/2010/11/09/1873197.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值