This site hosted by Free.ProHosting.com
Google
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 :)

Next >