前两天罪恶之都旅游了一下。
更新一下。
Voxel Based Rendering (立体像素渲染)是当下比较流行的一种技术。医学领域,3D答应,Voxelization(立体像素化)也是非常重要的一种技术,然而,我并不会。 这里只能用MAX模拟一些简单的形状和物体,
这种效果只需要4个修改器堆栈就能实现,但是效率极低。精度也和voxel(立体像素)的大小有关。所以这个帖子只给介绍下一个实现思路,真正要去立体像素化一个模型,是需要一个程序算法才能很好很高效实现的。
Voxel (立体像素)的概念:
立体像素顾名思义就是 立体的像素,大家都知道,一个像素是显示器的最小显示单位,由红绿蓝三种颜色组成。 立体像素当然也只是一种抽象的概念。往往理想中的像素,是一个正方形(其实并不是),所以立体像素也自然就是正方体。通过N个立体像素,理论上可以组成任意的真正的三维物体,同样尺寸的物体,立体像素越多,也就越能贴近原物体本身。
Voxelization(立体像素化)的概念:
立体像素化分为两种,一种是内部填充型立体像素化,和表面立体像素化,大家都知道,现在普通的3D模型基本都是只有一个外壳,通过三角面组成多边形组成模型。所以,往往都只有一个表面,内部为空心的结构。
所以顾名思义,表面立体像素化就是只用立体像素来填充物体表面,内部填充型则是把原本空心得内部结构也填充进立体像素。
今天来研究下如何用max简单模拟 内部填充型立体像素化。
首先,就象输出图片,我们需要有一个显示器一样。
输出立体像素,我们先要一个“立体像素场 Voxel Field”(自己YY的名字,如果有雷同,纯属巧合)
这里用面片来实现,先建立一个面片,大小设置成100x100,分段设置成20x20,不宜太多。如果觉得机器够劲也可以尝试多一些。(这一步,图就不截了,应该都会。)
然后由于尺寸是100x100 然后分段式20x20,所以可以推算出 每个立体像素的高度为5个单位. 100/20 = 5
所以往适当的轴向复制一些(实例和普通复制都可以),取决于你是在哪个视图建立的面片,顶视图的话就往Z轴复制,推荐阵列 就可以选择Z轴每5个单位阵列一次,20个左右(取决你物体的形状)
20x20x20就是一个正方形的立体像素场。
阵列也太基础,就不截图了。
阵列完大概是这样的