Difference between revisions of "User:Luomu"

From PioneerWiki
Jump to: navigation, search
Line 26: Line 26:
 
* There is no good way to define parameters for certain triangles (geomflags in LMR). The main use case is to mark landing pads, this will be doable with a named node.
 
* There is no good way to define parameters for certain triangles (geomflags in LMR). The main use case is to mark landing pads, this will be doable with a named node.
 
* etc
 
* etc
 +
 +
=== Graph dump ===
 +
 +
Below, an actual model test_meteor (two LODs, animated landing gear, several ship thrusters)
 +
 +
Group - test_meteor
 +
  LOD
 +
    Group - 10
 +
      MatrixTransform - Scene
 +
        MatrixTransform - Meteor_Low
 +
          StaticGeometry - Meteor_Low_mesh
 +
    Group - 1000
 +
      Group
 +
        MatrixTransform - Scene
 +
          MatrixTransform - Meteor_Hi
 +
            StaticGeometry - Meteor_Hi_mesh
 +
          MatrixTransform
 +
            Thruster - thruster_linear_rear_001
 +
          MatrixTransform
 +
            Thruster - thruster_right_001
 +
          MatrixTransform
 +
            Thruster - thruster_top_001
 +
          MatrixTransform
 +
            Thruster - thruster_right_000
 +
          MatrixTransform
 +
            Thruster - thruster_left_001
 +
          MatrixTransform
 +
            Thruster - thruster_left_002
 +
          MatrixTransform
 +
            Thruster - thruster_linear_rear_000
 +
          MatrixTransform
 +
            Thruster - thruster_top_000
 +
          MatrixTransform
 +
            Thruster - thruster_wing_001
 +
          MatrixTransform
 +
            Thruster - thruster_wing_000
 +
          MatrixTransform
 +
            Thruster - thruster_wing_002
 +
          MatrixTransform - decal_01
 +
            StaticGeometry - decal_01_mesh
 +
      Group
 +
        MatrixTransform - Root
 +
          MatrixTransform - LandingGear
 +
            StaticGeometry - LandingGear_mesh
 +
  MatrixTransform - tag_gun_left
 +
  MatrixTransform - tag_gun_right
 +
 +
Optimization potential: unanimated geometry should be pre-translated at loading phase to get rid of some MatrixTransforms.
 +
 +
Question: you might notice tag_gun_left and right are attached to the model root node. They have been pre-transformed to make the positions absolute. It's done this way since if a tag is defined on each LOD it can practically have several positions. This is a bit stupid since now they are outside of the LOD node. Should tags be kept in their original locations in the structure (then model->FindTag will potentially return more than one)?

Revision as of 04:20, 15 December 2012

.plan

Hello! I do things for Pioneer. Not as much as I would like to.

You may catch me at:

  • github.com/Luomu
  • irc: kko_

Scratchpad

New systems that need to be developed

Lots of them :)

  • Model cache system so geometry is converted only once
  • Lua API
  • System to handle attachments
    • Tag points may be rotated in code to implement target tracking guns
  • System to handle spaceship logos, station advertisements and shipyard UI to customize your ship
    • It should be possible to add ship insignia by dropping a .png in your user folder, without saves breaking if you later remove that .png
  • UI to paint your ship and a system to give faction-appropriate colour schemes to NPC ships
  • Building sets
  • Update collision system to handle animation (just updating BB should be enough)
  • Separate space station docking scripts from the old models
  • There is no good way to define parameters for certain triangles (geomflags in LMR). The main use case is to mark landing pads, this will be doable with a named node.
  • etc

Graph dump

Below, an actual model test_meteor (two LODs, animated landing gear, several ship thrusters)

Group - test_meteor
 LOD
   Group - 10
     MatrixTransform - Scene
       MatrixTransform - Meteor_Low
         StaticGeometry - Meteor_Low_mesh
   Group - 1000
     Group
       MatrixTransform - Scene
         MatrixTransform - Meteor_Hi
           StaticGeometry - Meteor_Hi_mesh
         MatrixTransform
           Thruster - thruster_linear_rear_001
         MatrixTransform
           Thruster - thruster_right_001
         MatrixTransform
           Thruster - thruster_top_001
         MatrixTransform
           Thruster - thruster_right_000
         MatrixTransform
           Thruster - thruster_left_001
         MatrixTransform
           Thruster - thruster_left_002
         MatrixTransform
           Thruster - thruster_linear_rear_000
         MatrixTransform
           Thruster - thruster_top_000
         MatrixTransform
           Thruster - thruster_wing_001
         MatrixTransform
           Thruster - thruster_wing_000
         MatrixTransform
           Thruster - thruster_wing_002
         MatrixTransform - decal_01
           StaticGeometry - decal_01_mesh
     Group
       MatrixTransform - Root
         MatrixTransform - LandingGear
           StaticGeometry - LandingGear_mesh
 MatrixTransform - tag_gun_left
 MatrixTransform - tag_gun_right

Optimization potential: unanimated geometry should be pre-translated at loading phase to get rid of some MatrixTransforms.

Question: you might notice tag_gun_left and right are attached to the model root node. They have been pre-transformed to make the positions absolute. It's done this way since if a tag is defined on each LOD it can practically have several positions. This is a bit stupid since now they are outside of the LOD node. Should tags be kept in their original locations in the structure (then model->FindTag will potentially return more than one)?