Home

Awesome

Tiouch

2022 Taichi Hackathon参赛项目。

团队名:你说的都队

项目名:Tiouch

项目介绍:

Taichi 语言已经实现了很多物理仿真场景,在视觉上看起来很棒。但除了视觉之外,人感受世界另外一个重要的感觉就是力触觉。目前力触觉渲染多用于虚拟手术、虚拟装配等领域。受此启发,本项目就尝试将物理仿真的视觉效果和力触觉结合起来,给人更多维度对虚拟场景的感受。具体来说,就是使用力反馈设备,将新奇的触觉渲染效果融合到物理模拟中,我们不但可以看到屏幕中的弹性体在肆意运动与形变,还能用双手感受到物体的运动。力触觉渲染对性能有很高的要求,一般要上千帧的渲染效率。得益于高效的Taichi语言,我们期望实现一个既有物理模拟又包含触觉渲染的仿真场景。


项目依赖

项目构建

  1. 在Windows上从源文件编译Taichi,需要Vulkan环境,设置编译选项 -DTI_WITH_C_API=ON,具体可参考这篇教程,得到taichi_c_api.dll
  2. 编译Taichi Unity Plugin,得到taichi_unity.dll
  3. taichi_c_api.dlltaichi_unity.dll复制到 aseets/plugins/文件夹下。
  4. 在Unity中打开工程文件并运行场景

目前Asset目录下已包含所有插件dll与资产。


灵感来源

在米开朗基罗的《创造亚当》中,上帝与亚当即将碰触的指尖,喻示着人类将获得感受万物的五感之一——触觉

1670065131455

Taichi的高性能物理仿真,创造了丰富的视觉盛宴,但我们想告诉你的是,Taichi能做的绝不仅仅是视觉,因此我们有了一个idea——Taihci+Haptics,交织出视觉和触觉的双重合奏。

<p align="center"> <img src="image/combination.png" width="400px"> </p>

工程框架

我们通过AOT将Taichi的kernel部署到Unity当中,在Unity中基于Taichi C API和Taichi Unity Plugin构建Taichi runtime,这样就可以在Unity里启用我们的kernel运行啦。再通过Haptics Unity Plugin,用户就可以使用Haptics力反馈设备进行触觉的交互辣。

1670065146056

实现时间线

实现思路:

物理模拟部分:

使用Taichi实现核心物理模拟算法,场景中的柔体使用shape matching约束和position based dynamics(PBD)进行建模。考虑到Python运行时性能以及与力反馈设备开发的对接,我们组尝试发掘Taichi AoT功能;考虑到开发简易性和渲染效果,我们组使用Unity引擎实现图形程序框架。

尽管Taichi C API、 AoT以及Unity Plugin还属于热开发阶段,得益于taichi-aot-demoTaichi-Unity Example等样例以及开发人员的帮助,我们完成了Taichi kernel在Unity中的加载与运行。

力反馈部分:

<p align="center"> <img src="image/haptics.png" width="300px"> </p>

尽管能摸到物体是一个很美好的设想,但我们没有力反馈手套那样炫酷的设备。取而代之的是3D Systems公司开发的Touch Haptic Device,Touch是一款6自由度的力反馈笔:“可在用户的手上施加力反馈,使他们能够感受虚拟对象并在用户操作屏幕上的 3D 对象时产生逼真的触感”。在力触觉渲染中,用户可以可以操作力反馈设备,控制力反馈设备在虚拟场景中的镜像物体,比如手术钳,笔等。镜像物体作为刚体与虚拟场景中其他物体交互产生交互力,通过力反馈接口设置反馈力,从而实现力触觉渲染。考虑到开发复杂度,我们使用3D Systems提供的Unity插件进行力反馈部分的开发。

挑战和问题

期望效果:

https://user-images.githubusercontent.com/6712304/205473028-ca976b1f-66d8-43d2-8378-2806bec93c2e.mp4

实际效果

在Unity中加入Taichi仿真的软体(未加入Haptic交互)

https://user-images.githubusercontent.com/6712304/205473043-0e393de6-1b2f-4041-aef4-1139cc02d5ae.mp4

加入Haptic交互

https://user-images.githubusercontent.com/6712304/205472730-f4fe9f03-d648-491d-b97e-d7d2fcea9e47.mp4

未来工作