【多服务场景化解决方案】AR虚拟技术助力智能家装( 二 )


AccountAuthParams authParams =new AccountAuthParamsHelper(AccountAuthParams.DEFAULT_AUTH_REQUEST_PARAM).setAccessToken().createParams();AccountAuthService accountAuthService =AccountAuthManager.getService(this, authParams);startActivityForResult(accountAuthService.getSignInIntent(), 1111);

【多服务场景化解决方案】AR虚拟技术助力智能家装

文章插图
@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == 1111) {Task<AuthAccount> authAccountTask = AccountAuthManager.parseAuthResultFromIntent(data);if (authAccountTask.isSuccessful()) {AuthAccount authAccount = authAccountTask.getResult();sharedPreferenceUtilClass = SharedPreferenceUtilClass.getInstance(LoginAuthenticationActivity.this);sharedPreferenceUtilClass.saveData(Constants.USER_EMAIL, authAccount.getEmail());sharedPreferenceUtilClass.saveData(Constants.USER_NAME, authAccount.getDisplayName());sharedPreferenceUtilClass.saveData(Constants.USER_PROFILE_IMAGE, authAccount.getAvatarUri().toString());Log.i("TAG", "accessToken:" + authAccount.getAccessToken());useTokenToAuthorize(authAccount.getAccessToken());}}}
【多服务场景化解决方案】AR虚拟技术助力智能家装

文章插图
结果
【多服务场景化解决方案】AR虚拟技术助力智能家装

文章插图
?
7、集成图形引擎服务华为图形引擎服务是一个高性能、低功耗、轻量级渲染引擎 , 提供高级描述性API , 便于编辑、操作和渲染3D资源 。
应用集成图形引擎服务 , 使用ARView渲染普通AR场景 。
Xml
在布局中添加图形引擎服务的ARView 。
<com.huawei.hms.scene.sdk.ARViewandroid:id="@+id/ar_view"android:layout_width="match_parent"android:layout_height="match_parent"></com.huawei.hms.scene.sdk.ARView>
【多服务场景化解决方案】AR虚拟技术助力智能家装

文章插图
Java
检查ARPermission , 按需请求权限 。并初始化图形引擎服务 。
if (!PermissionUtil.checkARPermissions(ViewProduct.this)) {PermissionUtil.requestARPermissions(ViewProduct.this);}if (!InitializeHelper.getInstance().isInitialized()) {Toast.makeText(ViewProduct.this, "SceneKit initializing", Toast.LENGTH_SHORT).show();InitializeHelper.getInstance().initialize(ViewProduct.this);return;}
【多服务场景化解决方案】AR虚拟技术助力智能家装

文章插图
开通ARView平面展示 。
arView.enablePlaneDisplay(true);
【多服务场景化解决方案】AR虚拟技术助力智能家装

文章插图
加载素材 。
if (testModel != null) {return;}Model.builder().setUri(Uri.parse("Furniture/"+threeDFileName)).load(getApplicationContext(), new Resource.OnLoadEventListener<Model>() {@Overridepublic void onLoaded(Model model) {Toast.makeText(TryProduct.this, "load success.", Toast.LENGTH_SHORT).show();testModel = model;}@Overridepublic void onException(Exception exception) {Toast.makeText(TryProduct.this, exception.getMessage(), Toast.LENGTH_SHORT).show();}});
【多服务场景化解决方案】AR虚拟技术助力智能家装

文章插图
添加相机和灯光组件 。
Node lightNode = arView.getScene().createNode();lightNode.addComponent(Light.descriptor()).setType(Light.Type.DIRECTIONAL).setIntensity(30.f);
【多服务场景化解决方案】AR虚拟技术助力智能家装

经验总结扩展阅读