开发者

Given an octree of voxels, how do you render with smooth surfaces?

I noticed most 3d voxel models are actually pretty low resolution, but then are rendered all smoothed out with some sort of interpolation.

Given its ray traced, what is the 开发者_JAVA百科algorithm used to render it smoothly? Could anybody suggest a book on the topic?


There has been some discussion on the OMPF forum about this. The key is to have surface normal information stored with each voxel - even for high voxel resolution. You do shading with the stored normal, not the normal to the little box that is a voxel. Even then, it's not good for surfaces that are almost axially aligned where you have a lot of flat surface with an occasional step. The steps are nearly impossible to hide on smooth surfaces. Also, for extremely irregular surfaces, you'll have problems where a single "voxel normal" is not adequate for viewing from different sides.


Have a look at volume ray casting. At the website of the Worcester Polytechnic Institute you can find a more in-depth explanation.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜