1998Q1/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: 3D engines for MUDs -->
<!--X-From-R13: @vxynf Syzdivfg <q97ryzNqgrx.punyzref.fr> -->
<!--X-Date: Fri, 20 Mar 1998 11:30:57 +0000 -->
<!--X-Message-Id: Pine.SOL.3.96.980320104857.1242C&#45;100000#aporat,dtek.chalmers.se -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 7eafal3euq.fsf#zesoi,fer.hr -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, 3D engines for MUDs</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:d97elm#dtek,chalmers.se">
</head>
<body background="/backgrounds/paperback.gif" bgcolor="#ffffff"
      text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000">

  <font size="+4" color="#804040">
    <strong><em>MUD-Dev<br>mailing list archive</em></strong>
  </font>
      
<br>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
<br clear=all><hr>
<!--X-Body-Begin-->
<!--X-User-Header-->
<!--X-User-Header-End-->
<!--X-TopPNI-->

Date:&nbsp;
[&nbsp;<a href="msg00785.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00787.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00781.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00788.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00786">Author</A>
&nbsp;|&nbsp;<A HREF="#00786">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00786">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>3D engines for MUDs</H1>
<HR>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<UL>
<LI><em>To</em>: <A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A></LI>
<LI><em>Subject</em>: 3D engines for MUDs</LI>
<LI><em>From</em>: Niklas Elmqvist &lt;<A HREF="mailto:d97elm#dtek,chalmers.se">d97elm#dtek,chalmers.se</A>&gt;</LI>
<LI><em>Date</em>: Fri, 20 Mar 1998 12:30:52 +0100 (MET)</LI>
<LI><em>Reply-To</em>: Niklas Elmqvist &lt;<A HREF="mailto:d97elm#dtek,chalmers.se">d97elm#dtek,chalmers.se</A>&gt;</LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>
On Fri, 20 Mar 1998, Miroslav Silovic wrote:

&gt; Michael Hohensee &lt;michael#sparta,mainstream.net&gt; writes:
&gt; 
&gt; &gt; Of course, the POVRAY renderer does take time to work, and wouldn't be
&gt; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
&gt; 
&gt; This is gross understatement. :) While 2-3 seconds are quite
&gt; acceptable for a game, 1-60 minutes are not.

If we're talking static-screen-like graphics (like in most adventure
games), I agree that 2-3 seconds is quite alright for rendering. However,
if we're talking first-person six-degrees-of-freedom (don't really like
that term...) 3D graphics, something close to 20-40 fps is a *must* (that
is, 1/20 to 1/40 of a second per frame). In addition, if you've seen the
output of some of the new 3D accelerators (3Dfx being prominent among
these), you probably agree that these images are quite adequate and almost
rival simple raytraced images (ok, I'm exaggerating a bit).
Perspective-correct texture mapping, RGBA lights, texture blending and
whatnot is all in a day's (or, actually, a frame's) work for a good 3D
accelerator.

&gt; &lt;ShamelessPlug&gt;
&gt; Feel free to take the code from my renderer for both zbuffering and
&gt; /really/ accelerated raytracing. Gah, now I need to speed up the
&gt; bloody thing for scenes with fewer than 1,000 polygons (as raytracing
&gt; becomes the low overhead operation in the low-complexity case, when
&gt; procedural textures and image pre/postprocessing take over... 320x240
&gt; low-quality previews take 2-3 seconds with 10 objects, 10-20 with
&gt; 1000, using raytracing, and with zbuffering everything gets faster. I
&gt; solved problems with quality loss with zbuffering and as a result, you
&gt; get exactly the same image).

I can get splendid performance out of a 3Dfx accelerator running at
640x480x16bit, and I drool to think about the new Voodoo 2 (especially
the version with 12 megs VRAM) :) 

Okay, to get this back on track a bit, let me say this: I am currently
investigating and implementing a Magic Carpet rendering engine on my own,
and it all looks pretty good. One problem with using a height field is
that it is impossible to create sheer, vertical drops, since the grid
nature of the height field prevents having two heights for the same x-y
position in the map. I've heard that techniques such as TIN (Triangular
Irregular Network), where you approximate a regular grid of triangles with
larger triangles (more efficient with large, flat spaces), not only solves
this somewhat but also significantly reduces the triangle count in a
landscape, but this technique has some inherent problems. First of all,
although TINs reduce the size of the data structure representing the
height field, the "lookup" time during rendering is significantly
increased. In addition, since the TIN consists of large triangles, we get
problems with texture coordinates and the likes if we want to have the
large triangle covered with different textures.

As mentioned earlier, polygon height field rendering is ideally suited for
visualizing large, outdoor areas. This is perfect for those MUDs where
most of the action takes place outdoors. In addition, the height field
nature lends itself easily to fractal terrain generation -- maybe it would
be possible for the server to merely send a seed to the clients and have
them generate the fractal terrain client-side. Has there been any
discussion about anything like this earlier?

If anyone is interested to learn more about polygon heightfield rendering
in game applications, I found a very good whitepaper about this. Download
it from &lt;URL:<A  HREF="http://www.ndl.com/ndl/download/TerrainPaper.zip">http://www.ndl.com/ndl/download/TerrainPaper.zip</A>&gt; -- as it
happens, it is in the pesky Word 6.0 format, though. :(

&gt; 	Miro

-- Niklas Elmqvist (d97elm#dtek,chalmers.se) ----------------------
"You can't trample infidels when you're a tortoise. I mean, all you 
 could do is give them a meaningful look."	 
	- Terry Pratchett, Small Gods



</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00781" HREF="msg00781.html">Re: [MUD-Dev] 3D engines for MUDs (was: The MLI Project)</A></STRONG>
<UL><LI><EM>From:</EM> Miroslav Silovic &lt;silovic#zesoi,fer.hr&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00785.html">Re: [MUD-Dev]  (fwd) Functional Security</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00787.html">Dynamic Loading of Modules</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00781.html">Re: [MUD-Dev] 3D engines for MUDs (was: The MLI Project)</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00788.html">Re: [MUD-Dev] 3D engines for MUDs (was: The MLI Project)</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00786"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00786"><STRONG>Thread</STRONG></A></LI>
</UL>
</LI>
</UL>

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
<ul><li>Thread context:
<BLOCKQUOTE><UL>
<LI><STRONG>Re: [MUD-Dev] 3D engines for MUDs (was: The MLI Project)</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<ul compact>
<LI><strong><A NAME="00771" HREF="msg00771.html">Re: [MUD-Dev] 3D engines for MUDs (was: The MLI Project)</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Thu 19 Mar 1998, 23:04 GMT
<UL>
<LI><strong><A NAME="00772" HREF="msg00772.html">Re: [MUD-Dev] 3D engines for MUDs (was: The MLI Project)</A></strong>, 
Michael Hohensee <a href="mailto:michael#mainstream,net">michael#mainstream,net</a>, Thu 19 Mar 1998, 23:30 GMT
</LI>
<LI><strong><A NAME="00773" HREF="msg00773.html">Re: [MUD-Dev] 3D engines for MUDs (was: The MLI Project)</A></strong>, 
Michael Hohensee <a href="mailto:michael#sparta,mainstream.net">michael#sparta,mainstream.net</a>, Thu 19 Mar 1998, 23:42 GMT
<UL>
<LI><strong><A NAME="00781" HREF="msg00781.html">Re: [MUD-Dev] 3D engines for MUDs (was: The MLI Project)</A></strong>, 
Miroslav Silovic <a href="mailto:silovic#zesoi,fer.hr">silovic#zesoi,fer.hr</a>, Fri 20 Mar 1998, 09:01 GMT
<UL>
<LI><strong><A NAME="00786" HREF="msg00786.html">3D engines for MUDs</A></strong>, 
Niklas Elmqvist <a href="mailto:d97elm#dtek,chalmers.se">d97elm#dtek,chalmers.se</a>, Fri 20 Mar 1998, 11:30 GMT
</LI>
<LI><strong><A NAME="00788" HREF="msg00788.html">Re: [MUD-Dev] 3D engines for MUDs (was: The MLI Project)</A></strong>, 
Michael Hohensee <a href="mailto:michael#mainstream,net">michael#mainstream,net</a>, Fri 20 Mar 1998, 13:26 GMT
</LI>
<LI><strong><A NAME="00796" HREF="msg00796.html">Re: [MUD-Dev] 3D engines for MUDs (was: The MLI Project)</A></strong>, 
Michael Hohensee <a href="mailto:michael#mainstream,net">michael#mainstream,net</a>, Fri 20 Mar 1998, 21:15 GMT
</LI>
<LI><strong><A NAME="00798" HREF="msg00798.html">Re: [MUD-Dev] 3D engines for MUDs (was: The MLI Project)</A></strong>, 
Michael Hohensee <a href="mailto:michael#sparta,mainstream.net">michael#sparta,mainstream.net</a>, Fri 20 Mar 1998, 21:47 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</ul>
</ul>
</ul>
</LI>
<LI><strong><A NAME="00553" HREF="msg00553.html">Position sorting</A></strong>, 
Adam Wiggins <a href="mailto:nightfall#user1,inficad.com">nightfall#user1,inficad.com</a>, Sun 22 Feb 1998, 13:17 GMT
</LI>
</UL></BLOCKQUOTE>

</ul>
<hr>
<center>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
</center>
<hr>
</body>
</html>