Android端ARCore/SceneForm实现3D模型线框模式显示的问题求解
Android ARCore/SceneForm 3D模型线框模式实现方案
方案1:自定义渲染模式(兼容性最好)
该方案无需改动模型资源,适配所有SceneForm版本:
- 在模型加载完成的回调中,修改OpenGL全局渲染状态,直接切换为线框绘制模式:
modelRenderable = getYourModelRenderable(); // 给模型设置纯色材质方便线框显示 MaterialFactory.makeOpaqueWithColor(this, new Color(android.graphics.Color.GREEN)) .thenAccept(material -> { modelRenderable.setMaterial(material); // 切换为线框渲染模式 GLES20.glPolygonMode(GLES20.GL_FRONT_AND_BACK, GLES20.GL_LINE); // 可自定义线宽 GLES20.glLineWidth(2f); });
- 如果需要切换回实体填充模式,调用如下代码即可:
GLES20.glPolygonMode(GLES20.GL_FRONT_AND_BACK, GLES20.GL_FILL);
注意:该修改会全局生效,如果场景内有其他不需要线框显示的模型,需要在对应模型的渲染回调中单独切换填充模式。
方案2:预生成线框网格(性能更稳定)
如果遇到部分设备对glPolygonMode兼容性不佳的问题,可以提前在Blender、Maya等3D建模工具中为模型导出单独的线框网格资源,导入项目后作为独立节点叠加在原模型上方显示,不需要修改渲染逻辑,适配所有安卓设备。
内容的提问来源于stack exchange,提问作者Roger RV
相关产品推荐
相关产品推荐

