Jump to content
  • Advertisement
Sign in to follow this  
Nacho

Methods for rendering 3D landscapes with 6 DOF in handheld devices

This topic is 4851 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

Hello there! After some struggling I´ve finally been able to code a simple 3D renderer for the Game Boy Advance. Now I´d like to improve it a little bit by adding the capability of loading and rendering a terrain. My first impulse was to use a heightmap and an octree for culling but then I decided to do some research (or should I say googling) to see which other techniques are available and which ones were actually used in commercial games. Of course, since my target platform is GBA, I emphasized my search criteria on old-school games. That´s when I found out about Comanche and its famous voxel engine. One thing led to another and luckily I found and read some columns posted on Flipcode a few years ago that discussed this technique (www.flipcode.com/articles/article_mobilegfx01.shtml) but I´m still uneasy about the following thing: although this method seems to be very fast, I´m looking for something that allows 6 DOF. Can you point me to some other technique or method to achieve this? Or should I follow my impulses and use octrees? Thanks in advance for all your input! --Nacho Edit: Oops! After posting the message I realised that the subject was not completely accurate so I renamed it.

Share this post


Link to post
Share on other sites
Advertisement
Thanks for your reply jsgcdude! Seems like I´ll take the heightmap + quadtree route.

Since I´ve already opened this thread I´d like to ask a couple of questions about fractals, for the term appeared several times while I was searching for information on the subject of voxels and, although I searched quite a lot in Google I couldn´t find the answers to the following three questions: Are they used for terrain rendering in games? Do they provide any kind of benefit that heightmaps don´t? Do you think that using them in a handheld device is a viable option?

Thanks again for all your help!

--Nacho

Share this post


Link to post
Share on other sites
You could also try the old voxel approach. The original voxel idea doesn't allow for 6DOF, but you can add a rotation to the final render almost for free (like Duke Nukem did when you died). Rotations about the x-axis are also somewhat possible by shearing (correct terminology?) the map.

Advantage of voxel rendering is that it's speed is virtually independent of the scene complexity. You can also add bilinear filtering to make the mountains smooth. Here's an image of a voxel engine (not 6DOF) that I did for Symbian phones (ARM, 100Mhz, 176x208 screen res, 20fps):

http://www.flipcode.com/articles/article_3dmobile01-03.jpg

I also got a mail from someone who used a slightly similar approach, but he did manage to get 6DOF by using ray tracing, also at a decent speed.

Greets
Jacco.



Share this post


Link to post
Share on other sites
http://advsys.net/ken/voxlap.htm - a 6dof voxel renderer. Not one that would work on a mobile phone though. I assume anyway, I don't know how it scales. At the very least you would run out of memory.

I made my own one, sort of ray based (don't know if it's a common technique or not) which had interpolation of sorts, but that one relies on having an entire 3d grid filled, which I don't suppose you can afford.

Share this post


Link to post
Share on other sites
Thanks for replying!

@ phantomus: The voxel approach has been one of my options. In fact, I believe that you authored the article I mentioned in the original post! Do you mind if I contact you in a few weeks via e-mail so I can ask you a couple of questions about it?

@ RAZORUNREAL: Thanks for the link. It seems that such an approach is completely out of the question in a handheld device but thanks nonetheless.

--Nacho

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!