home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / sci / virtual / 2567 < prev    next >
Encoding:
Text File  |  1992-07-25  |  9.8 KB  |  214 lines

  1. Newsgroups: sci.virtual-worlds
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!destroyer!ubc-cs!uw-beaver!news.u.washington.edu!milton.u.washington.edu!hlab
  3. From: Jeremy Lee <s047@sand.sics.bu.oz.au>
  4. Subject: Re: TECH: My standard is better than your standard.
  5. Message-ID: <1992Jul26.075054.9456@u.washington.edu>
  6. Originator: hlab@milton.u.washington.edu
  7. Sender: news@u.washington.edu (USENET News System)
  8. Organization: University of Washington
  9. Date: Sun, 26 Jul 1992 09:02:40 GMT
  10. Approved: cyberoid@milton.u.washington.edu
  11. Lines: 201
  12.  
  13.  
  14.  
  15. In article <BrqssG.JDG@watserv1.waterloo.edu> you write:
  16. >In article <1992Jul19.055422.12836@u.washington.edu> Jeremy Lee
  17. ><s047@sand.sics.bu.oz.au> writes:
  18. >
  19. >>>However, I still have to worry about all the stuff in the office next
  20. >>>to mine.
  21. >>
  22. >>Probably the best way to deal with this is to use a system where if an
  23. >>object doesn't get seen for one frame, then the chance of even
  24. >>attempting to render it for the next frame goes down.
  25. >
  26. >A good idea, but what do I do when I first enter the world?  Do I have
  27. >a long start-up period while I receive and render the entire environment?
  28. >(Also, some graphics implementations will find it easy to keep track of
  29. >which objects are actually visible; others will find this very expensive
  30. >to do).
  31.  
  32. Well, the "Start up time" should be on the order of a second or two, so
  33. it's not that bad.
  34.  
  35. They way I'm thinking of it is this. Assume that you have a standard
  36. Z-buffer drawing system. You have objects that are within the field of
  37. view, but are obscured, say by a wall. If your Z-buffer drawing code
  38. (crude simplification, it may be a totally seperate section) keeps track
  39. of each polygon, and for one frame does not draw a single pixel (which
  40. is reasonably easy to check) of it, then the chance of drawing it for th
  41. next frame goes down. It might reduce the chance by 1/30 to a lower
  42. limit of 1/30, so that in a 30fps system, each object is attempted to be
  43. drawn at least once. That means that if the objects comes into view at
  44. any time within a second, then it will immediatley be resored to being
  45. attemped to be redrawn every frame. Of course, you might want to fiddle
  46. with values to get them right, but if you use this in conjunction with
  47. the other efficiency systems (not drawing objects that are behind you,
  48. objects with the surface normal facing away..) then it may increace the
  49. efficiency somewhat.
  50.  
  51. >>I agree. It's easier to put the messages in a queue, with timestamp
  52. >>attached. If the object want to pay attention to the timestamp, then
  53. >>that is their business.
  54. >
  55. >Right.  (Of course, sending a timestamp with every single message does
  56. >add to the overhead and lowers the performance).
  57.  
  58. Not really. Most OS's and network systems put a timestamp on it anyway,
  59. so it's more like utilising a facility that is already there.
  60.  
  61. >>I personally like the idea of 128 bit numbers to describe spatial
  62. >>co-ordinates.
  63. >
  64. >I still maintain that 128 bits is overkill.  How often do you need to
  65. >model the entire universe at the quantum level?  And having all that
  66. >extra data to send around the network would degrade performance even
  67. >further.  I think we should start with something smaller, but that from
  68. >day one we should make provision for expansion.
  69.  
  70. That's difficult, because we are defining such a basic parameter, that to
  71. make it extensible would drastically degrade performance (how would you
  72. like to have to do the extra checking every time you wanted to perform
  73. an arithmetic operation!) and to change it at a later date would break
  74. all current systems.
  75.  
  76. It is said that there are only three numbers in CS. 0, 1, and infinity.
  77. (128 bits is the functional equivelant to infinity in this universe anyway)
  78. I have worked in depth with many many systems that both did and did not
  79. make provision for what, at the time, was considered ridiculously
  80. massive expansion (a 1981 computer with provision for a 24 bit pallete -
  81. the BBC micro, cf. the IBM pc, 640K limit) but which in a fairly short
  82. time has proved itself to be completely worthwhile. If your argument
  83. that the only reason to ditch 128 bit numbers is that it is not
  84. necessary *now*, then I would assert that your argument is invalid.
  85.  
  86. How often do we need the entire universe at the quantum level? All the
  87. time! (In reality anyway, and I thought that VR was to go BEYOND the
  88. bounds of reality) 
  89.  
  90. I run a 32bit RISC computer. To do a 128 bit add would require, lets
  91. see, (tuneless humming and the sound of turning pages) 4 instructions.
  92. Iff the registers already contained the two numbers. (ps, that's 4 clock
  93. cycles.)
  94.         ADD R0,R4,R8
  95.         ADC R1,R5,R9
  96.         ADC R2,R6,R10
  97.         ADC R3,R7,R11
  98.         (eqivelant to R0-3 = R4-7 + R8-11)
  99. To do it with two registers pointing to the address of the numbers it
  100. would take 6 instructions which is 6 clock cycles and 8 memory cycles.
  101.         LDM R0,{R4-R7}
  102.         LDM R1,{R8-R11}
  103.         [ .. same as above .. ]
  104. To store the results somewhere, say at the position of R12:
  105.         STM R12,{R0-R3}
  106.  
  107. This can all be done in much less time than a floating point operation,
  108. with much more precision, mind you. Also, it can also be done faster
  109. and with more accuracy than using 32 bit numbers with a scaling factor.
  110. To use a scaling factor would take a multiply/divide, and would loose
  111. precision, so 32 bit numbers will end up with below 32 bit precision.
  112.  
  113. If you are worried about storage space, or net bandwidth, then don't
  114. because 128 bit absolute positions will not be necessary that often, and
  115. any intelligent scheme will support delta encoding. You simply have to
  116. tell the other objects the *offsett* from the last position. Also, if
  117. you use a compression algorithm before sending-recieving (hardware is
  118. already here) then I'm sure that unused resolution will get compressed
  119. out.
  120.  
  121. >>>>Extensiblity is a requirement for any protocol.
  122. >>>
  123. >>>Agreed!!!
  124. >>
  125. >>Of course.
  126. >
  127. >I think this is one of the points we *all* agree on!
  128.  
  129. The problem is that how do you make your basic way of dealing with
  130. numbers extensible without drastically loosing portability or
  131. efficiency. I think that 128 bit numbers will solve that, and give us a
  132. lasting standard.
  133.  
  134. >>Routing and all network stuff should be trasnparent and should have no
  135. >>bearing on what constitutes a world. In that sentence, you are basically
  136. >>saying that objects are restricted to worlds in close physical
  137. >>proximity, and I therefore wouldn't be able to connect to a world that's
  138. >>in Tokyo, for example.
  139. >
  140. >Not sure what you mean by "a world that's in Tokyo"?  A virtual world doesn't
  141. >really *have* a physical location.
  142.  
  143. But the description of message routers that was given was that it they
  144. were physically based, and relied on the topology of the connecting
  145. network. 
  146.  
  147. >As to why routers are important... even with very, very high-bandwidth
  148. >networks I don't think we want every object in the multiverse having to
  149. >broadcast to every other object.  We need some way of limiting traffic
  150. >to those who are interested in it.  (Broadband vs baseband, sort of).
  151. >Different "worlds" (and perhaps different regions within a world) are
  152. >different "channels".
  153.  
  154. How does EMail work? I think that is the best model we have.
  155.  
  156. >>Sounds like your routers are central controllers, and I thought we all
  157. >>agreed that they just won't be able to cope.
  158. >
  159. >Not central controllers; *distributed* controllers.  Even "controllers" is
  160. >the wrong word.  They're routers; they help objects communicate efficiently.
  161.  
  162. The description posted indicated that the "routers" did much more than
  163. simply message routing, including deciding which objects other objects
  164. would talk to, based on whether the router believed they were relevant,
  165. in an effort to reduce traffic. That sounds like a controller to me!
  166.  
  167. Of course message routing is needed, but the routers should only be
  168. passing the message on, deciding which router to give it to next as a
  169. simple excercise in quickest-path. The routers should NOT be deciding
  170. *whether* to pass it on or not! If the sending objects didn't think the
  171. message was necessary, then they wouldn't have sent it. Imagine an
  172. analogy. An EMail router somewhere began dropping messages because it
  173. decided that there was no need for someone in Australia to be conversing
  174. with someone in the USA, and besides, it would reduce net.traffic.
  175.  
  176. Thinking about it, I can still see a need for a little more intelligent
  177. message routing along these lines: A message gets sent to 10 objects.
  178. With todays system I would have to send 10 messages, and these messages
  179. would follow the same path for quite a lot of the way. In other words,
  180. it would be redundant data. Surely a little intelligent routing can be
  181. done where the routers only fan out the messages when needed?
  182.  
  183. >>See my paper.
  184. >>[...]
  185. >>See my paper.
  186. >>[...]
  187. >>See my paper.
  188. >>[...etc...]
  189. >
  190. >All right, I get the idea.  You want me to see your paper, right?  :-)
  191. >Looking forward to it.
  192.  
  193. I posted it right after that. I expected the plain text to get posted to
  194. the newsgroup, but apparently the moderators have archived that as
  195. well. The postscript (complete with neat diagrams) should be somewhere
  196. as well. I suspect it will be in the archive at wheresitcalled along
  197. with everything else. Care to comment Mr. moderator???
  198.  
  199. >-- 
  200. >        Bernie Roehl, University of Waterloo Electrical Engineering Dept
  201. >        Mail: broehl@sunee.waterloo.edu OR broehl@sunee.UWaterloo.ca
  202. >        BangPath: uunet!watmath!sunee!broehl
  203. >        Voice:  (519) 885-1211 x 2607 [work]
  204.  
  205. Interesting to converse with you Bernie. Together I think that a real
  206. good system will get hashed out.
  207.  
  208. ***********************************************************************
  209. *    . Jeremy Lee s047@sand.sics.bu.oz.au    Student of Everything    *
  210. *   /|            "Where the naked spotless intelect is without       *
  211. *  /_|              center or circumference. Look to the light,       *
  212. * /  |rchimedes      Leland, look to the light" - Dale Cooper         *
  213. ***********************************************************************
  214.