开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

3D模型渲染

3D模型渲染

目前引擎在3D方面支持POD类型及GLTF类型的模型渲染。

3D模型制作规范

3D模型制作请严格遵守下方提供的 BAR技术3D模型制作规范套装 制作。

模型子节点的获取

  • 目前想要拿到场景文件中配置的模型节点,仅仅需要知道模型节点的名称,通过scene.nodeName 即可获取到当前节点。
  • 如果要获取模型的子节点并对齐做操作,需要通过模型工具 (例如PVRShaman工具) 查看模型下子节点名称 (subNodeName),通过调用scene.nodeName_subNodeName对子节点进行操作。

 -- simple_scene.json文件

{
    "name": "bear",
    "type": "pod",
    "visible": 1,
    "touchable": 1,
    "meshFileName": "res/model/bear.pod",
    "material": {
        "common": {
            "texturePath":"res/texture/",
            "disableLightEffect":0
        }
    },
    "position": "0,300,0",
    "scale": "0.3,0.3,0.3",
    "rotation": "0,0,0",
    "chirlden": [],
    "podSuppl": {
        "allSubnodeTouchable":1
    }
}
-- default.lua中需要配置

	anim = scene.bear : pod_anim()
					 :anim_repeat(false)
					 :on_complete(function() 
					 	ARLOG('pod anim done')
					 end)
					 :anim_repeat(true)
					 :start()

模型动画

3D模型渲染中,如果仅在simple_scene.json文件中配置模型节点,并设置"visible" : 1,lua文件中未调用模型动画逻辑代码,即只会显示模型,不会执行模型的骨骼动画。

-- 3D渲染(无动画pod模型)  json 中节点配置
{
    "name": "bear",
    "type": "pod",
    "visible": 1,
    "touchable": 1,
    "meshFileName": "res/model/bear.pod",
    "material": {
        "common": {
            "texturePath":"res/texture/",
            "disableLightEffect":0
        }
    },
    "position": "0,300,0",
    "scale": "0.3,0.3,0.3",
    "rotation": "0,0,0",
    "chirlden": [],
    "podSuppl": {
        "allSubnodeTouchable":1
    }
}

anim

如果需要模型播放骨骼动画,需要在Lua中调用对应的API,如下代码播放接口才能显示。

-- 视频  除json中节点默认配置项外,lua中需要添加的方法

anim = scene.bear:pod_anim()
				 :anim_repeat(false)
				 :on_complete(function() 
				 	ARLOG('pod anim done')
				 end)
				 :anim_repeat(true)
				 :start()
上一篇
2D材质渲染
下一篇
灯光