(示例5)设置场景的中心点

设置场景的中心点

 

Step 1. 选择一个target为中心点

Hierarchy窗口中选中ImageTarget,在其对应的Inspector窗口中找到Center Point选项,勾选则表示选择了这个Image Target为中心点。


注:将ImageTarget拖拽到HiARCamera 的CenterPoint上,效果与在target上勾选Center Point一样。

 

Step 2. 将target固定到一个位置,使重力方向始终向下

有些时候我们需要使用一些物理碰撞的效果,

例如:


但不设置中心点的时候,重力方向不与Target垂直(Target会不断变化)

如图:


而设置该target为中心的时候,效果如图:


 

使用过程中遇到疑问,请加入HiAR开发者官方QQ群:263842074

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Assimp转换模型时,你可以通过以下步骤设置模型的中心点: 1. 导入模型:使用Assimp库加载模型文件到Assimp的数据结构中。 2. 计算模型的中心点:遍历模型的所有顶点,计算它们的平均值,以确定模型的中心点位置。 3. 调整顶点位置:遍历模型的所有顶点,将每个顶点减去中心点的位置,以使模型的中心点成为原点。 4. 导出模型:将调整后的模型数据导出到所需的格式。 以下是一个示例代码片段,展示了如何使用Assimp库计算并调整模型的中心点: ```cpp #include <assimp/Importer.hpp> #include <assimp/scene.h> #include <assimp/postprocess.h> void SetModelCenterPoint(const std::string& filePath) { // 创建Assimp的导入器对象 Assimp::Importer importer; // 导入模型文件 const aiScene* scene = importer.ReadFile(filePath, aiProcess_Triangulate | aiProcess_FlipUVs); // 检查场景是否为空 if (!scene || scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode) { // 处理错误情况 return; } // 遍历所有网格 for (unsigned int i = 0; i < scene->mNumMeshes; ++i) { aiMesh* mesh = scene->mMeshes[i]; // 遍历网格的所有顶点 for (unsigned int j = 0; j < mesh->mNumVertices; ++j) { aiVector3D& vertex = mesh->mVertices[j]; // 计算所有顶点的平均值 // 这里可以根据需要进行自定义计算 } // 调整顶点位置 for (unsigned int j = 0; j < mesh->mNumVertices; ++j) { aiVector3D& vertex = mesh->mVertices[j]; // 将顶点减去中心点的位置 // 这里可以根据需要进行自定义调整 } } // 导出模型到所需格式 // 这里可以根据需要选择导出的格式和路径 } ``` 你可以根据你的具体需求,自定义计算中心点和调整顶点位置的逻辑。同时,你也可以根据需要选择适合的模型导出选项来保存调整后的模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值