简体   繁体   中英

How to render a .vox voxel model in OpenGL?

I need help with rendering a .vox model in OpenGL.

The .VOX file format is described here .

Here is an example VOX file reader.

And here is where I come across the problem - how would I go about rendering a .vox model in OpenGL? I know how to render standard .obj models with textures using the Phong reflection model, but how do I handle voxel data? What kind of data should I pass to the shaders? Should I parse the data somehow, to get the index of each individual voxel to parse? How should I create vertices based on voxel data (should I even do that)? Should I pass all the chunks or is there a simple way to filter out those that won't be visible?

I tried searching for information on this topic, but came up empty. What I am trying to accomplish is something like MagicaVoxel Viewer, but much simpler, without all those customizable options and with only a single light source.

I'm not trying to look for a ready solution, but if anyone could even point me in the right direction, I would be very grateful.

After some more searching I decided to render the cubes in two ways:

1) Based on voxel data, I will generate vertices and feed them to the pipeline. 2) Using the geometric shader, I'll emit vertices based on indexes of voxels to render I feed to the pipeline. I'll store the entire model as a 3D texture.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM