Intro RWX, AW University
Log for Tuesday September 29th, 1998
Note: the models mentioned here can be seen in AWUniv at
34.5S 37.0W 2.3a 320.
===================================================================

Immigration Officer: Welcome to the AWUniversity!  Please check our website for the schedule of classes.  http://www.awcommunity.org/awu.
ombili: hello
Magine: hiya om
Jakknife: Hello
Magine: and jak
Jakknife: Hi Om, Magine
Magine: just writing you, jak...but maybe i'll just answer you in person now instead....about the x axis, left *is* minus...
ombili: hi jack
Carre: hi everyone :)
Jakknife: Somehow I got turned around in the head then, Magine.
Magine: hiya matey :)
ombili: hi Caree
Jakknife: Hi Carre
Magine: jak, think of it like cartesian coordinates (if you can remember geometry)
random: hi all
Magine: hi random
Jakknife: ok but when saying left is itmy left or the object's left facing me?
Magine: your left
Jakknife: Hiya random
Jakknife: always my left. ok
random: an easy way to remember positive co ordinates on the axis is....hold up your righ hand with the thumb and index finger extended and your middle finger pointing toward you...these will represent the positive sections of the axis
random: thumb=x  index finger =y    middle finger =z
Jakknife: ok cool :)
Magine: anyone do any models besides jak?
selda: hi
Magine: hi selda :)
selda: am I late?
Magine: we all are :)
Magine: been starting slow, waiting for late arrivals
Jakknife: hib selda
selda: hi Jakknife
Magine: this is a chandelier jak made...
Jakknife: looks like a monster here ;)
Magine: scale is always difficult to judge in aw
Magine: i'll put it indoors
Paul: Especially in RWXMod with no references.
Jakknife: ok ;)
Jakknife: Hiya paul.
Paul: Hi jak
Jakknife: about half that size would do
Magine: well, let's all go down on the lawn for tonight's session, i have some objects down there
Magine: as far a scale goes, jak, i try to keep in mind that an average person is about 1.7m....or .17 in aw
Blooms: ..
Jakknife: hi blooms
Jakknife: on the lawn down here
Blooms: Hi
Blooms: d/l/
Magine: btw, has everyobe been using rwxmod ok? any problems?
Paul: I saved a avatar in RWXmod and cut the files size from avout 300k to 100k
random: ,
Magine: paul, did the av still work?
Paul: Haven't tried it yet.
Magine: did you edit it in rwxmod in any way?
Magine: or just open and save?
Jakknife: wow, getting rid of 0's and spaces?
Paul: yes
Paul: open & saveas
Magine: ok...should still work then ...
Magine: rwxmod is valuable for converting primitives to verts/polys, but it does have some drawbacks you have to keep in mind
Magine: it strips comments out, and  for some reason it will also lose the "mask" keyword on texture commands
Magine: (we'll get to masks next week, this week we're starting with plain textures...)
Magine: ...also rwxmod will convert prototypes to non-prototyped script, which can make the file larger...
Magine: so, when using rwxmod to convert primitives to verts/polys, do that last or cut and paste just the section you want to convert into a temp file...
Magine: ok....so we are going to talk about textures this time....
Jakknife: don't know prototypes
Magine: oh right, i guess i should take a slight detour and mention prototypes here :)
Magine: prototypes can be used for parts of a model that repeat
Magine: you define a prototype *before* the first "clumpbegin", then you can insert that prototype elsewhere in the model
Magine: the format is:
Magine: protobegin somenameyouchoose
Magine: ....whatever script commands you want, like verts, polys, color, primitves, etc
Magine: protoend
Magine: then to insert the prototype, the format is:
Magine: protoinstance somenameyouchoose
Magine: (i'm looking on the examples page for an example of a prototype)
Magine: ok, rw-tube5.rwx on page 5 of the examples (http://www.pipeline.com/~magine/rwx_examples5.htm)
Magine: everyone got that?
Magine: you can click on this sign if you want
Paul: What kind of limits are there on proto's & clumps?
Magine: you're awfully quiet, have i lost you all? :)
Magine: paul, none that i know of on prototypes...
Paul: I seem to have problems if I have more than several
Carre: looking at the tube5 on web, :)
Magine: there is a limit on clumps in the sense that only the main (first) clump is solid
Magine: and only the first clump will respond to "create animate" unless you use tags...something will we get tolater :)
Paul: Maybe it's a problem with the converters then.
Paul: or RWXMod
Magine: and you should keep the number of verts/polys under 64 in the main clump,
Magine: to avoid some solidity problems...
Jakknife:  That's a lot to put in a prototype
Magine: that's not just in a prototype
Magine: i don't know of any limits in rwxmod except available memory, paul
Magine: if you've ever done any programing of any kind, you can sort of think of prototypes as being like procedures,
Magine: that you can call on in other parts of the "program" (rwx script)
Magine: any questions about prototypes? they're pretty simple really
Jakknife: i understand now
Magine: ok, on to textures then....
Magine: as i was saying before, in order to add texture to an object, it has to be made of verts/polys (at least the part you want to add texture to), not primitives.
Magine: which is why i like rwxmod so much, since it will convert primitives to verts/polys
Magine: to add texture to a model, you use the texture command, like "texture flower1"
Magine: that will add that texture to whatever part of the model follows the texture command, until the next texture command
Magine: but of course you probably all know that something else is needed :)
Paul: UV coords
Magine: in order for renderware to add texture to a model, it has to know what part of the texture bitmap (picture) go on what part of the model
Magine: and that's where those mysterious UV's come in :)
Paul: Hate the pesky things
Magine: UV values are numbers that are added to the vertex commands, like "vertex 1.342 1.90 0.99 UV 1 0"
Magine: in this case the UV values are "1 0"
Magine: they seem cryptical, but once you know what they mean, they are really pretty simple
Magine: all UV's are, are coordinates on the bitmap
Magine: like XY coordinates, actually...except they call the UV instead to keep from confusing them with the XY coordinates of the vertices
Magine: you can think of texture mapping as pinning the bitmap image to the vertices of the model, like an elastic sheet
Magine: and the UV's tell renderware what part of the bitmap gets pinned to a particular vertex
Magine: make sense so far?
Carre: yes
Magine: as far as textures and UVs go, all bitmaps have coordinates starting at 0,0 at the upper lefthand corner
Jakknife: yes
Magine: and 1,1 in the lower righthand corner
Magine: therefore, the upper righthand corner is 1,0 and the lower lefthand corner is 0,1
Magine: the first number, the "U" is the left-right coordinate, and the second number "V" is the up-down coordinate
Magine: as you can see here
Magine: i made this animation here as a kind of illustration of how a bitmap is "mapped " onto an object.....
Jakknife: go close, blooms
Magine: (altho the animation seems to be out of order at the moment, heheh)
Immigration Officer: AlphaCentuari would like to join you.  Type 'y' to accept this request, or 'n' to reject it.
Magine: now, you can use numbers higher than "1" for UV;s,
Immigration Officer: You are being joined by AlphaCentuari.
Blooms: I can't move
AlphaCentuari: sorry i am late
Magine: but that will cause the bitmap pattern to repeat itself
Magine: i understand AC
AlphaCentuari: ok
Paul: Are you stuck in the ground, Blooms?
Magine: you have the download stickies, bloom? :/
Jakknife: shift key and fly
Magine: looks like she got disconnected :(
Jakknife: she's been having puter problems
Magine: anyway....as i was saying, UV numbers higher than 1 represent a repetition of the same pattern...
Jakknife: up offline
Magine: so for instance,
Magine: if the UV numbers on an object went from 0 ,0 on the upper left of the object to 1,1 at the lower right,
Magine: then a single copy of the image would be mapped onto the model
Magine: but it for instance the UVs went to 2,2 in the lower right corner of the model,
Magine: then you would see 4 copies of the same bitmap
Magine: two across and two down, that is
Magine: up to a maximum of 32
Magine: which is probably more that you'd want for most objects anyway...
Magine: does that make sense?
Carre: yes
Jakknife: yes
AlphaCentuari: yes
selda: yes
Magine: ok, good :)
Magine: now to calculate UVs for a model, you can use a program i wrote, called texmap
Magine: that's on of the tools i listed in the intro letter, so you should already have the url
Magine: "one of", i meant
AlphaCentuari: can you give it again?
Magine: ok,
Magine: ftp://ftp.pipeline.com/users/magine/texmap95.zip
Magine: there was a dos version too, which is also at that site, if anyone likes command line programs, heheh
Magine: that's  .../dosutils.zip
AlphaCentuari: ftp://ftp.pipline.com/users/magine/texmap95.zip
AlphaCentuari: oops
Magine: anyway, you can run texmap on an rwx file, and it will add UVs to it
Magine: then you just add the texture command and you're set :)
Jakknife: ah wb blooms
Magine: you can also use texmap to add UV's to just a part of the file, but you read about that in the texmap help
Magine: welcome back, blooms :)
Blooms: Thanks
Blooms: better now
Magine: cool...
Magine: any questions about texture mapping?
Blooms: They are all beautiful :)
Magine: well, i guess i can move on to masks then :)
Magine: a mask is a 2-color (black & white) bitmap that is used along with a texture, to define what part of that texture should be visible or not
Magine: the mask is white where you want the texture to show, and black where you want to texture to be invisible
Magine: now you all see that piece of brick wall up  there, with the hole in it?
AlphaCentuari: yes
Magine: well actually, it's a solid square....there is no hole :)
Magine: it's just a single quad
Magine: with the brick texture on it
AlphaCentuari: cool
Magine: but....is also has a mask
Magine: the mask is a white square with a black square in the center
Magine: oh btw...you specify the mask on the same line as the texture,
Magine: like "texture stone1 mask stone1m"
Magine: masks usually have the same name as the bitmap that they are masking for, but with an "m" on the end
Magine: or sometimes it's a "!" (exclamation) instead of an m
Magine: like "texture stone mask stone!"
Magine: in which case you would have stone.jpg for the texture and stone!.bmp for the mask
Magine: masks, btw, are .bmp's, not .jpgs
Magine: actually that can get a bit confusing....on your computer, both the texture and mask need to be .bmps
Magine: but on a server, the texture is a .jpg and the mask is a *zipped* .bmp
Magine: if you see what i mean :)
AlphaCentuari: i do
Magine: ok.....anyway, you can use masked textures to make a simple model appear more complex
Magine: in fact, the rw book says that using a mask is preferable to using more verts/polys
AlphaCentuari: i have a question
Magine: for instance, take this green umbrella here :)
Magine: go ahead, AC
AlphaCentuari: how would rw know where to put the mask where you wanted it
Magine: it uses the same UVs as the texture that it masks....
AlphaCentuari: like mabey you wanted that hole in the corner
AlphaCentuari: oh i see
Magine: if you wanted the hole in the corner, then you would draw the mask with the black (invisible) part in the corner
Magine: btw, i should probably mention....
Magine: rw stretches or squashes all textures to 128x128 (or 256x256 if you have the hi-res aw browser)
Magine: so making a texture bitmap larger than 128x128 won't improve the quality of the texture very much
Magine: anyway, about this umbrella model....
Magine: to make it into the palm over here...
Magine: ...i just made a palm leaf texture, with a mask to make part of the "umbrella" invisible
Magine: the umbrella and the palm are actually the same model, that is...just with a masked texture on the palm
Magine: you can see the script and the bitmaps, texture and mask, on one of the example pages...
Jakknife: example2
Magine: thanks...was too lazy to look it up :)
Jakknife: :)
Magine: gee i wish there were more questions :)
Magine: heheh
Magine: has everyone been experimenting with this stuff?
Magine: that's the best way to learn....for me, anyway
Jakknife: I was this past week.
Magine: anyone else?
random: some
Magine: you shouldn't be afraid to jump in and play around.....no matter how much you read, or how much anyone tells you, you'll never really get it til you start doing it :)
Magine: for experimenting, i've found that it's easy to start up both the text editor and rwxmod, and alt-tab back and forth between them as i make changes in the file
Jakknife: Youy threw me on the palm mapping, checking example..
Magine: make some changes using textpad, save the file, switch over to rwxmod and re-open the file....
Magine: ok, jak....
Magine: what can i clarify? :)
Jakknife: on the quads you said we can see hecone starts here
Magine: btw, you probably all realize, that all the flat 2d trees in aw are made using masks
Jakknife: then had uads 1 thru 20
Magine: ?
Jakknife: but  texmapbegan at 21 and went thru 46 to texend?
Magine: oh right...the "#texbegin" and "#texend" stuff has nothing to do with renderware,
Magine: it treats those lines as comments.
Magine: the "#texbegin...end" are for my texmap program,
Jakknife: right
Magine: they tell texmap what verts to add UVs to....ok
Magine: i knew which verts belonged to the top of the model, the umbrella part, by the color
Jakknife: yes but why map 21 thru 46 verts after saying quads 1 thru 20 were the cone?
Magine: let me see...hmmmm
AlphaCentuari: i have to go
Magine: sorry AC, see ya
AlphaCentuari: ok cya
Facter: hehehe. . ..nice signs my dear =)
Jakknife: bye ac
Magine: jak, you're right, i goofed with the comments in that example....ulp :P
Paul: Hi Facter
Magine: hi facter :)
Jakknife: sigh ;(
Facter: paulie boy. . .hay magine ..jsut thought i'd drop in for a listen =)
Magine: change "cone shaped top begins here" to "ends here", jak :>
Magine: jak just caught me in a goof, heheh....
Jakknife: thx. thought I was going crazy ;)
Magine: show's he's paying attention...i just did that to see who was really looking at the example, lol
Jakknife: lol
Blooms: of course, we knew that
Carre: good one magine
Magine: any more teacher errors anyone wants to ask about, lol? :D
Facter: yeah...hay, who cut yer hair ? =) hehehe
Magine: :P
Magine: (example page updated)
Blooms: wow
Magine: now you see this tree here....
Jakknife: its hurricane Georges
Magine: this is what it looks like with no textures
Jakknife: cool
Magine: when you add a masked texture, it makes the openings between the leaves...
Magine: oh i was saying a moment ago, about the texturemode command...
Magine: it can be "texturemode lit", "texture mode foreshorten" or "texturemode lit foreshorten"
Magine: the "foreshorten" part makes the texture look properly foreshortened for the surface it's on...
Magine: you should probably use texturemode foreshorten on any textured object you make
Paul: That's not quite clear
Magine: ok, see these 2 clock faces here?
Magine: (ignore the fact that one is lighter than other)
Magine: the one one my right has "texturemode foreshorten" on it, so when you look at if from the side, etc, the clock picture is properly shown with perspective
Magine: but on the other one, on my left, the  texturemode foreshorten command was left off,
Magine: so as you view it from different angles, the clock picture kind of twists and warps around
Paul: Ah, now I know why some aw textures stink
Jakknife: ah distorted
Paul: I thought it was UV problems.
Magine: the other texturemode command, texturemode lit, causes the model  to be lit more on one side than the other, according to the lighting (which in aw always comes from the same side)
Magine: without texturemode lit, the object will be uniformly lit
Jakknife: the west?
Magine: with texturemode lit, the object will be shadowed, etc on one side
Magine: hm, jak...i never can recall
Paul: So why wouldn't you always want to ue foreshorten?
Paul: use
Magine: paul, i would, wouldn't you? :>  (just kidding...actually, i don't know why you wouldn't want to use it on any textured object)
Magine: foreshortening uses some extra processor power of course.
Jakknife: Texturemode lit isn't desirable then?
Magine: but since the model will look crappy without foreshortening, i would always use it, if the object has a texture
Magine: i would say texturemode lit *is* usually desirable
Magine: it just depends on how you want the object to look
Paul: Unless the object was in a building that had omni-directional lighting
Magine: without t'mode lit, the object would be kind of bland,
Magine: but then again sometimes you might not want shading...just have to experiment
Jakknife: when building, I don't usualy lke a shadowed/darker side
Magine: then don't use t'mode lit on your wall models :)
Jakknife: ok :)
Paul: Mars is a good example of it being too extreme.
Jakknife: yup. Don'tlike Mars
Blooms: looks good for shadows for trees :)
Magine: ah, now those tree shadows are something else again :)
Magine: those are actually part of the model
Magine: texturemode lit won't add shadows to the ground or under a model, don't misunderstand
Magine: it only makes one side of the model darker, and adds highlights to the lit side, if the model has a shiny surface
Magine: well, unless there are any more questions or comments, i think that finishes tonight's session.....
Blooms: then the shadow of a tree is another model on the ground?
Magine: blooms, those trees you've seen with shadows, yes....the shadow is a transparent, flat model, or added part of the tree model
Blooms: :)
Magine: there's a good explanation of how to make those, on eep's web page
Jakknife: With a mask?
Magine: yes, with a mask
Magine: see http://www.tnlc.com/rw/, and choose "renderware scripting" from the menu there
Jakknife: I'll send you eep's page, Blooms
Blooms: I haave it thanks
Jakknife: cool ;)
Magine: lots of good resources on those pages....
ombili: may i have the password to practice here again ?
Magine: just a sec, om, i'll look it up
Jakknife: student3 crayon
Magine: that's the one :)
ombili: ok thans jack :-)
Magine: of course that's for practice and learning, not creating property for yourself in awuniv... :)
Jakknife: welcome, been using it all week
Magine: anything else?
ombili:  i`m a long way from that...lol
Jakknife: nooo
Blooms: :)
Carre: thanks Magine
random: Magine, I have sent you an email to make sure you have my correct addy this week  :)
random: thanks Magine
Blooms: thanks magine
Magine: ok, then...see ya next time....and remember, experiment, experiment, experiment :)
selda: thanks magine:-)
ombili: thanks Matgine
Jakknife: Thx Magine
Magine: ok, random, i'll make sure :)
Magine: homework: add some textures to your models :)
Magine: email me if you get stuck
Jakknife: ok
random: thanks :)
Paul: Magine, is there anything special you have to do to TAG a portion of a model?
Magine: we can go into tags next week paul...basically, you can use tags to limit animate commands to a part of the model
Magine: like the tree over there
Paul: ok
Magine: the 3d tree....it has "tag 200" on the leaf polygons
Magine: also tag 100 is used for signs and tag 200 for create picture...but i'll elaborate next time :)
Jakknife: Magine put it in there earlier, Blooms.
Blooms: oh, blast, having trouble moving againe
Jakknife: join me
Magine: too many DLs, blooms?
Magine: bye all, poof!

<Prev  Next>