[ Converted text/html to text/plain ]

Ok this what follows is a project I am currently working on.  I am working
with a German programmer on a interactive device for games that uses a stereo
camera to percieve the work in 3D and allow a user to interact with physics in
a game.  The caera we are working on is open source so anyone that uses it can
do so for free. While the camera side is underway well the hl2 side is not so
ready and I am calling on all  you smart people to help or give sugestions to
some of my following questions. So here it goes.......



So the camera we are working with can see in 3D it does this by calculating
disparity between two images from a stereo camera, transforms this into a
3Dpoint cloud and then we can set up areas of interests to track(currently a
3Dbox and later more complex shapes).  If you stick your had out towards the
camera’s it can tell  how far your hand is away and the x, y position.  This
is usefull for interaction with 3D as you can actually reach out to touch the
objects.  Because this system is separate from anything we needed a way to try
and communicate with another software system. We chose OSC "Open Sound
Control" because its fairly universal as software intended for creative
people.



I am trying to use these OSC usp packets which for example can be  “message”
float, float, float, timestamp.  I use this like “IsInBBoxSpace” then 3
position values of the closest pixel from the camera “the tip of a finger”
which might look like (x24.586943, y 27.298374, z30.37464) without the x, y,
z.  I want to try and use these values in the engine and get hl2 to first
compare if the values of the message are in the same space of  any given model
entity and what entity it is.  Then if the value is true calculate a vector
for the push based on a second OSC message that will give a speed(guess this
should be a vector?)  then finally use this to trigger how much a  part of a
model is pushed.  Its important to also get an output of the bbox or model
mesh to view  in our camera software so that we can update the new position of
the Bbox or mesh, otherwise if you push the model out of the interactive area
you wont be able to push it again.  I don’t really want to work with the
actual player Bbox or mesh just Physics meshes such as a dead NPC ragdoll.
Actually my models will be custom abstract jellyfish, but they could be any
ragdoll model.  Guess a good example I’ve seen of this is the super physcannon
being able to pick up ragdolls by specific parts of their body or in Garry’s
mod being able to attatch a balloon to part of a mesh and making it hang from
this part of the body.



Ok I hope this gives you something more specific to think about and tomorrow I
will have another meeting with the other programmer to see if he can come up
with suggestions.  My other programmer is really good but he knows nothing
about the source SDK so its up to me to slowly get things in the right
direction and then we he can see some of the functions and classes needed he
is more useful. Any aspect of what I just described that needs expanding or
clarifying then  tell me and Ill get back to you.



and here is a previous discussions with Robert Chatman on the
subject.............



Hey Adam,



From what i have accumulated in the past year there are 3 collision boxes.

bounding box. this one is set up in the players game rules i believe.

This is the one that controls the players position in the world and

how they are interacting with it. hl2 and many other engines short cut

this by setting up the bbox by min and max to draw a cube and
they

just keep the player stuck in it. The bbox does not ahve a direction,

ie - direction referring to rotation.

Collision mesh/physics mesh. This one is set up with the model and

actually just sits above the model to interact with the world that it

exists in. These are giving people alot of problems because of

limitations along the lines of concave faces and detail. One really

good example of this is if you had a model that was a spiked ball that

you could walk
through you would make a sphere that was the same size

as the ball portion and you would interact with that.



If there is no collision mesh/physics mesh the model itself actually

prevails. the problem with this is that there are often polygons that

your model may have problems using appropriately.



it may be difficult to surmise what valve is trying to do with their

collisions in that section, but its something that is going around. If

i were
you i would send an email into the hlcoders mailing list, if

you havent already, and see what those guys think. But it of course

depends upon what you are trying to do.

If you look at the code used for the triggers there is a function that

i used for my push entity that checks to see if the player model
is

inside of another entity... this is done by checking the min & max of

both entities and seeing if they intersect. valve has cut corners, of

course, but it works....end of Bob's message....



Ok so I hope this is enough information to get some of you thinking about these 
coding concepts..#

There will be a web site in the near future and I am more than happy for people 
to use this for whatever reason they see fit..

Adam Donovan

Hybrid Media Artist


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to