Difference between revisions of "RSG: Graphics"

From Wikiid
Jump to: navigation, search
Line 16: Line 16:
     __/________________\___  __/_______\/_______\___
     __/________________\___  __/_______\/_______\___
     /\                /\    /\                /\
     /\                /\    /\                /\

Latest revision as of 19:36, 23 March 2010


Wikiid Pages relating to RSG)
RSG: Setting/Story
RSG: Size of Universe
RSG: Reference imagery
RSG: No FTL travel
RSG: Networking
RSG: Procedural Environment
RSG: Career paths
RSG: Scripting
RSG: Ship Design
RSG: Ground Installations
RSG: Ship Control
RSG: Graphics
RSG: Communications
RSG: Asteroid types
Edit this template

It would be nice to have a display that you can split-screen, showing a 1st person view and 1st person views of your nearby robotic ships - with the ability to launch a robotic 3rd person view camera. Images from far distant ships produce worse and worse frame rates as they get further away.

The procedurally generated approach to making asteroids lends itself to nice LOD approaches - a far distant blob can just be a textured quad with some random splotches - as it gets closer, we can draw each asteroid as a distorted icosahedron/octahedron/tetrahedron and as it gets closer, break up each triangle into a group of four - then each of those into four and so on depending on distance:

       ______\/_______          ______\/_______
             /\                       /\
            /  \                     /  \
           /    \                   /    \
          /      \                 /      \
         /        \               /________\
        /          \             / \      / \
       /            \           /   \    /   \
      /              \         /     \  /     \
   __/________________\___  __/_______\/_______\___
    /\                /\     /\                /\
                         /  \
                       / \  / \
                     / \  /\  / \
                   /\   /\  /\   /\
                __/__\ /__\/__\ /__\___
                 /\                /\

...the new vertices introduced along the three edges are randomly displaced up or down. This makes a randomly crinkly surface that can get more and more detailed the closer you get.

We can also hand-build some 'set piece' objects that fit within a single triangle of the icosahedron/octahedron/tetrahedron - a mine, a colony, a trading post, etc. We could arrange not to split up the terrain beneath those objects so that they always fit.

It would be cool to allow other pre-built asteroid shapes that use equilateral(ish) triangles - but the plan would be to procedurally scale and distort those three basic shapes for asteroids of differing sizes where possible. However, if we want cool - but very rare - things like asteroids with holes through the center - then we might need some hand-made triangle meshes to use in place of the basic three. A torus-world would be a good example.

To make some variety - we'll want spikey worlds and smooth worlds, different textures (ice, rock, nickle-iron, dirty-snowball, etc) also different colors. It would be nice to try to keep the asteroids within one blob to one or two basic 'types' so that the overall character of the environment doesn't look too crazy-random, and so you don't see the full variety of objects within a single short part of the game. The look of the asteroid ought to offer some clues for miners so they can tell whether they are worth anything...at least roughly. It would be nice to have one "look" mean "always worth something - but never very much", another look to mean "rarely worth anything, but sometimes spectacularly valuable" and yet another to mean "super-valuable, for sure, every time". Those kinds of things should not be documented - we should let miners figure it out for themselves.

I'd like to have a "sensor view" for miners that shows a false-color spectral analysis map or something.

Things like trading posts, mining colonies, refineries, etc should be procedurally generated - by gluing together pre-built modules.