PostgreSQL 在3D 数据内容管理中的应用
背景
前段时间在中华数据库大会遇到一位朋友询问关于如何使用PostgreSQL存储3D建模的数据,应用场景大概是找到最合脚的鞋子。
大概是将生产线上所有鞋子的内部空间数据化,同时将人的脚的三维数据化,存入数据库。找到脚和鞋子最匹配的组合。
这里涉及到3D数据的建模和存储,以及数据的使用。
好在PostgreSQL有非常丰富的接口,例如用户可以自定义数据类型,以及自定义数据访问方法,自定义索引,自定义函数等,为此,用户可以根据自己的应用场景定制数据类型以及相关的函数和索引方法来满足需求。
这里除了会用到这种数据类型的特殊用法,如距离计算,还可能要用到统计学的知识(如方差),打个比方,计算鞋子模型的每个点到脚模的距离,计算这些距离的标准差(尽量做到每个部分都和脚贴合),这些信息用来找出最合脚的鞋子。
前几天还看到一个例子,是和欧洲宇航局的gaia项目有关的,这个项目用来绘制宇宙星系的时空图,也用到了PostgreSQL,感兴趣的朋友也可以去了解一下。
这里有一个例子,是使用PostgreSQL来存储和管理3D数据的,其中就用到了OPENCL的函数来加速图形处理。
使用多个相邻三角形来表述物体表面,三角形越多,越圆润,当然数据量也越庞大。
具体见下:
《Introducing PgOpenCL - A New PostgreSQL Procedural Language Unlocking the Power of the GPU!》
参考
1. http://www.slideshare.net/3dmashup/using-postgre-sql-for-3d-cms
2. https://wiki.postgresql.org/images/6/65/Pgopencl.pdf
3. http://www.pgcon.org/2011/schedule/events/352.en.html
4. http://www.slideshare.net/kaigai/gpgpu-accelerates-postgresql
5. https://zh.scribd.com/3dmashup
6. google search: tim child postgresql