CompuServe Thread

#HELP – Complex labelling

35 messages in this thread
#72864From: James TichenorDec 21, 1993 5:36 PM
Hello again, I'm having a conceptual problem that I hope you all will be able to help me with. I am designing a stereo reciever, and have created all the physical pieces. The next step is labelling. I've labelled all the individual buttons, but now I have to create all the labels that go on the main plate of the stereo (ie: bass, tone, balance, attenuator, etc). All of these words have to be created for one texture map to be placed on the main face of the stereo. It's hard to describe and I'll just have to hope you understand what I mean. I'm stuck. I've created a .gif of a rendering of the stereo from the front and begun placing the words in their right places, with the .gif as bg reference, but it's a real guessedimation process. The words are pretty small and I have no way to zoom in on that particular point of the stereo, to make sure each label is the right size and spacing. I just had an idea (it helps to write this stuff out because it makes my mind think). If I were to create each word (label) as an object and place it in the right place on the stereo, I'd be able to zoom in and out, because I'm not working with a background image, but the actual stereo. Then, once all the labels are created, I'd hide everything but the labels, zoom out to full size and render just the labels as a .gif. I could then (theoretically) texture map the complete labelling onto the stereo and use the offsets to place it in exactly the right position – as long as each element of the label were in proper position to each other. Would this work?… I guess I'll just have to try it… Thanks for your help! James
#72885From: ALAN IGLESIASDec 21, 1993 10:06 PM
Hello James, For what it's worth, here's how I usually approach this sort of thing: When you consider that Texture maps have a filtering factor, and also consider that r3's anti-aliasing is second to none, I often use *geometry* whenever I can, intead of texture maps. I would create the labels in the Shaper and do a Create/Object/Get Shape in the Editor. The "labels" now live as their own entities, and can be "applied" and moved around at will, *always* rendering at the highest possible clarity. As this can sometimes run into lots of vertices, be sure to keep the polygon count low in your fonts. The fonts that come with 3DS are designed to be as simple as possible. One of the great things about this approach is the ability to use materials freely on the seperate labels. For instance, if the label is backlit, you could use a self-illuminating material. The possibilities are pretty endless. When "applying" these labels, you should be able to bring them up to a .05 of a world-coordinate or so to the main object before the renderer gets confused about the co-planer faces that are inherent with this approach. At rendering time, the labels should look as though they are silk-screened right on to the stereo. Have fun, -Alan Iglesias
#72970From: James TichenorDec 22, 1993 1:30 PM
Hey Alan, Yeah, there's no doubt that the labels look way better as independant objects, rather than texture mapped. The problem is – the stereo rendering uses 34megs worth of memory (all the button labels have been SUMMED) – that's TWICE as much as the rest of the scene! To render the stereo in my scene with take upwards of 62megs – since I have 32megs system memory, swapping would be intolerable. One fix that I can think of is to HIDE the stereo in all but the shots that it's needed. Will this reduce memory requirements? It should, although I've found the hide function to be hit and miss. <<When "applying" these labels, you should be able to bring them up to a .05 of a world-coordinate or so to the main object before the renderer gets confused about the co-planer faces that are inherent with this approach. At rendering time, the labels should look as though they are silk-screened right on to the stereo.>> This sounds like a good tip, but I don't quite understand <g>. Could you elaberate? Thanks James
#73052From: ALAN IGLESIASDec 23, 1993 2:22 AM
Hmmm, if you use geometry for the labels, no (summed area) texture mapping for the labels would be needed, James. Wouldn't this *reduce* memory requirements? It sounds as though you are still mapping the label objects. This technique uses the _actual alpha-numeric geometry_ for the labels, with *no* mapping required!<g> By "applying" the labels I meant zooming way in and moving the label geometry right up to the face of the stereo. When rendered from the camera, it will look as though the letters are silk-screened on to the front of the unit. A very clean effect. If this is still unclear, I'll be happy to Email you my phone number, and I'll explain it to you… -Alan
#73146From: James TichenorDec 23, 1993 2:32 PM
Hey Alan, Well, I said it was complex! <g> The stereo is made up of two basic sets – the stereo front (with it's dips and sockets). Then it has a whole slew of buttons. I decided the easiest method would be to map all the labels for the buttons individually (thus I have some 35 differnt maps for the buttons, anything off the stereo face) Then there were the labels that go directly on the face, or rather, label. I did create all the words as 2D fonts, and placed them in 3D space exactly where they should be on the stereo. Then I hid the stereo and buttons, and rendered just the 50 or so labels. That's as far as I've got, because I'm fighting resolution vs splitting the label in half. Anyway, I think I'm gonna get it – after no small amount of fiddling! Thanks James
#73171From: ALAN IGLESIASDec 23, 1993 10:47 PM
OK, James. Best of luck to ya! -Alan
#72972From: John K. JordanDec 22, 1993 2:02 PM
James, more labeling in 3DS… If you follow Professor Iglesias' Valuable Instructions about using objects for text, you can use VARY.SXP to animate the text color. In addition, I often use text as objects when I want to create a bitmap containing the text. First create the text as objects, as Alan suggested. Then scale and position the text precisely on the scene geometry (bend and stretch as desired). Hide everything but the text and render the scene from an ortho view (i.e., Front or Top) to a bitmap file. You can then hide the text objects and use the resulting bitmap as a texture map. You can use this map tiled (render with an appropriate background), or as a decal (remember to render with alpha ON). It's easy to get the mapping icon correct: using the exact view in the window you just used to render the bitmap, fit the icon to the bitmap, then position and scale until it just fills the view and apply – the map should fit the object perfectly the first time! This method works especially well to create a map of text that must be curved or bent to fit some object (for the front of a frisbee, for example). Also, if the surface of your object is not flat, such as a globe, the map method is easier. A free tip: use the same bitmap as bump map and you have a quick way to apply embossed letters to any surface. JKJ
#73012From: James TichenorDec 22, 1993 9:23 PM
Hey John, Thanks for your suggestions. I did exactly what you suggested, but (of course) it doesn't work. For on the thing, the front of the stereo is too big to get a detailed rendering of the labels, so I've had to render to seperate images (half of the front in each) to get the detail. For some reason, if I have the Alpha on, the bitmap doesn't show up. So I've clicked IGNORE ALPHA. Now I'm having to position each map precisely. Also, I haven't found the proper rendering size to get the detail I want, but all keep the integraty (sp?) of the spacing between each label. I'm sure I'll get it, but it's gonna take a lot of fiddling. Now, there's a good chance I'm missing something here – but I'm not sure what. I tried your suggestion first off and it was a complete failure. I may go back and give it another go (one thing I can think of it that I'm using a copy .3ds file of the stereo, except it doesn't have the labels – maybe I'll go back and use the original file with the labels, as you suggest, and just hide them). Thanks for the advice! James
#73099From: David TaffetDec 23, 1993 10:34 AM
James – Sizing/placing of maps is much easier if you make sure there's no black around the outside. In an image program like PhotoShop, crop the map right down to the nearest pixel all the way around. In AAPro, clip the map as a cel and use that, rather than a GIF or PCX, which will use the entire screen. Then, in 3DS, use REGION FIT when applying the map and it will fit just right. If this stuff is old hat to you, PMJI. I'm inclined to think that a combination of Alan's and John's suggestions should work well. I'd create the text as geometry, render one front view (two in your case, due to the size of the object), twaek the resulting images, crop them down as mentioned above, map them on and, finally, throw away the text geometry (saving it in another file, just in case, of course) to save on remembery and rendering time. FWIW David Taffet
#73147From: James TichenorDec 23, 1993 2:32 PM
Hey David, This is a good idea. I will rerender at a higher resolution and then crop the image. And then region fit… Hmm, I don't think that'll work because I've got two different maps (two halves of the whole). Then again, I could combine the map in PhotoStyler… You given me ideas… Thanks! James
#73381From: David TaffetDec 27, 1993 11:38 AM
FINally, I gave someone an idea! Jesus! I feel good.
#73398From: James TichenorDec 27, 1993 1:40 PM
<<FINally, I gave someone an idea! Jesus! I feel good.>> Well, don't get too excited. It doesn't work <g>. I forgot that Photostyler will not read 32-bit .tga files. Oops. Well, I've taken a couple days off so I'm reading to start playing again. I'll let you know how it goes. James
#73406From: Tom RzoncaDec 27, 1993 3:22 PM
James: PhotoStyler 2.0 WILL read 32-bit TGA files. If you don't have it, get it! It's worth it! I caught this thread a little late, but perhaps I can offer some tips. I uploaded a file called KEYBOARD.JPG several months ago in the Lib9. The shot is a different angle of the MOUSE file on the R3 CD-ROM and in the gallery section of the R3 reference manual. It's a real tight shot of a notebook PC keyboard with very complex labelling on the tops AND sides of the keys. First, I made a large keyboard template in Inscriber, and saved the files in 24-bit TGA format. Next, using Numpic in AniPro, I converted the 24-bit file to 8-bit. Next, I cut small cels from the overall graphic, making sure that each letter was exactly the same same distance from the top and edge of each cel. Then, in 3DS, I applied each cel to its corresponding key on the keyboard as a decal. Since most of the keys required multiple maps, I had to do some pretty heavy face detaching (this was a FULL keyboard). The process was time-consuming and tedious, but worth it in the end. I hope this helps. Enjoy your holidays! -Tom
#73598From: James TichenorDec 29, 1993 3:33 PM
Hey Tom, I've got Photostyler 2.0 on the way – reading 32-bit .tga files is good news! The keyboard is great. I did the same thing as you did, piece at a time, just with a step or two left out. I now wish I had created my labels as .tga files (the only on that is is the big, stereo face). I'm going to render a few times, and see how it looks. It's only in one close shot in my short, so I don't know whether it'll be worth the extra work at this point. Thanks for you're description. James
#73486From: David TaffetDec 28, 1993 11:21 AM
Whoa, hold on, Poncho! Why does the rendering for placement of labels need alpha information? Aren't you just going to use the rendering to paint the front of this stereo? You could do this and then apply the map to the front faces. What's with the alpha? David {waste another dime telling me, so I can say "Oh, I get it!"} Taffet
#73524From: John K. JordanDec 28, 1993 11:50 PM
David, >>why do labels need alpha… Although remembering the old adage, "A closed mouth gathereth no foot"… I'll open my big mouth here – creating a map with alpha for use as a decal will enable antialiasing the edges of the text for a much cleaner look. This decal could be applied over any other material, such as brushed stainless, bumpy plastic, etc. I believe James had expressed a desire for high quality labels at extreme closeups. This evolved as an alternative following a suggestion from Alan the Artist about using 2D text objects for high quality text. JKJ (with plenty of dimes)
#73556From: David TaffetDec 29, 1993 9:56 AM
Oh, I get it. <g> But I guess I was thinking of this a little differently. My plan, which I will never assert as being remotely efficient, was to render the front of this thing in ortho view, use the rendering as the basis of a texture map of the entire front, including the labels, rather than doing each label individually. In PhotoShop I could zoom in and make a pretty detailed map. I can see though, that if he wants to get right up to each label so it more or less fills the screen the one-map idea might not have the resolution necessary. I'm having a hard time grasping why you'd need to get *that* close, though. Even a training video, showing the use of each knob and dial woudn't need to show the zits on the edges of each letter. You'd just have to be able to read the thing very easily. I'd have to see the unit, but 'till I do and see why it wouldn't, I think I could make a single map that *would* work well. Ah, don't listen to me. James knows what he's doing. D {I _thought_ you had a dime or two} T
#73645From: David RhotenDec 30, 1993 9:53 AM
And still, the problem with using one big high-res map for the whole front of the unit is that it eats a TREMENDOUS amount of all important RAM at render time. I learned the hard way, and will NEVER do that again! Well, unless I have to….<g> Dave
#73698From: ALAN IGLESIASDec 30, 1993 6:11 PM
Actually, David, under some circumstances, that technique is EXTREMELY useful. The magic is that when you render a picture to be used as a texture map, the anti-aliasing is automatically fantastic, and you don't (typically) need a very big map to pull it off. I've used beautifully rendered 640×480 scenes to map the whole side of a sailing ship, for example, and it looks great! I often map an object, render an orthographic view of it, add things (if needed) in a paint program, and re-apply the new map to the mesh using bounding-box mapping coordinates. Very often this can save mucho time and memory… In this case, though, where high detail is needed, I would probably go the 2D text-object "label" route… Have a nice New Year, -Alan
#73599From: James TichenorDec 29, 1993 3:33 PM
Well, the alpha channel describes the transparancy (sp?) of each pixel. I'm winging it here <g> but I believe it increases the antialiasing, which I need as now the labels (as .gif) come out clipped. But _why_ the alpha channel does this, I don't know. Actually, I'd love to figure out the benifits of Alpha beyond the transparancy issue… James
#73652From: Yost GroupDec 30, 1993 10:31 AM
>>I believe it increases the antialiasing, which I need as now the labels (as .gif) come out clipped. But _why_ the alpha channel does this, I don't know. Actually, I'd love to figure out the benifits of Alpha beyond the transparancy issue…<< Glad you asked. As you said, the alpha channel describes the transparency of each pixel. This is used for two purposes: 1) transparent images, such as with objects assigned transparent materials, 2) antialiasing. Of the two, the second is more subtle, but far more important because it lets you composite multiple images with accurate antialiasied edges regardless of the background. If you look at antialiasing in a non-alpha program — like AniPro (Unzag ink) — you'll see that it's accomplished by creating a ramp of pixels at the border of one color that ramps into the color of the background. (e.g., for a red ball, you get a 2-3 pixel edge that's a gradient from red thru dark red, to black). Problem is, if you move that ball to a white background, the dark red pixels show up as a jaggy mess against the now-white background. (You can see this in Video Post if you composite with Queue RGB instead of Alpha.) HOWEVER (we're almost through here), if your image carries an alpha channel, you antialias it by providing a ramp of _transparency_ at the edges of the images. Thus the pixels at the edge of the red ball remain red, but ramp from opaque to semi-transparent, to almost transparent. Thus, regardless of its background, the red ball is perfectly antialiased. (Note that the alpha channel is required primarily for compositing operations where you're combining various images and don't know what their backgrounds will be.) 3ds, of course, uses alpha for later compositing either in video, or in Video Post. Alpha is also extensively used by Altamira Composer, where you can combine multiple 32-bit images that "float" anywhere on the screen with perfect antialiased edges because of the alpha. You can also use 3ds to create alpha images for later composition in AC. (Whew! Musta felt like writing this morning. If there are any typos in this, we'll have to live with it.) – Jack
#73671From: MARTIN G FOSTERDec 30, 1993 11:55 AM
Jack, excellent description of alpha-channel! You know you should really consider writing manuals for a career <g,d&r>.
#73697From: David TaffetDec 30, 1993 6:08 PM
But, in this case, where there are labels on the front of a stereo and these labels are going to stay put on the front of the thing, is Alpha going to be of any real use? Maybe around the edges of the whole stereo as the camera angle shifts and stuff, but otherwise I just don't see it. But then, I've been dense before. DT
#73221From: John K. JordanDec 24, 1993 3:45 PM
>>detailed label map… You may have to render at a much higher resolution to get enough detail, at the expense of greater memory usage, of course. Remember to render to a compressed file to save disk space (I like compressed TGA), 24-bit, with alpha on. (A GIF will not work, since it contains no alpha data and therefore the edges cannot be anti-aliased.) Small hint: for any image, use "View File Alpha" (from the Options menu in the materials editor) to verify that the image contains proper alpha data. If your labels are all small, flat, widely spaced, and you need extreme closeups, you may very well be better off with using the 2D text objects directly, as Alan the Master first suggested, rather than trying to make texture maps. If you are running up against memory limitations, remember the timeless advice of using low resolution stand-ins for long shots, switching to hi-res objects or maps as you get very close. Takes a lot more planning & juggling, however… >>it doesn't work, bitmap doesn't show up… I have two machines here (this 486 for CIS, and a P5 for 3DS) and I went thru each step on the second machine to verify something wasn't lost in my poor memory. It's for projects like this I wish we all lived in the same city. 30 minutes together in front of a monitor could save hours of false starts – but then, you wouldn't get to have all the fun you're having exploring! Half the fun is getting there, unless you're already late. <g> JKJ
#73323From: James TichenorDec 26, 1993 12:59 PM
Hey John, Thanks for the help and suggestions. I've thought about using two different stereo meshes, depending on detail. That is a real possibility so we'll see. As for using .tga and alpha with my maps — AHHHHH! The fool that I am jumped right in and went nuts with .gifs. Damn! Well, I know what I'll be doing this holiday season (if only Santa would bring my stereo complete and rendering…) Thanks and MC James
#73053From: ALAN IGLESIASDec 23, 1993 2:23 AM
Awesome tips as usual, John! -Alan
#73220From: John K. JordanDec 24, 1993 3:44 PM
Hey, I learned pert near everything I know from you, dude! JKJ PS. I just got the upgrade to the non-beta Altamira Composer last night. WOW! I'm permanently hooked. The new PhotoStyler 2.0 came today, but Composer is so much fun I may never get around to installing PStyler.
#73300From: ALAN IGLESIASDec 25, 1993 6:42 PM
Dang! I wish I had the *time* to get/play/use AC myself. Just haven't had the need (at least I didn't think I did) for AC's abilities yet, but I'm thinkin' I'm gonna real soon<g>. PS 2.0 seems to be pretty cool, but I haven't even had the time to go over it's new capabilities yet, although I will this week. Not to complain, though — It's great having so much work! Merry Christmas to you and ALL here on the forum (I love this place!) -Alan
#73088From: David TaffetDec 23, 1993 9:32 AM
JKJ – In your scenario, once you're satisfied with the text placement and your bitmap texture/bump map, rather than hiding the text objects, couldn't you save some memory, time, etc. by simply deleting the text objects? Obviously, you have to be *sure* you're satisfied. OR! Save your file, delete everything but the text and save the text mesh under a new name, then go back to the original and delete the text. You can always re-merge the text objects later, if needed, but still can get rid of all those unnecessary vertices. Jus' a thought for James (an' whomever). David Taffet
#73219From: John K. JordanDec 24, 1993 3:44 PM
David, You're absolutely right about saving sanity by deleting everything unnecessary as _soon_ as possible! After my initial test rendering, I generally save all temporary objects and then delete them. (Especially with this method of creating maps, since one tends not to try to minimize face counts to get super smooth curves.) BTW, the easiest way to save and delete a set of objects: First, Alt-N, then select your set of objects, then save the selected objects only to a new name with "Save Selected" from the file menu. Finally, choose Modify/Object/Delete "Selected", and you're done. Quick & clean! JKJ
#73389From: David TaffetDec 27, 1993 1:13 PM
Good tip on the mass SAVE&DELETE, John K. DT
#73183From: Steven LeeDec 24, 1993 12:09 AM
I know I'm jumping into this thread a little late but I've run into the exact same problem as you are now James. The way I did it was tedious but it brought the results. What I do is I make the face labels of the stereos one big GIF file that I make in animator pro. I start with a blank GIF and slowly and progressively add each label at a time — test rendering and re-positioning as I go along. I can get pretty accurate with this method and it's not too time-consuming especially if you test-render using flat shading mode and only a small section of the geometry at a time. It is _very_ helpful to have two computers to work on this (one with ani pro and the other with 3D Studio). If you wish, you can take a look at the stereo that I made a few months ago called STEREO.GIF .. it's got all that you're talking about I think. — Steve
#73294From: James TichenorDec 25, 1993 2:49 PM
Hello Steven, I wouldn't mind seeing STEREO.GIF. It wasn't included in a 3ds how-to book, was it? So would you go back and forth between AniPro and 3DS, checking each change as you went? I'm not sure how'd you work on two computers – would you swap disks with each change (network, maybe). I thought of trying Ani Pro but I really haven't warmed up to the program yet. I should take a week off of 3DS and really learn Ani Pro. I'm sure it's better than my first impression allowed. Thanks for the suggestion. It's a good one, but I think I'll stick on my present track – to much work already done to be givin' up! James
#73353From: Steven LeeDec 26, 1993 11:49 PM
Basically I have the two computers networked and the AniPro computer is continually updating the GIF file off of the MAP directory in the 3DS computer. It makes life so much easier and it really does make it seem like the only reasonable route to go to do this sort of complex label mapping. If you don't have two computers or if they aren't networked, then this is not practical I suppose but if you're doing a lot of mapping of this nature, it's the route that works best (at least for me) IMHO. — Steve
#73399From: James TichenorDec 27, 1993 1:40 PM
The two computer setup is a great thing in many ways. If you can afford to have two good computers and two decent display cards, you're laughing. I spent a couple months TRYING to get OS/2 to work, but never fully succeeded. I think two computers is the answer to true multi-tasking – the only answer, at the moment. James