1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> [Nel] Landscapes without 3DSMax
</TITLE>
<LINK REL="Index" HREF="index.html" >
<LINK REL="made" HREF="mailto:corvazier%40nevrax.com">
<META NAME="robots" CONTENT="index,nofollow">
<LINK REL="Previous" HREF="000827.html">
<LINK REL="Next" HREF="000829.html">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H1>[Nel] Landscapes without 3DSMax
</H1>
<B>Cyril 'Hulud' Corvazier
</B>
<A HREF="mailto:corvazier%40nevrax.com"
TITLE="[Nel] Landscapes without 3DSMax">corvazier@nevrax.com
</A><BR>
<I>Tue, 18 Dec 2001 20:20:34 +0100</I>
<P><UL>
<LI> Previous message: <A HREF="000827.html">[Nel] Landscapes without 3DSMax
</A></li>
<LI> Next message: <A HREF="000829.html">[Nel] Landscapes without 3DSMax
</A></li>
<LI> <B>Messages sorted by:</B>
<a href="date.html#828">[ date ]</a>
<a href="thread.html#828">[ thread ]</a>
<a href="subject.html#828">[ subject ]</a>
<a href="author.html#828">[ author ]</a>
</LI>
</UL>
<HR>
<!--beginarticle-->
<PRE>Hi Paul,
><i> Thank you everyone for the links. I'm afraid though that these terrain
</I>><i> building packages generate height fields, and as you may or may not be
</I>><i> aware, NeL uses bezier patches, not height fields to generate its terrain.
</I>
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 !
><i> 1. How much information of the CPatchInfo object must be filled in to
</I>have
><i> a viable object? sPatch gives me a 4x4 array of vertexes which I can use
</I>to
><i> populate the vertices, tangents, and interiors of the CPatchInfo object.
</I>><i> However, I am still a bit unclear what much of the data in the CPatchInfo
</I>><i> object is, especially the BindEdges (4 CBindInfo structs). Are these
</I>filled
><i> in when welding the zones together, or are they something I will need to
</I>><i> fill in upon generating a single zone?
</I>
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.
><i> 2. Once I manage to export a .zone file, what's the quickest, dirtiest
</I>way
><i> to test it? Will I need to build an entire app just to load the .zone, or
</I>><i> is there some way I can easily hack it into the Snowballs client just to
</I>see
><i> if it indeed exported a valid file?
</I>
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
</pre>
<!--endarticle-->
<HR>
<P><UL>
<!--threads-->
<LI> Previous message: <A HREF="000827.html">[Nel] Landscapes without 3DSMax
</A></li>
<LI> Next message: <A HREF="000829.html">[Nel] Landscapes without 3DSMax
</A></li>
<LI> <B>Messages sorted by:</B>
<a href="date.html#828">[ date ]</a>
<a href="thread.html#828">[ thread ]</a>
<a href="subject.html#828">[ subject ]</a>
<a href="author.html#828">[ author ]</a>
</LI>
</UL>
</body></html>
|