From: Tim Watson <trpw@cix.compulink.co.uk> 
Subject: VR theory? 
Date: Sun, 15 Sep 1991 15:40:34 GMT
Message-ID: <1991Sep15.154034.5838@demon.co.uk>
Organization: Gated to News by demon.co.uk



This is a reaction to Jason Rice's bit.

First of all I'd like to say that I only picked on Flight Simulators because
they are just about the best form of Virtual Reality around at the moment,
but they are limited in that they don't simulate a true virtual world, just
an aircraft interacting with that virtual world. There is a virtual world
there but it is a virtual world related only to the pilot relatively limited
needs. Flight Simulators are wonderful, beautiful and I wish I could program
them etc. etc. but no flight simulator producer is ever going to pay you to
put in the kind of flexibility that I'm after.

I think that the reason for any disagreement between us has to do with a
difference of approach. viz:-

>You model what you need feedback from for the task.

So you can only do what the programmer has specifically allowed for or been
told to allow for.

Sounds like a fascism simulator to me - Boris, get back up on that tank! 
(Sorry, just a bit of ironic overstatement)

But what you are saying is that the only way to simulate anything is to make
a special case of it. What I'm saying is that the more you special case
things the less flexible you make them unless you are prepared to spend	time
working out every conceivable thing that a user might want to do in a system
and then special casing all of that.

My approach, which doesn't of course have the benefit of having been
implemented, is look for the similarities between things and then taking into
account the differences. An example of this task would be to devise a general
set of function related rules for different object types (generic objects as
I call them) and allow for the modification of those rules according to the
physical attributes of the different objects within a type. This I hope would
produce flexible 'specialised' general cases rather than special cases which
need over-programming to be flexible. (I hope someone understands this
because I'm beginning not to)

	Think of your favorite drink, now think of all the receptacles out of
	which you COULD drink it. I dare say that they are all different
	objects and would normally all be special cases but they can all
	contain liquid and be drunk from.

There is a fundamental problem with general casing of this kind: It works at 
a fairly low level and you have to do a fair amount of additional processing
to interelate everything.

	A silly example:- You could theoretically build your flight simulator
	aerofoil section algorithms from the fundamental interactions between
	all the atoms in the system. The physics involved is relatively
	simple and flexible but you would have to deal with the interaction
	of more than 10 to the 25 atoms.

My approach to VR comes from my experiences with computer adventures where
all choices that you can make or things that you can do have all been mapped
out or allowed for by the programmer or designer. Those choices tend to	be
limited and any attempt to diverge from a pre-ordained path is either
impossible or produces bugs which often show the way the programmer wants you
to behave. I'm trying to find ways of avoiding this in VR. There will, almost
inevitably be some 'programmer control' in VR but I want to stop it being 
completely apparent to the user.

As to tap-dancing on the wings of an aircraft, I think that there are several
simple rules and approaches that could be used within a virtual world in
order to implement it.

	The first rule/approach relates to Thomas MacIukenas' (in message
	<1991Sep12.181705.17181@milton.u.washington.edu>) point about playing
	around with with the physical rules inside a virtual world. It will
	I think be extremely useful (in a virtual space) to be able to
	disregard any physical forces acting on the user (eg gravity, 
	friction, wind etc) or any object specified by the user while still
	allowing the user to exert force wherever he/she wants.	This, of
	course would stop you being forced off the wing but would allow you
	to twirl your silver topped cane.

	The second rule is what I would term a Surface Attachment Pseudo
	Force. This "rule" would allow a user to stand/walk on any surface 
	that he or she choses. And the surface could be anything from a table
	to the surface of an air molecule as it speeds around the place. The
	rule would tell the virtual world that the user is stuck to that
	surface and will move with it.

	The last rule is that when one object (eg a tap shoe) hits another
	(eg a wing) it produces a sound.

The two things I haven't dealt with are how to encode foot movement and
whether or not the final result can be called tap-dancing. I leave the first
problem to the likes of EXOS, VPL, ARRL et al, and the second is entirely a
matter of taste and I'm not going to suggest that anyone programs dance
appreciation.



TIM WATSON 
trpw@cix.compulink.co.uk

