#HELP – Complex labelling
35 messages in this thread
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
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
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
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
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
OK, James. Best of luck to ya!
-Alan
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
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
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
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
FINally, I gave someone an idea! Jesus! I feel good.
<<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
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
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
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
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)
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
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
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
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
>>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
Jack,
excellent description of alpha-channel! You know you should really consider
writing manuals for a career <g,d&r>.
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
>>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
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
Awesome tips as usual, John!
-Alan
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.
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
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
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
Good tip on the mass SAVE&DELETE, John K.
DT
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
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
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
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