Intro RWX, AW University
Log for Saturday July 25th, 1998
Note: the models mentioned here can be seen in AWUniv at
34.5S 37.0W 2.3a 320.
===================================================================
Magine: oh well, i guess we should get started....we can look at
homework after class, unless there's someone who can't stay a little bit
afterward (?)
Magine: hi, omm
ommm: hi Magine
Magine: hm, looks like we've lost a lot of people
Magine: ok, well....last time i think we left off talking about
rotation and translation
ommm: yes
avatar: hi, ommn. this is joon.
Magine: to recap a bit....the translate command lets you move the
object
Magine: the command is "translate x y z" where x,y, and z are numbers
that tell how far to move the object in each direction
Magine: corresponding the the xyz coordinates of course
Magine: so, to move it upward by 1 unit, you would say "translate
0 1 0"
Magine: to move it down would be "translate 0 -1 0"
Magine: and so forth.....
lu cypher: what is a unit?
Magine: about 10 meters
Magine: so in an rwx file, .1 is a meter in aw
Magine: so translate command is clear to everyone? ok....
ommm: yup ok
lu cypher: Yes
avatar: yes
Magine: rotate allows you to rotate the object around an axis,
like the cones over there [rw-rotx.rwx,rw-roty.rwx,rw-rotz.rwx]
Magine: it's a little difficult to explain, but the easiest use
is to just rotate the object around one of the 3 coordinates as we see
there
Magine: "rotate 1 0 0 95" would rotate an object around the x axis,
like the cone with the red bar thru it [the cone lying on its side, facing
us]
lu cypher: so you just can make it 0 or one for each coord?
Magine: right...in the simplest form.
Magine: what the three numbers really are, technically, are a "vector"
Magine: the rotate command rotates an object around an axis or
line, formed by the 0,0,0 coordinate and the coordinate specified by the
three numbers
Carre: can you put the line rotate in gp script at top of shape
you want to rotate?
Magine: you should put the rotate or translate commands in the
file before the vertices, if using polygons
Magine: if you're using graphics primitives, put the the translate/rotate
before the gp command
Carre: :)
Magine: i should apologize for being a bit unprepared today, i
should have added examples to the web page...
Magine: i will definately do that after class though, and hope
that will clarify everything....
ommm: ok
Magine: besides translate and rotate, there is also the scale command
Magine: that allows you to change the size of an object
lu cypher: cool!
ommm: doesn't an object already have a size?
Magine: yes, scale let's you change the size
ommm: oh
Magine: the format is "scale x y z" where x,y,z are numbers
Magine: each number represents scaling in one direction
Magine: to shrink something to half it's size, you would use "Scale
.5 .5 .5"
Magine: "scale 2 2 2" on the other hand would make the object twice
its size
ommm: oh relative to the original?
Carre: so if you wanted to flatten a hemesphere, 0 .5
0?
Magine: relative to the original, right....basically the scale
command modifies whatever numbers you have in vertex or gp commands
Magine: and yes, carre, you can scale an object in one direction
at a time, so that "scale 0 .5 0" would make it half its original height,
Magine: but the width and depth would remain the same
Carre: :)
avatar: i see
ommm: got it
Magine: when making models with a text editor, scale can be very
handy because you can modify vertices by scaling just parts of the object
Magine: which is where the transformbegin and transformend commands
come in :)
lu cypher: aha?
Magine: transformbegin and transformend are like brackets that
isolate the effect of translate, rotate and scale commands
ommm: oh, interesting
Magine: if you want to affect only part of a model with translate,
rotate or scale commands, you would put "transformbegin" before the translate/rotate/scale,
Magine: and "transformend" after the affected vertices or gp
ommm: how do you know one vertex from another? how do you know
what to translate?
Magine: that can be tricky, ommm :)
ommm: oh
lu cypher: ;)
Magine: you can number vertices using fixrwx, then you have to
use a combination of trial and error and logical deduction :)
[fixrwx is at ftp://ftp.pipeline.com/users/magine/dosutils.zip]
ommm: ah ha
Magine: of course, if you are making something from scratch using
graphics primitives, then it's much easier
Magine: because you know what the parts are
Carre: yes, our friends, those gp's :)
Magine: give me just a minute and i'll add the script for this
little table [ctable.rwx] here to the examples page,
Magine: so you can see how i made it using gps....
Carre: ok
ommm: but once you Save As in RWXMod, all you see are vertices,
right?
Carre: yes, ommm, I found out the hard way to save the original
text fle with the gp
Carre: for editing
ommm: ah yes
ommm: the hard way ;-)
Magine: yes, because once you save the file in rwxmod, it will
be converted into all vertices and polys
Magine: so, you should save that as a last step :)
Magine: or, just convert *parts* using rwxmod....
ommm: if you want to totate one triangle, you have to hunt for
it...?
Magine: you can cut and paste the gp commands to a temp.rwx, open
and save it with rwxmod, then cut & paste back in again, if you want
Magine: well the trick ommm is to not lose track of the triangle
in the first place, if you can help it :)
ommm: cut / paste parts of the model?
Magine: right...
ommm: oh, okay, i'll try not to...
Magine: heheh
Magine: you can use the color command to keep track of parts, because
even when rwxmod converts gps to verts & polys, the color commands
will remain
Magine: so you use them to keep track of what verts are part of
what shape...
ommm: where do you put colors among the vertices?
ommm: stick it in anywhere?
Magine: the color command, which i'll get to in a few minutes,
affects whatever follows it...
Magine: so for instance, if you had:
ommm: oh
Magine: color 0 1 0
Magine: sphere .01 2
Magine: color 1 0 0
Magine: disc 0 .1 8
Carre: stick it above each original shape command in gp and it
will stay there above vertices? for each shape in rwx?
Magine: ...then when rwxmod converted the sphere and disc command
to a bunch of verts and polys, the color commands would still be there
ommm: how about coloring some vertx in the same model?
Carre: tricky
Magine: the vertices will all be listed together, but the polygon
commands will be separated by the color commands
Magine: so you can tell what polys are part of what shape, that
you started out with
Carre: oh
ommm: then if you want to color one section of the same model GP....?
ommm: i mean re-color one section..?
Magine: well you can change the colors again afterward
Magine: you can use the color command as much as you want,
Magine: whatever follows it will be affected
ommm: k
Magine: ok, i added the script for the table to the examples...i
hope it shows up :)
ommm: let me check..
Magine: open your web page and click on one of those big triangles
ommm: ctable is there!
Magine: you can right-click on the web page and "refresh"
Magine: ok
Magine: great :)
Magine: now this script is actually different from the table
you see here, in one regard....
Magine: to make the flare pattern on the top, i had to convert
the two disc commands at the end into verts & polys
Magine: but texturing will be discussed in next session :)
Magine: before we discuss the script for the table, let me talk
about the color and lighting commands for a moment
Magine: the color command is pretty easy....just "Color" followed
by three numbers, for red, blue and green
ommm: ok
Magine: each of those numbers should be between 0 and 1, and tells
you how much of that color to mix in
Magine: so color 0 0 0 would be black, color 1 1 1 would be white,
Magine: color 1 0 0 is red, color 0 1 0 is green, color 0 0 1 is
blue, etc
Magine: color .5 .5 .5 is neutral gray
Magine: color 1 1 0 is yellow (mix of red and green)
Magine: color 1 0 1 is violet, etc
Magine: color .5 0 0 is also red, but darker
Magine: color .9 .5 .5 would also be red, or pink, because the
red value is higher; but the fact that it has the other colors in there
too will make it lighter (closer to white)
Magine: i guess the pattern is clear :)
ommm: yup
Magine: ok...next we consider lighting
Magine: there are 3 commands to
Magine: control the reflectivity of an object
jeanphi: hello !
lu cypher: aha !
Magine: these purple globes over to the SE here show what i mean
Magine: the top row of globes [rw-amb1.rwx] demonstrates the "ambient"
command
Magine: which in aw means the base brightness of the object
jeanphi: Sorry for being late
Magine: that's ok, jean....you can read the log later :)
jeanphi: :-)
Magine: we are talking now about lighting....
jeanphi: ok, I already know a bit :-)
Magine: the ambient command determines the objects actual brightness,
Magine: as seen in the top row of globes,
Magine: which vary from "ambient 0" to "ambient 1"
Magine: the next light command is "diffuse", as on the second row
of globes, [rw-diff1.rwx]
Magine: if determines how reflective the object is in a terms of
diffuse light....
ommm: Magine, can you please put the RWX files on the Web page?
Magine: i will, yes :) sorry, it's been a bad week for me ommm
:)
ommm: it's getting better ;-)
Magine: i don't want to interupt right now to do it, but will right
after class....
ommm: k
Magine: also i'm going to have a summary web page too....
ommm: great
Magine: finally there's the "specular" command, shown on the bottom
row [rw-spec1.rwx]
Magine: which determines how reflective the object is in terms
of reflection
Magine: i kind of glossed over the diffuse and specular definitions
there because i think i can best explain them by comparison
Magine: both tell how reflective an object is,
Magine: but specular reflection is like a mirror, or glassy surface...
Magine: and diffuse reflection is like reflection off a buff or
fuzzy surface :)
lu cypher: great!
Magine: basically you will just have to play around with the 3
values and get an intuitive understanding of what they mean
Magine: also, all three of those commands, ambient, diffuse and
specular, can be conveniently combined in one command, "surface"
ommm: oh
ommm: convenient
Magine: the 3 numbers following the "surface" command specify ambient,
diffuse and specular lighting...
Magine: so you can see all 3 at once, or individually
Magine: and like the color command, everything following the surface
or ambient/diffuse/specular commands is affected
Magine: until the next such command
ommm: ok
Magine: another command that controls lighting is the "lightsampling"
command
Magine: you see the gp model set over here...?
Magine: these are using "lightsampling vertex"
Carre: yes
Magine: [rw-gpver.rwx]
Magine: now i will show you the same models in "lightsampling facet"
Magine: [rw-gpfac.rwx]
Magine: you can see that lightsampling vertex smooths a model out,
where lightsampling facet shows all the individual sides (polygons) clearly
ommm: magic!
Magine: notice how lightsampling vertex makes the cone, which is
actually only 16 sided, appear smooth and round
Magine: same with the sphere, and so on
Magine: but with the flat-sided cube, it makes little difference
Magine: ok, if there are no questions, let's look at the script
for the table now
Edward: What are the performance considerations between the two
lighting effects?
ommm: ok
Magine: lightsampling vertex, the smoother one, takes a bit longer
to render...but i don't think it's a very significant difference in most
cases
Edward: ok
Magine: ok, on the web page, the last example, ctable.rwx
Magine: you can see the usual modelbegin, clumpbegin lines, followed
by the surface command
lu cypher: yes :-D
Magine: with .4 ambient lighting, indicating an object a little
darker than average
Magine: diffuse .5 indicating that it reflects moderately well,
Magine: and specular .1 meaning it isn't shiny like a mirror :)
Magine: at least that part of it isnt
Magine: then the color command, a littel darker than neutral gray
Magine: and the cone and two discs making up the base
Magine: now, pop quiz :) why are there TWO discs for the
base?
ommm: that's what i wanted to ask ;-)
Magine: anybody know? :)
lu cypher: hmmm
Magine: i'll give you a visual hint
Magine: now the table is up in the air, what do you see?
Edward: Visibility from both sides?
Magine: right :)
ommm: oh!
lu cypher: right!
Magine: i could have probably left one disc off, since the table
will not often be viewed from the bottom :)
ommm: unless you're drinking..;_)
Carre: so you can put your duplicate commands in original gp,
that helps
Magine: you notice that one of the discs has a negative number
for the radius
Magine: that's the one that faces downward
Magine: next, we have the top half of the table...
Magine: that part of the script starts with "transformbegin"
Magine: so that the following rotate and translate commands will
only affect part of the model
Magine: otherwise, the rotate and translate would affect everything
that follows them in the file
ommm: oh
lu cypher: do you have somthing similar for the color commands?
Magine: no....
Magine: color commands will affect everything that follows them
lu cypher: aha
Magine: until the next color command :)
Magine: hmm...now you will keep in mind that this cafe table was
the first model i ever made from scratch
ommm: wow
lu cypher: *impressed*
Carre: yes
Magine: which is my excuse something in the rotate command there
:)
Magine: i put .025 when 1 would have probably worked just as well
Magine: (rotate 1 0 0 180 would have worked as well as rotate .025
0 0 180)
Magine: but i was still figuring out what those numbers meant,
at the time, lol
Magine: but to proceed....
lu cypher: :-)
Magine: after the rotate and translate, there are the cone and
disc commands making up the top of the table
Magine: but that cone is upside down, because of the rotate command
Magine: and the translate command moves is down slightly so that
it will move into the other cone
Magine: but wait :)
ommm: did you succeed right away with the "slightly"?
Magine: no, i did a lot of trial and error
lu cypher: :))
Magine: and i still do :P
Magine: so don't feel bad about it, if you do too
ommm: ok
Magine: although the more numerate would criticize me for it ,
lol
Magine: interesting point here....if you played around with this
yourself, you would find that the upper cone
Magine: has been moved slightly UP, not down!
Magine: can you guess why that is?
Magine: anyone? :)
ommm: it's pointed?
Likeness: so not to overlap?
Carre: cause disc was move by translate and rotate?
Magine: i mean, you would expect that the negative number in the
translate command would move it down
Magine: but it is actually moved a bit up from where it would be
without the translate
Edward: does the rotate reverse the vertices?
lu cypher: becaause of the translation?
Magine: edward has it :)
Edward: If you did the translate before the rotate you would make
it a positive number.
Magine: it's because the rotate command affects everything that
follows it, including the translate!
Magine: yes! bravo! :D
Magine: you should usually put rotate commands last to avoid such
confusion
Magine: i didn't realize that when i did this about a year ago
:)
Magine: ok, anyway....
Magine: we then have transformend, so that the effects of the rotate
and translate will stop there
Magine: and we finish with the glass top
Magine: i wanted it to have a different reflectivity than the metal
bottom, so i used the surface command to change that
Magine: the 1 for the last number (specular) means that the top
will be as reflective as it can get, like glass
Magine: you will note that if you look at it from some angles,
it will reflect the aw light and look white
Magine: hm, well, maybe i should put the original untextured version
on here instead, just a sec
Magine: ok, now this is what the script on the web page actually
shows [ctable1.rwx]
Magine: next week we'll see how to add the texture to the top
Magine: two other things to notice in the script
ommm: table's gone...
Magine: you're not seeing the replacement table?
ommm: not me..
Likeness: I am
lu cypher: i do
ommm: how do i get it to load?
Magine: [ctable1.rwx] for the benefit of people only reading the
log :P
Magine: hm, try leaving this world and coming right back, ommm
Magine: i'll wait...
ommm: i see it
Magine: ok
ommm: thx
Magine: so...i put lightsampling facet, hoping to make the top
more reflective (faceted), but in this case since the top is just flat,
i dont think it mattered much
Magine: also you'll notice the "opacity" command there
Magine: which, as you probably have guessed, is what makes the
top transparent
Magine: opacity affects everything that follows in the file, like
color, and can be any number between 0 and 1
lu cypher: opacity 1 is invisible?
Magine: opacity 1 is solid, the default
Magine: opacity 0 is invisible
Magine: everything between is varying degrees of transparency
Magine: however, renderware kind of cheats on this one :)
ommm: how so?
Magine: it really just does a tiny checkerboard pattern, with some
squares solid and some invisible
Magine: at opacity .5 it looks pretty good and you can't tell
lu cypher: aha !
Magine: but at other opacity settings, the crosshatch pattern becomes
real obvious
Magine: and instead of transparent, it looks like a screen door
:)
Magine: you can see on some of the windows here in the center,
what i mean
Magine: the modeler who made them used opacity .4 or something
like that
Likeness: you can see a row of x's in some of them
Magine: yes, the crosshatch patterns interact too, when you see
one window thru another
Magine: any questions before we end the official class session?
we can stay a bit and look at what people did for homework from last week,
if you want
lu cypher: thanks for the class, Magine! Got to go...
ommm: good class!
Edward: thanks. See you next week.
Magine: okay, LC, see ya
lu cypher: [gone]
Carre: bows to instructor magine :)
ommm: clap clap
Magine: next week we'll get into textures...the really fun stuff
:)
Likeness: thanks Magine :))
ommm: all right!
Magine: thanks all of you, for coming :)
avatar: I can't wait. :)
Carre: directions for use of dos program like rwxfix? can
you e-mail us magine
Magine: ok
ommm: GPs are our friends!
Magine: and i will put more examples on the web page, and i'm going
to summarize the material on another web page, will send everyone the url
via email
Carre: :), for sure ommm
ommm: super
Magine: i hope everyone feels that they're learning stuff :)
ommm: yes, yes
Magine: great :)
Likeness: ok, this is finally all starting to make sense to me
ommm: secrets of the RWX masters
Magine: heheh :P
Carre: me too, feels good
Magine: i'm looking forward to seeing a lot of new and interesting
models around :)
ommm: look out!
Likeness: hehe
Carre: still having problems with math, like if I want to
translate an object up 1/4 of the vertical of a model, ??
Magine: well it would depend on the height of the model, carre
Carre: 1.5 for height
Magine: so then, just translate 1/4 of that..... .25 x 1.5
ommm: to create large objects, like a huge tent, could you use
one big GP?
Magine: translate 0 .375 0
Magine: you could, if it's not so large that you have solidity
problems
Magine: something i should have remembered to mention...
ommm: solidity?
Carre: magine, would it be better to make modular pieces for large
object
Magine: objects with more than 64 vertices or polygons, will be
solid in one big block...
Magine: yes, i think that works best, carre
ommm: if you can not enter inside them, then they have solidity?
Magine: umm, well i'd better put that on the agenda for next time
for everyone, but, that's sort of what i mean, ommm
ommm: ok
Likeness: CRZ did a very large object and it rendered and when
I tried to resize it to make it smaller, it would not render past 25%
Magine: i'll give you an example tho
Likeness: any idea why?
Magine: that's just the limitation of renderware, like
Likeness: oh :(
Magine: its hard for it to figure out what part of a model should
be solid or not
Magine: like these tables, for example
Magine: the space under the table top is open, you could move thru
it
Likeness: the center right?
Magine: hm, maybe the table is a bad example :)
Magine: take the standard aw arch, that's a better example
Magine: you can walk thru it
Likeness: yes
ommm: right
Magine: but if it had more than 64 verts of polys, it would act
like one solid chunk
Magine: even though it might look okay
ommm: oh
Likeness: oh ok :)
Magine: or for instance, we have a tree in atuin that never got
finished :)
Magine: it has an overhanging branch
Magine: you should be able to walk under that branch
Likeness: but it is solid all the way to the ground?
Magine: but because the tree has more than 64 verts or polys, the
tree acts like it is one big block
Likeness: I see :)
ommm: oh i see
Magine: things with > 64 verts/polys are solid throughout the "bounding
box"....that yellow box you see when you select an object
ommm: important to know
Magine: another thing is, objects bigger than a certain size, i
think it's 30m, have similar problems
ommm: oh
Magine: they may only be solid in the center
Likeness: I wondered about that also
ommm: what do you mean "solid in the center"?
Magine: just that....for instance i made a big hill object
Magine: you can stand on it, if you are at the center....but if
you move off center too far you drop thru :P
ommm: oh
Carre: like derek's islands in A'tuin, but if you place in center
of grid, more solid ground we found?
Magine: hm, yes i believe that's true,
Magine: it can depend on how the object is placed....
Magine: i confess i never looked into that :>
Likeness: sometimes objects have holes in them like swiss cheese
Magine: how do you mean, like?
Likeness: well, you can sometimes walk on an object and there will
be a hole someplace in it or several holes
Likeness: like a ground piece
Magine: you mean holes in it's solidity, but not visible holes?
Likeness: yes
Magine: do you recall where there is an example?
Likeness: well, there was a hill piece in STARZ, but I don't know
if it is still there
Likeness: once Steppi did a floor piece and in one part of it,
you fell thru the floor
ommm: generally how big is the limit on size for good building?...
Likeness: just a little section
Magine: i think it's 30m, ommm
ommm: oh
ommm: you could build a small house with GP..?
Likeness: do you ever use Truespace or any program like that Magine,
at all?
Magine: like, i've used ray dream designer...
Likeness: hehe, just curious
Magine: ommm, probably...but might be better to do it in peices
ommm: how did you convert RD files?
Carre: good quest. how do I use that converter with
ts3, a dos prog. ? Likeness?
Magine: ommm, save as .dxf then convert
ommm: oh
Likeness: with dxf converter?
Likeness: ever used Win32?
ommm: which things to build in RWX and which in modeler?
Magine: rwconvert works best, i think, like
Magine: ommm, just depends on how complicated it is....
Likeness: k :)
ommm: do you ever switch between?
Magine: i'm still learning ray dream myself
Magine: hey, we are inside a yellow pavillion :P [ommm's model,
pav4mh.rwx]
ommm: yikes!
Magine: size does matter, lol
Likeness: hehe
Magine: (this is ommm's homework)
Magine: pav4mh
Likeness: this is cool ommmm :)
ommm: :-)
ommm: GPs are my friend
Magine: oh i have to go outside and see the top...
Likeness: ummm, has an unattached cone on the top of it....hehe
ommm: whoops, i had to fix the top this morning!! ;-)
Carre: neat, you made a door
ommm: 148 vertices!!
Magine: that many? doesnt look like it
ommm: that's what RWXMod says about it...
Carre: hi Mavrik
Mavrik: hi
Magine: must be, then
Magine: hi mav
Mavrik: Hi Magine
Likeness: Magine, will you include the part about the 64 verts
and the 30m's in the log?
Magine: yes
Likeness: thanks :))
< Prev Next
>