Intro RWX, AW University Log for Saturday July 18th, 1998 Note: the models mentioned here can be seen in AWUniv at 34.5S 37.0W 2.3a 320. =================================================================== Magine: well, according to my VRT clock, we are 10 minutes into
the hour, so i guess i should start :) Purdy1: :) Magine: did everyone get the email, and you assembled the tools
you'll need? Sportster: (sitting up straight...) Sportster: I did.. Purdy1: yep retsmah: yup Mistix: yep Likeness: yep Duc de Bretagne: yes Carre: yep ommm: yes Twinkle: not me, since i registered a bit late =P Twinkle: last minute even <s> Magine: what's your email, twinkle? Twinkle: DirkJan@thepentagon.com Magine: ok, i'll send you the info later Magine: okay...well... :) ahem :) Magine: welcome to intro to rwx modeling, everyone.... Twinkle: thanks <BOW> Sportster: :) ommm: yea! Purdy1: :o) Magine: the focus of this class is going to be modeling using a
text editor Purdy1: redoing rwx files? Magine: creating them from scratch, purdy Purdy1: adding to, editing, etc? Purdy1: cool! Magine: when i wanted to learn modeling, i put it off for a long
time because i thought that i would need to do all kinds of tedious arithmetic
to calculate vertices, etc ommm: me too Mistix: me too retsmah: ? Magine: but then i discovered the graphics primitives commands,
like "cone", "cylinder", "sphere" etc Magine: which can greatly simplify making models with a text editor Magine: (i'm going to say "notepad" instead of "text editor" from
now on, even tho you should really use a better editor than notepad, imho) Magine: did everyone take a look at textpad? ommm: ok Sportster: yes retsmah: yup ommm: yea Purdy1: no :( I will though :) Mistix: yep Duc de Bretagne: no. I prefer to use emacs Sportster: not sure I understand, but I took a look :0 Likeness: me either retsmah: i did rets good bird Twinkle: yup Magine: well, whatever editor you prefer is fine, but it will help
you a lot if you have one that can do block select and a few other things
like that Purdy1: k Sportster: 10/4 Twinkle: notepad is fine, does what it needs to do ommm: gotcha Likeness: k, I will have to get it when I get back home Magine: anyway....while it's true that really complicated shapes
still need a modeler program, that will be for the advanced class :) . Magine: ok, now the tools... Magine: rwxmod is invaluable because you can use it to convert
the graphics primitives commands into those notorious verts and polys :) retsmah: ??????????? ommm: ooohhh Twinkle: true Purdy1: to convert? I use it to resize... retsmah: what are graphics primitive, verts and polys????? Sportster: (gettin my dumb bunnoe hat out ALREADY) Magine: ok...i don't know how familiar any of you are with the
terminology, so i'm going to start with explaining some terms Twinkle: resize is one of its main good features, yes Magine: so no one needs to feel dumb :) Sportster: thanks Magine Magine: first of all...renderware. :) Magine: renderware is a collection of DLL's used for 3d graphics
programming. a DLL is simply a file containing subroutines that programs
can call to do various things... Magine: in this case, to draw ("render") 3d scenes. Magine: the active worlds browser (awb) calls on the rw DLLs to
draw everything in active worlds... Magine: mainly it uses rw scripts, which is what rwx files are. Purdy1: ok Magine: rw scripts are like little programs that tell the awb how
to draw a model. Magine: the rw script language is the set of commands it uses....did
you all take a look at the rwapi.hlp file? ommm: quik look Sportster: yes.. Purdy1: yep retsmah: no :(( retsmah bad bird Twinkle: nope, dont have it here yet Mistix: not yet Likeness: yes Magine: the rwapi help file contains all the info about using the
rw DLLs...more info than we need for our purposes, actually Magine: so you only need to look at the section on "rw script language" Magine: which lists all the commands that you can use in an rwx
file Purdy1: *nodding* Magine: ok..now some more terminology :) Twinkle: ah, so it also contains info on how to communicate with
the DLL in your own programs in other sections? Magine: twinkle, yes....if you want to write your own awb, you
would use the info in the rw api help file :) Twinkle: IC, good =) Magine: polygons....everything that renderware draws, it draws
using flat polygons Purdy1: horizontal plane? Magine: all models, every object you see in aw is made from polygons Magine: even if it seems round...polygons :) Twinkle: true Magine: ever the graphics primitives commands that i like so much
are converted to polys internally by rw before it draws them Magine: a polygon is a 2d (flat) shape with 3 or more sides Magine: a triangle is one kind of polygon Magine: a four sided polygon is called a quad Magine: and polygons with more than 4 sides are just called polygons
in rwx language Purdy1: ok Sportster: got it Magine: let me try to summon up some of my visual aids here :) [see rw-poly1.rwx] Twinkle: true ommm: gotcha Purdy1: hehe Sportster: cool !!!!!!1 Magine: these red balls represent vertices Magine: vertices are simply points in space that are used
to define polygons Purdy1: 7 vertices? Magine: yes, 7 vertices Magine: vertices are declared in a rwx file using a 3d coordinate
system Purdy1: thats all the #'s in a file? quad 1234.... Magine: (you might have to rise up a bit to see the Z axis on my
model here....) Magine: purdy, quads are made from vertices, we'll get to them
in a moment retsmah: what color is z? Purdy1: :) Sportster: Green? Magine: this model here with the arrows represents the xyz coordinate
system [see rw-xyz2.rwx] Magine: i've colored the x axis red, the y green and the z blue Purdy1: what does each represent? Magine: each vertex is described using three numbers, one each
for the x, y and z position Magine: a vertex at 0,0,0 would be in the exact center of these
axes here Purdy1: what are the + -? Purdy1: ahhh... ok Magine: hm, let me see if i can explain this better.... Magine: you describe the location of a point in space, a vertex,
using 3 numbers Magine: the first number is the x coordinate, that says where the
point is in terms of left and right Magine: the second number is the y coordinate, that says where
the point is in terms of up and down Magine: and the third number is the z coordinate, that says where
the point is in terms of "toward" and "away"....the depth coordinate Purdy1: cool! yer doing great! I'm learnin! Likeness: excellent :) Cass: :) Sportster: yuppa !!! Magine: as you can see on this model, the numbers start at 0 in
the center, and runin both directions Twinkle: yes, Magine is giving a good, clear, class =) <BOW> Magine: for the x coordinate, moving left gives you negative numbers
and moving right from the center gives you positive numbers Magine: for y, positive is up and negative is down Magine: and for z, positive is "toward" and negative is "away" Magine: (i always get the z coord mixed up myself, heheh) Magine: so, a vertex with coordinates 0,0,0 would be in the exact
center Magine: a vertex with coordinates -1 0 0 would be left of center Magine: 0 1 0 would be above the center Purdy1: makes perfect sense! Sportster: Got it !!! Cass: *wishing I would of paid more attention in trig in school* Magine: 0 0 -1 would be farther away than the center, and so forth Magine: just remember the grid, cass, and it shouldn't be hard
to figure out :) Cass: oh I got it now :) Magine: ok, so now we have some vertices, what good are they? :> Magine: you use them to make polygons Purdy1: how would this one read? Magine: using the "triangle" "quad" or "polygon" commands Purdy1: this is a poly? more than 4 parts? Magine: i made some example scripts (really simple ones) and put
them on a web page, but since i was having computer problems i didn't quite
get all the ones i wanted to on there Magine: this thing you see here is a representation of some vertices,
it's not a polygon yet ommm: needs quads Magine: just a sec, i'll add the script for this to the web page,
then you can all open it and look [see http://www.pipeline.com/~magine/rwx_examples.htm] Purdy1: k ommm: ok Likeness: k Twinkle: k ommm: hmmmm retsmah: now its a polygon? Magine: ok, this is the poly formed by those verts...click on it
with your web page open [see rw-poly2.rwx] Purdy1: hehehe cool!!! Magine: yes, rets Likeness: cool :) Magine: here i've superimposed the two [create rw-poly2.rwx in
the same place as rw-poly1.rwx] Sportster: I like it !!!!!! Mistix: ahh..now I can see better...cool :) Purdy1: polygon = 7 is the first srting of #'s? Magine: right, purdy Purdy1: awesome!!! Magine: the first number in the "polygon" command is the number
of vertices, Magine: followed by the vertex numbers Magine: the vertices are numbered consecutively, even though the
numbers don't show unless you add them as comments Magine: (take a look at rw-cone3.rwx script further down the page,
for an example of using comments to number vertices) Purdy1: right Magine: besides the "polygon" command, there is also the "triangle"
and "Quad" commands, which are essentially the same thing Magine: except with them you don't need to put the number of vertices
since it's obvious that a triangle has 3 and a quad has 4 Magine: now here's a quad made from 4 vertices [see rw-4vert.rwx] Purdy1: each vertex has at least 1 # that touches another next
to it? Magine: not necessarily, purdy Purdy1: ok Magine: the only limitation is that all the verts must be in the
same plane Purdy1: ok Magine: in the case of a triangle, they always will be...any 3
points are always in the same plane Magine: now you will notice something about this quad Magine: you all see it here, right? retsmah: yes Edward: yes Duc de Bretagne: yep ommm: yea Magine: but from the underside, it's invisible :) Twinkle: yes Sportster: yes retsmah: why? Magine: you can still see the balls representing the verts because
i gimmicked it that way, but normally you could only see it from one side Magine: in fact...all polygons (including triangles and quads)
are only visible from one side! Carre: gimmicked, new mag term :) ommm: gimmicked? Purdy1: until you add more verts! Sportster: :)) Magine: (i added stuff to the model to make it clear) Magine: now if you look at the other polygon i showed you before
[rw-poly2.rwx], you will see that it's only visible from one side too Magine: go around back and you'll "See" it's invisible Sportster: holy guacamole !! It is !! Likeness: gone Magine: so, to make a poly visible from both sides, you actually
have to have 2 polys Magine: one for each side Magine: here's another poly that does have 2 sides... [see rw-poly4.rwx] Purdy1: I noticed that when I wanted a roof pce with 2 diff textures Magine: because it's actually two polys using the same verts Magine: so the question you are probably asking is, how do you
tell what side a poly will be visible on? ommm: yup... Sportster: reading my mind.... Magine: oops, technical difficulties, just a sec (forgot to load
a texture) :P Purdy1: hehe ommm: sponsors? commercials? Magine: slow ftp :P Sportster: kumm - biiiii--yahhhh ma lord...Kummm-bii-yyahhhhh Magine: ok, trying again Cass: :)sport Carre: hehe, notice the rwx dept picture of fallingwaters,
where we are now on main awuni page Likeness: nut ommm: aaahhh Sportster: everybody !!! :)))) Cass: hahaha Magine: grrrr ommm: kummmmmbbbbaaaayyyyyeeeeeee Magine: one....more.....time :) Sportster: :)) Magine: dang, this was my best illustration too :P ommm: somethin's happenin' Magine: load you suckers, load!!!! :P Sportster: nice to see that even the Masters get frustrated
too :))) Purdy1: I see a white wall with red dots.. Likeness: I see the green too Cass: i also see a green object in the middle of it Purdy1: yep, 1 green Sportster: saw the green...now it's gone... ommm: very like a whale... Magine: oh well :/ ommm: methinks it is a whale Magine: you see the green polygon in the white square? [the model is rw-cwise.rwx...it did eventually show up correctly,
without the white square] Cass: yup ommm: yes Sportster: I see it now that the object turned... Magine: imagine that you don't see the square :P Edward: yes retsmah: no ommm: ok Magine: instead you see an arrow going counterclockwise around
the polygon :P Purdy1: k Twinkle: k retsmah: do now Twinkle: k Purdy1: k Magine: the point is.....the side that the polygon faces depends
on the order that you list the vertices in the polygon (or triangle or
quad) command Duc de Bretagne: That makes sense. :) Purdy1: clockwise for invisible? Magine: right ommm: okay! clockwise for invisible Magine: the verts should be listed counterclockwise, for the poly
to face that side Sportster: got it :) Purdy1: then reverse them to see it for both sides? Magine: exactly purdy.... ommm: i see Purdy1: gotta make a phonecall :( brb Magine: mind you, the order that the vertice are declared, the
"vertex" commands, doesn't make any difference at all Magine: only the order that they're listed in the polygon/triangle/quad
command Magine: just a sec, brb Magine: back Magine: anyway...does everyone understand about the sidedness of
polygons ? :) Cass: yes :) Sportster: yes :) ommm: think so Twinkle: yup retsmah: yes Mistix: so far, yep Duc de Bretagne: yes Magine: ok, well so far it sounds like we're going to have to do
a bunch or figuring to place vertices, use graph paper and all that stuff,
doesnt it? :) Magine: but that's where the graphics primitives come in retsmah: yeah ommm: tell me more... Magine: instead of usng verts and polys, there are also a handful
of commands to create whole shapes all at once Magine: now if you look at the wewb page, you will see the script
for this cone, rw-cone1.rwx Magine: very simple, no verts or polys to be seen :) Carre: sure, :) Likeness: yep Magine: the "cone" command, for instance, consists of 3 numbers....the
first is the height of the cone, the second is it's base radius, and the
third is how many sides it has.... ommm: oh Likeness: 12 sides? ommm: hmmm Magine: here are all the gp objects...disc, block, cone, sphere,
hemisphere and cylinder [see rw-gpver.rwx] ommm: "gp" obj? Magine: gp=graphics primitives ommm: oh Purdy1: scrolled and back :) Magine: (btw, when you leave awu and come back, my previous object
with the arrow [rw-cwise.rwx] will download, heheh) Magine: now these may seem like simple shapes, but you can adjust
them quite a bit Magine: the details for each go command is in the rw api help file,
you can look them up there Magine: the cylinder, for instance, can have a different radius
on top and on the bottom, for a tapered cylinder Purdy1: how would I add a square on top of a cone? Magine: that's next... :) Purdy1: hehe Magine: the sphere command is interesting...you only specify the
radius and "density" Magine: density determines how many polys...triangles...rw will
use to make the sphere Magine: you can see the difference in these examples [see rw-sph1.rwx, rw-sph2.rwx,rw-sph3.rwx and rw-sph4.rwx] Magine: (everyone can see the spheres...well, wireframe spheres?) Likeness: yes Cass: yes Purdy1: yep :) Mistix: yep Sportster: yes Magine: ok.... Twinkle: yes retsmah: yes Purdy1: each point of the tri represents 1 vert? Magine: that's right, purdy... Magine: even though you only need to use the sphere command, rw
still makes it into verts and polys :) [also see rw-gpfac.rwx and rw-gpwir.rwx] Magine: now, in order to make something interesting with these
shapes, you need to move them around a bit Purdy1: is each sphere doubled in amount of verts? Magine: hmm, i didn't count, purdy :) [actually the number of polys increases exponentially with each
increase in the density number; see rwapi.hlp, sphere command] Purdy1: k, sorry.. Magine: each sphere is one less "density" Purdy1: ahhhh Magine: i've put the command for each sphere in the description
field on the models retsmah: how high can the density go? Purdy1: too high! LOL too many verts will slow down the speed in
here Magine: now if you were using verts and polys, you could move an
object up or down, right or left, in or out by just using different values
for the vertices Magine: but when you use the gp commands, the object is always
created right at the center Magine: so, to move it around, you can use the "translate" command Purdy1: so when its *placed* in aw it will be half above and half
below? Purdy1: the ground that is? Magine: hm, well no...it will be right on the ground Magine: y coordinate 0 Purdy1: ok Magine: here, i moved the xyz model back to show you.... [see rw-xyz2.rwx; the negative y numbers (green axis) are below
ground in aw] Magine: if the roof here were the ground Purdy1: k, so say one of these is a head.. you could pull a vert
and make a nose? Magine: that's right, purdy :) Sportster: Magine...did you plan to touch on colors and textures
? Magine: yes Sportster: :)) Magine: i know, i'm running short on time here...does everyone
have to go at the end of the 2 hours? Likeness: no Mistix: yes :( Magine: ok, i'll try to finish up, and leave that stuff for next
time.... Sportster: ok :) Magine: now you see the new cone i just made? [see rw-cone2.rwx] Sportster: yup !!! Magine: rw-cone2 Twinkle: yup Mistix: yes Magine: it looks identical, but it is positioned higher than cone1.... Magine: i didn't move it up there, the model itself is positioned
higher Sportster: right !! :) Magine: you can see the script on the web page Likeness: yes Purdy1: no translate on cone1 Magine: now if you wanted to put the cone on top of a sphere, for
instance, you could use the translate command to position it above the
sphere in the same model Purdy1: wow... Sportster: pretty neat !!!! Magine: btw, everyone....when you want to do work as students here,
you can use the privilege ID "student2", priv password is "grass" (no quotes) retsmah: you can have more than 1 object to a script? Magine: you can use many gp commands in a script retsmah: is that how the windmill object on mars was done? Magine: you can have multiple clumps too, but we haven't gotten
to clumps yet... Magine: no, rets, things like that are done with textures and masks,
which we will get into in session 3 :) retsmah: ok Magine: ok....so you sort of get the translate command, everyone? Likeness: yep Cass: y retsmah: yup Purdy1: yep Sportster: Magine...basic question....once I have used TextPad
or NotePad to create the script, how to I embed that to create an visable
object? Twinkle: yup Magine: rwx files [on an active worlds server] are just zipped
text files, sportster, nothing more [you don't need to zip the rwx files to look at them with rwxmod!] Sportster: ok...thanks Magine: ok, also useful is the rotate command Magine: which you can use to rotate the object Purdy1: k, and it can be rotated back and forth, right and left? Magine: translate moves an object left, right, up, down,toward
and away... Magine: rotate turns the object around an axis, like on a
rotisserie :) Purdy1: by degrees? Magine: yes Magine: the rotate command has 4 numbers Magine: [the rotate command is] a little complicated to explain,
and we're short of time, but i'll get into that first time next week Magine: y Cass: k Sportster: ko :) Magine: in it's simplest form, Magine: to rotate an object around a particular axis, you put a
"1" for that axis and a "0" for the other two Magine: then the fourth number is the degrees to rotate the object Purdy1: ok Magine: so, to rotate around the x axis for instance, Magine: you would put "rotate 1 0 0 45" Magine: that would rotate the object 45 degrees, around the x axis [make the degrees negative to rotate in the opposite direction] Purdy1: when would you need to do that? Magine: well, i'm having tech difficulties again...if i can get
my illustrative models on-line in a sec, i will demonstrate :) Purdy1: k :) Magine: but let's say you wanted to turn this cone on it's side Sportster: ok :)) Likeness: ahhh, ok Magine: you would rotate it around the x or z axes Purdy1: that would be the y axis? Magine: hmm, no Purdy1: a script line would read? Magine: ok, i think the models loaded, let me show you Magine: you see this cone? [see rw-rotx.rwx] Magine: on its side? Purdy1: yep :) Likeness: yes Magine: you see the red bar? Likeness: yes Sportster: yes Purdy1: yes, the x plane? retsmah: yes Magine: well assuming that you're looking at the cone from the
pointy end :) the bar represents the x axis Purdy1: right Magine: now you see this other cone...the blue bar represents the
z axis [see rw-rotz.rwx] Purdy1: right Sportster: yup... Magine: to lie the cone on its side, you could rotate it around
either the x or z axes Magine: rotating it around the y axis would just spin it in place
:) [see rw-roty.rwx] Purdy1: 1 0 0 180? Magine: 90 [180 would turn it upside-down] Purdy1: ok :) Purdy1: duh :)) Magine: i put the commands on those cones now [in the description
box for each model] Purdy1: pretty cool :) Magine: before you guys go, since i imagine you will want to experiment
with these things during the week... Magine: i should tell you quickly about the transformbegin...transformend
commands Magine: they are like brackets that isolate any translate or rotate
commands inside them Magine: so for instance if you had several objects in a model and
only wanted to rotate one, Magine: you would put "transformbegin....rotate 1 0 0 90....cone
.1 .2 8...transformend" Purdy1: all in one line or? Magine: and only the stuff between the "transformbegin" and "transformend"
are affected by any positioning commands between them Sportster: no quotes, right? Magine: each command on a separate line Purdy1: k :) Magine: no "..." or quotes Sportster: :) Magine: i'll finish putting examples on the web page before the
next class, check there :) Likeness: k :) ommm: ok Purdy1: thanks Magine :o)) This is really great! ommm: excellent! Likeness: yes, it is :)) retsmah: will you leave that page there? Magine: yes Twinkle: Thanks for the class, it was quite interesting =) <BOW> Sportster: great,,,still confused how all this neat Scpirt is transformed
into an object but...I'll figure it out :)) Cass: yes thankyou :) Purdy1: what was the command line for the translate? Sportster: thanks Magine :)) ommm: thanks for the tips Magine: now if you guys want to experiment, and email your models
to carre or me, we can put them on the server to look at next time Sportster: great !!!! Duc de Bretagne: Thank you Magine. Nice class. Carre: Professor Magine, clap, clap, clap Sportster: yes (applause, applause, applause) Magine: purdy, just "translate x y z" where the x,y, and z are
how much to move the object in those directions Likeness: *clap clap clap* Mistix: Yes...great Class Magine :)) ommm: clap, clop, clasp retsmah: drats now i got to buy a world
hahahahahahah Purdy1: thanks :o)) Magine: you can look up any of these commands in the rwapi.hlp
file Cass: *clap clap clap* Magine: :) Sportster: lol rets.... ommm: nice explanation of hard stuff Purdy1: nice meeting you all :) See ya next time :) Likeness: nah rets, you can use mine if you want Magine: thanks for you patience with my tech difficulties, i hope
i've clarified some things to start with :) Cass: I was gonna say the same thing like! LOL ommm: assignment? retsmah: class is the same time next week? Magine: you want homework? ok.... Likeness: was great Magine retsmah: ok like :)) Cass: haha *throwing paper wads at ommm* Magine: same time next week, yep ommm: ooccchhh retsmah: yes homework Magine: homework, strictly optional but fun Likeness: ok :) ommm: hit me Magine: create a model using at least 3 gp commands.... ommm: ok Sportster: ok....thanks again...gotta go food shoppind :(( Twinkle: oh yeah, plz dont forget to mail the files to me ;) Likeness: ok :) Purdy1: K, see ya's :o)) ommm: ciaoooo Magine: i'll email the log to everyone in the group... Magine: see ya next time :)