6
\$\begingroup\$

Say I already have a renderer that can support outdoor terrain and environment rendering. How would I go about adding support for interior environments (for example, like World of Warcraft's dungeons) to my game?

I'm interested both in how I should fit the interiors into my content creation process (for example, I thought about leaving holes in the terrain mesh into which I can "paste" the interior dungeon mesh at runtime) and how to render them (it seems like I'd want a different rendering flow other than a blended texture rendering phase that terrain uses).

\$\endgroup\$
  • 2
    \$\begingroup\$ Such questions are not a good fit for this website, because the only people who could give you a correct answer are those directly involved in the development of World of Warcraft. And even when such a person would be here and willing to answer, the answer would not necessarily be applicable to your current project, because what works for their project might not be the best solution for yours. See also this meta-question: meta.gamedev.stackexchange.com/questions/626/… \$\endgroup\$ – Philipp Aug 29 '13 at 11:34
  • 2
    \$\begingroup\$ That being said, there are engines which use different rendering techniques for indoor and outdoor scenarios. While outdoor areas might use a heightmap, indoor areas might use BSP trees and portals. \$\endgroup\$ – Philipp Aug 29 '13 at 11:41
  • 2
    \$\begingroup\$ I don't think this is a terrible question, and that meta question you linked indicates how to subtly shift this question to fit: instead of "how does WoW do it?" ask "how should I construct dungeons in a game that is like WoW?" I mean, someone who is familiar with Warcraft (ie. not me) could explain what appears to be happening and then explain how that would fit in a terrain rendering system. \$\endgroup\$ – jhocking Aug 29 '13 at 12:00
  • 3
    \$\begingroup\$ I think the crux of the question is about dealing with interior versus exterior environments, so I modified it as such (the original was definitely close-worthy). It's a fairly drastic change. \$\endgroup\$ – user1430 Aug 29 '13 at 14:45
  • 1
    \$\begingroup\$ You could use implement two renderers and use such crazy technology like "if"-statements or virtual member functions. \$\endgroup\$ – API-Beast Aug 30 '13 at 21:03
1
\$\begingroup\$

I would recommend for seamless transitions you would need to create "portals" What I mean by this is you would need 3 parts

1)Exterior

2)Interior

3)Transition Zone

For Exteriors you would have your Global Lighting to taste as you like it. You would Only load Transition Zones in stages at this point as the player gets close or within visible range.

For Interiors you Would unload Exteriors and load the Interior components for that dungeon. Lighting would also be to taste here with Interior Lighting.

For Transition Zones you would blend across the Lighting schemes. It is important that the Transition Zone Obscures the Interior from the outside and the Exterior from the inside.

There are many ways to do this and you may need to set a LOD system up for interiors just like exteriors to ensure smoother transitions without hangtime or loading times.

This would effectively allow you to cut holes in the terrain.

|improve this answer|||||
\$\endgroup\$
0
\$\begingroup\$

As already suggested by @Philipp creating, storing and rendering are often handled very differently when in comes to indoor vs. outdoor. This is because the requirements and challenges are typically very differrent. Example:

Outdoor:

  • huge viewing distance
  • potentially unlimited polycount
  • typically modelled using heightmaps or voxels
  • typically rendered using level-of-detail polygonization

Indoor:

  • moderate viewing distance
  • natural line-of-sight blockers
  • potentially lots of detail on characters and objects
  • complex collision shapes
  • typically rendered full detail skipping occluded geometry

So you see indoor and outdoor typically don't have much in common. That's why there are dungeon portals and explicit loading screens in games like World of Warcraft when switching from on to the other.

To get a better answer please explain the workings and shortcomings of your current renderer. You can also learn a lot about indoor rendering from the good old Quake toolchain.

|improve this answer|||||
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.