diff org/vision.org @ 264:f8227f6d4ac6

Some section renaming and minor other changes in vision.
author Dylan Holmes <ocsenave@gmail.com>
date Mon, 13 Feb 2012 07:29:29 -0600
parents 0e85237d27a7
children e57d8c52f12f
line wrap: on
line diff
     1.1 --- a/org/vision.org	Mon Feb 13 06:49:34 2012 -0600
     1.2 +++ b/org/vision.org	Mon Feb 13 07:29:29 2012 -0600
     1.3 @@ -7,8 +7,9 @@
     1.4  #+INCLUDE: ../../aurellem/org/level-0.org
     1.5  #+babel: :mkdirp yes :noweb yes :exports both
     1.6  
     1.7 -* Vision
     1.8 -  
     1.9 +#* Vision
    1.10 +* JMonkeyEngine natively supports multiple views of the same world.
    1.11 + 
    1.12  Vision is one of the most important senses for humans, so I need to
    1.13  build a simulated sense of vision for my AI. I will do this with
    1.14  simulated eyes. Each eye can be independely moved and should see its
    1.15 @@ -25,7 +26,9 @@
    1.16  #+caption: jMonkeyEngine supports multiple views to enable split-screen games, like GoldenEye, which was one of the first games to use split-screen views.
    1.17  [[../images/goldeneye-4-player.png]]
    1.18  
    1.19 -* Brief Description of jMonkeyEngine's Rendering Pipeline
    1.20 +** =ViewPorts=, =SceneProcessors=, and the =RenderManager=. 
    1.21 +# =Viewports= are cameras; =RenderManger= takes snapshots each frame. 
    1.22 +#* A Brief Description of jMonkeyEngine's Rendering Pipeline
    1.23  
    1.24  jMonkeyEngine allows you to create a =ViewPort=, which represents a
    1.25  view of the simulated world. You can create as many of these as you
    1.26 @@ -44,9 +47,10 @@
    1.27  specific operations on the rendered image.  The =SceneProcessor= can
    1.28  also copy the GPU image data to RAM and process it with the CPU.
    1.29  
    1.30 -* The Vision Pipeline
    1.31 +** From Views to Vision
    1.32 +# Appropriating Views for Vision.
    1.33  
    1.34 -Each eye in the simulated creature needs it's own =ViewPort= so that
    1.35 +Each eye in the simulated creature needs its own =ViewPort= so that
    1.36  it can see the world from its own perspective. To this =ViewPort=, I
    1.37  add a =SceneProcessor= that feeds the visual data to any arbitray
    1.38  continuation function for further processing.  That continuation
    1.39 @@ -147,7 +151,7 @@
    1.40  They can be queried every cycle, but their information may not
    1.41  necessairly be different every cycle.
    1.42  
    1.43 -* Physical Eyes
    1.44 +* Optical sensor arrays are described as images and stored as metadata.
    1.45  
    1.46  The vision pipeline described above handles the flow of rendered
    1.47  images. Now, we need simulated eyes to serve as the source of these
    1.48 @@ -282,7 +286,7 @@
    1.49       (apply max (map second dimensions))]))
    1.50  #+end_src
    1.51  
    1.52 -* Eye Creation 
    1.53 +* Putting it all together: Importing and parsing descriptions of eyes.
    1.54  First off, get the children of the "eyes" empty node to find all the
    1.55  eyes the creature has.
    1.56  #+name: eye-node
    1.57 @@ -452,11 +456,11 @@
    1.58         image))))
    1.59  #+end_src
    1.60  
    1.61 -* Tests
    1.62 -** Basic Test
    1.63 +* Demonstrations
    1.64 +** Demonstrating the vision pipeline.
    1.65  
    1.66  This is a basic test for the vision system.  It only tests the
    1.67 -vision-pipeline and does not deal with loadig eyes from a blender
    1.68 +vision-pipeline and does not deal with loading eyes from a blender
    1.69  file. The code creates two videos of the same rotating cube from
    1.70  different angles. 
    1.71  
    1.72 @@ -516,8 +520,7 @@
    1.73  Creating multiple eyes like this can be used for stereoscopic vision
    1.74  simulation in a single creature or for simulating multiple creatures,
    1.75  each with their own sense of vision.
    1.76 -
    1.77 -** Adding Vision to the Worm
    1.78 +** Demonstrating eye import and parsing.
    1.79  
    1.80  To the worm from the last post, I add a new node that describes its
    1.81  eyes.