[ 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 cameras 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 dont 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 Ive seen of this is the super physcannon being able to pick up ragdolls by specific parts of their body or in Garrys 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

