3D模型渲染
更新时间:2021-06-16
3D模型渲染
目前引擎在3D方面支持POD类型及GLTF类型的模型渲染。
3D模型制作规范
3D模型制作请严格遵守下方提供的 BAR技术3D模型制作规范套装 制作。
- 模型制作工具: 推荐使用maya和3dsmax。模型在制作材质以及动画时参考下方BAR技术3D模型制作规范模型/材质/动画。
- FBX导POD工具: PVRGenPOD。
POD格式转换工具百度云链接:密码:y1ks - FBX导GLTF工具: FBX2glTF。
GLTF格式转换工具GitHub链接:GitHub链接 - POD模型自检工具: DuMix Checker。
DuMix Checker可对Pod模型导出是否符合引擎要求进行检查,下载地址见百度云链接:密码:bmcz,具体使用见下方BAR技术3D模型自检规范。 - GLTF模型自检工具: gltf-viewer 或 clay-viewer,具体使用见下方BAR技术3D模型自检规范。
- BAR技术3D模型制作规范(模型)
- BAR技术3D模型制作规范(材质)
- BAR技术3D模型制作规范(GLTF材质)
- BAR技术3D模型制作规范(动画)
- BAR技术3D模型自检规范 DuMix Checker_5.31百度云链接:密码:bmcz
FBX导POD工具百度云链接:密码:y1ks - GLTF模型格式支持范围参考文档
模型子节点的获取
- 目前想要拿到场景文件中配置的模型节点,仅仅需要知道模型节点的名称,通过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
}
}
如果需要模型播放骨骼动画,需要在Lua中调用对应的API,如下代码播放接口才能显示。
-- 视频 除json中节点默认配置项外,lua中需要添加的方法
anim = scene.bear:pod_anim()
:anim_repeat(false)
:on_complete(function()
ARLOG('pod anim done')
end)
:anim_repeat(true)
:start()