From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- pipermail/nel/2001-December/000828.html | 180 ++++++++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 pipermail/nel/2001-December/000828.html (limited to 'pipermail/nel/2001-December/000828.html') diff --git a/pipermail/nel/2001-December/000828.html b/pipermail/nel/2001-December/000828.html new file mode 100644 index 00000000..c20e76fb --- /dev/null +++ b/pipermail/nel/2001-December/000828.html @@ -0,0 +1,180 @@ + + + + [Nel] Landscapes without 3DSMax + + + + + + + + + +

[Nel] Landscapes without 3DSMax +

+ Cyril 'Hulud' Corvazier + + corvazier@nevrax.com +
+ Tue, 18 Dec 2001 20:20:34 +0100 +

+
+ +
Hi Paul,
+
+> Thank you everyone for the links.    I'm afraid though that these terrain
+> building packages generate height fields, and as you may or may not be
+> aware, NeL uses bezier patches, not height fields to generate its terrain.
+
+You can build patches with an heightfield. It a fast way to generate
+a simple lansdcape. Simply raise the tangeants vertices with the joined
+vertices of a bezier patch : you have a heightfield !
+
+> 1.  How much information of the CPatchInfo object must be filled in to
+have
+> a viable object?  sPatch gives me a 4x4 array of vertexes which I can use
+to
+> populate the vertices, tangents, and interiors of the CPatchInfo object.
+> However, I am still a bit unclear what much of the data in the CPatchInfo
+> object is, especially the BindEdges (4 CBindInfo structs).  Are these
+filled
+> in when welding the zones together, or are they something I will need to
+> fill in upon generating a single zone?
+
+The BindEdges info are required to properly link patches together at
+runtime. You have to filled them for internal zone linking. zone_welder will
+fill them
+of inter-zone link. Hear come some explications on how to fill the
+CBindInfo.
+
+The patches can be linked those way : (warning ASCII arts in non-constant
+size
+fonts.. :-)  )
+
+---
+
+The edge numbers are :
+
+     3
+   ***
+0 *  * 2
+   ***
+     1
+
+---
+
+There is 3 ways to bind patches together. (1-1, 1-2, 1-4)
+
+---
+
+One patch on another :
+
+**********
+*      *        *
+*  0  *   1   *
+*      *        *
+*      *        *
+**********
+CBindInfo:
+Patch 0, edge 2 : NPatchs = 1,  MultipleBindNum = 1, Next = { Patch 1 },
+Edge = { 0 }
+Patch 1, edge 0 : NPatchs = 1,  MultipleBindNum = 1, Next = { Patch 0 },
+Edge = { 2 }
+
+---
+
+Two patches on another (Bind 2)
+
+**********
+*      *   1   *
+*  0  ******
+*      *   2   *
+**********
+Bind info:
+Patch 0, edge 2 : NPatchs = 2,  MultipleBindNum = 1, Next = { Patch 1, Patch
+2 }, Edge = { 0, 0 }
+Patch 1, edge 0 : NPatchs = 1,  MultipleBindNum = 2, MultipleBindId = 1,
+Next = { Patch 0 }, Edge = { 2 }
+Patch 2, edge 0 : NPatchs = 1,  MultipleBindNum = 2, MultipleBindId = 0,
+Next = { Patch 0 }, Edge = { 2 }
+
+---
+
+4 patches on another (Bind 4)
+
+**********
+*      *   1   *
+*      ******
+*      *   2   *
+*  0  ******
+*      *   3   *
+*      ******
+*      *   4   *
+**********
+Patch 0, edge 2 : NPatchs = 4,  MultipleBindNum = 1, Next = { Patch 1, Patch
+2, Patch 3, Patch 4 }, Edge = { 0, 0, 0, 0 }
+Patch 1, edge 0 : NPatchs = 1,  MultipleBindNum = 4, MultipleBindId = 3,
+Next = { Patch 0 }, Edge = { 2 }
+Patch 2, edge 0 : NPatchs = 1,  MultipleBindNum = 4, MultipleBindId = 2,
+Next = { Patch 0 }, Edge = { 2 }
+Patch 3, edge 0 : NPatchs = 1,  MultipleBindNum = 4, MultipleBindId = 1,
+Next = { Patch 0 }, Edge = { 2 }
+Patch 4, edge 0 : NPatchs = 1,  MultipleBindNum = 4, MultipleBindId = 0,
+Next = { Patch 0 }, Edge = { 2 }
+
+---
+
+Note that zone_welder welds automaticaly the zones together but don't
+generate bind info for internal patch linking in a zone.
+It searches for shared vertices in the 2 zones and weld them. Zone_welder
+can perform only 1-1 bind type.
+
+I hope this is understandable, don't hesitate to ask for details.
+
+> 2.  Once I manage to export a .zone file, what's the quickest, dirtiest
+way
+> to test it?  Will I need to build an entire app just to load the .zone, or
+> is there some way I can easily hack it into the Snowballs client just to
+see
+> if it indeed exported a valid file?
+
+You can replace a zone in snowball, or make a simple application to see
+the zone. If you want, i can post a peace of code for a small app.
+
+Cyril Corvazier
+
+
+
+
+ + + + +
+

+ -- cgit v1.2.1