归海一啸
光明使者
光明使者
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
阅读:1634回复:0

NVisionXR_Android教程五:添加灯光渲染

楼主#
更多 发布于:2018-04-01 11:44
上一篇教程给大家介绍如何渲染3D骨骼动画,最后模型是全黑的,因为没有灯光。这篇教程给大家介绍,如何添加灯光。
NVisionXR引擎目前支持三种灯光:点光源, 平行光, 聚光灯。
我们需要在NVScenePlay场景中实例化平行光源(方向光),如下代码:
NVWorld.Light light = (NVWorld.Light)getWorld().getObject(NVWorld.ObjectType.LIGHT, "dir_light");
if(light == null)
{
   light  = (NVWorld.Light) getWorld().createObject(NVWorld.ObjectType.LIGHT, "dir_light");
   light.setType(NVWorld.Light.DIRECTION);
   light.setDirection(new NVVector3f(0, -1, 0));
}

实例化之后,需要将灯光添加到场景中,
@Override
public void onStart() {
   super.onStart();

   NVWorld.Light light = (NVWorld.Light)getWorld().getObject(NVWorld.ObjectType.LIGHT, "dir_light");
   if(light != null)
   {
       light.attachTo(this);

   }
}

另外,我们在场景退出后,释放资源:
@Override
public void onStop() {
   super.onStop();
   NVWorld.Light light = (NVWorld.Light)getWorld().getObject(NVWorld.ObjectType.LIGHT, "dir_light");
   if(light!=null){
       light.dettach();
   }
}

最后我们再运行程序看看效果,如下图所示:

图片:微信图片_20180401103324.jpg



当然,你还可以在场景中添加其他光源,使用方法如下:

图片:图片1.png




欢迎联系:
AR学院(www.arvrschool.com),从这里感触未来!

欢迎分享

游客

返回顶部