Archived

This topic is now archived and is closed to further replies.

Voxel Rendering

This topic is 6019 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I''m looking for an efficient algorithm to render a series of voxels. By render I mean, literally, render, as in Draw-on-the-screen. The voxel I''m using is NOT a height map, it''s a (large) series of points in 3D space, each with their own RGBA value (represented by a really long 1D array of values, an x scale length, y scan length and z scan length). I''ve thought a bit about the problem, and I''m not sure what direction to take for the solution; So far I''ve come up with defining a sphere around the cube containing the voxel, and having a "view window", defined by the angle of elevation from the center of the sphere up, and the angle of rotation from the center of sphere around. From this I generate a plane based on the tanjent to the to sphere surface of dimensions x * y pixels. Now what I want to know is how to map the contents of the voxel onto that plane. I''m considering either some kind of matrix tranformation to map linearly map the pixels (X,Y,Z) to the plane (X, Y), but that means running the transformation on every element of voxel (and as the voxel gets big, that becomes a real chore). Especially since I can''t see any way of optimizing the process to ignore multiple pixels which will map to the same 2D coordinate. Does any have any better ideas on how to do this? I''ve heard you can (somehow) use ray tracing algorithms to render a voxel like this, but I''m dubious it won''t be even more ineffecient. Any thoughts on the matter welcome! I couldn''t find a great deal of info on this anywhere...

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
This is usually solved by billbording in OGL or D3D.
(flat-shaded billbords)

Share this post


Link to post
Share on other sites