资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

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材质渲染
下一篇
灯光