Cartography Shop Texture Misplacement

Community Forums/Developer Stations/Cartography Shop Texture Misplacement

Lazarus(Posted 2003) [#1]
Hi

I've been playing with CShop to evaluate it's effective before purchase but I am having problems with the texture placment.

I create a box, texture it and then if you move that box the texture doesn't move with it effectively becoming misplaced on the surface. Is there a way to keep the textures local to the object and not to the world coordinates? I know you can edit the UV coordinates manually but surely you shouldn't have to do this everytime you move an object.

Thanks.


Gabriel(Posted 2003) [#2]
Hmm.. I kinda think you should actually. Making the texture local to world coordinates is surely the only way to ensure that textures always match up perfectly between walls and other walls, floors, ceilings, etc. Seems like that's the price you pay for having completely automated UV mapping which matches up perfectly.


sswift(Posted 2003) [#3]
I don't see how this logic follows.

Assuming you can move the textures at all, you will want them to retain the alignment you have set.

For example, let's say you have an archway which you want to place in a hall. The archway is built into a square section of wall, which you might want the texture to automatically line up with the hall, but the arch itself has custom texture alignment going all the way around it, and inside it. That would be a lot more irritating to align by hand than aligning some wall textures. Especially when you could have a button which with one click aligns a texture on a wall to the world coordinates.

Also this concept discounts the notion that you'll ever have walls at an angle. You don't want your texture to stretch on angled walls, do you?

And what about the extreme case. Let's say you build an entire castle, or spaceship, aligned to the grid, and then you want to tilt the whole thing as if the earth beneath it has collapsed, or the ship has crashed into the planet and is stuck in it at an angle. Such a task becomes herculean if the moment you move an object the textures go out of alignment, or worse, do not rotate with the object.


Lazarus(Posted 2003) [#4]
sswift

Exactly my point. If I rotate or move the object the texture stays where it is and I have to place the object relative to the texture and not the other way round. In 3D Studio or other modeling programs this doesn't occur.


Gabriel(Posted 2003) [#5]
That's because 3dsMax doesn't feature automatic mapping. Neither is 3dsMax a CSG level editor.

I haven't played with Cartography Shop enough to know if there's a way to do what you want. But I do know that it would be a far bigger problem if it didn't behave the way it does by default.

But that's not to say there isn't a button to align the texture to the object rather than the world if you want that. But you'd be better off posting this question on the Cartography Shop forum because there are many more CShoppers over there.


Lazarus(Posted 2003) [#6]
Thanks for your help.


jhocking(Posted 2003) [#7]
Most CSG editors I've used align mapping to the world by default but allow you to freeze the texture coordinates on an object/brush. If Halo didn't include this (I haven't used CShop) then definitely post a feature request on his forum.


Gabriel(Posted 2003) [#8]
The other thing to remember is that Halo lets you create your own custom objects to place in CShop. So if you want a spaceship and tilt it in the World, as Sswift suggests, you would create the spaceship on it's own, then load it into your map as an object and you can move it around with it's own UV coordinates remaining constant.

As Joe says, this is the way CSG level editors usually work. If you bear in mind that ever wall is a separate object, and often consists of several objects per wall, using world UV coordinates for objects is the only way you could build the basic levels without going nuts. Imagine if every time you moved a step it stopped tiling with the rest of the floor. You'd go nuts. I think the answer might be to get used to creating items on their own and then placing them into maps.


sswift(Posted 2003) [#9]
"So if you want a spaceship and tilt it in the World, as Sswift suggests, you would create the spaceship on it's own, then load it into your map as an object and you can move it around with it's own UV coordinates remaining constant."

If I'm not mistaken, Halo allows you to do this, but only bakes the shaodws of the objects into the level lightmaps. He doesn't actually generate lightmaps for the objects you place within the levels. So this is not an option, and besides, building a level that way would make the entire ship always be visible. You need the ability to do vising.


"If you bear in mind that ever wall is a separate object, and often consists of several objects per wall, using world UV coordinates for objects is the only way you could build the basic levels without going nuts. Imagine if every time you moved a step it stopped tiling with the rest of the floor. You'd go nuts. I think the answer might be to get used to creating items on their own and then placing them into maps."

And if you bear in mind that I'm a professional level designer who's use Quake-like level editors and made levels for System Shock 2 in CSG editors with no such texture alignment, then... well I don't know what then. :-) But I do know what I'm talking about cause I've actually built huge levels! I think Unreal also fixes textures to the level geometry.

Of course, CSG level design and Quake level design are two totally different beasts. I hate Quake level design. It's so annoying having to build a room out of 4 solid walls and then cut holes to make doors, or use a bunch more cubes. It's so much nicer to be able to just stick one cube down, invert it, and have a room, and then stick another cube down and have a doorway.

I wonder if there is some happy medium. Clearly neither method is perfect.

Anyhow, my point still stands. Without texture-fixing by default, it would get really annoying when you build a peice of level on one part of the map and then move it over to another area and everything goes out of alignment.


Gabriel(Posted 2003) [#10]
SSwift: I wasn't addressing my points to you really. I know you were a level designer for System Shock 2. I think it's also been discussed on here before that System Shock 2 did things entirely differently to editors like Worldcraft, which is - from what I've seen of it ( about 1 hour several years ago ) the way Halo's gone with Cartography Shop.

I seem to recall there was a thread on here a long time back where someone was having a really big pop at the way most CSG level editors work. I'm not sure if it was you, but if not they apparently shared your sentiments.

What you're saying is that you can have a single object make up an entire room, in which case having local texture coordinates makes sense. But since you can't do that with CShop, you can't expect the texture mapping to work the same way. Mixing and matching between different styles of level editors wouldn't suit fans of either type of editor.

You also have to remember that not everyone is used to working on high quality commercial games like SS2. While the method you suggest would certainly make it easier to build very large levels with a lot of complexity, it would also make it harder to build simple levels. Specifically it would require the user to go in with a very clear idea of where they're going with the level. Have it all sketched out on graph paper probably. I can't see more than a few pros such as yourself, GFK and a few of the others who would be that organised and professional with it.

So yeah, I guess CShop is targetted more towards the novice level editor. Which is good for me, because I only want something to build simple geometry quickly. I don't agree that texture-fixing should be the default, it's something you're going to want off more than on unless you have everything well planned. But I do agree that you should be able to turn it on if you want. Maybe you can, but i haven't found that option.

On reflection, I think you may be right about not creating lightmaps for the separate objects. They do have some lighting calculated for them, I'm sure of that, but maybe he bakes vertex colours or something for some simple lighting. Doesn't UnrealEd do that as well? Think so anyway.


sswift(Posted 2003) [#11]
"Specifically it would require the user to go in with a very clear idea of where they're going with the level."

Ha!

Wher I was building levels for System Shock 2, we had NO art direction, and only about halfway through the construction of a level did we get a basic design document saying "the player goes to medsci, where they get this object, and then they return to the ladder which leads to deck 2. There should be an elevator that runs the height of the ship somewhere in the middle of the level".

That was basically it. We also had a list of basic rooms which might be found on each level, which I pretty much wrote.

Other than that, I just stuck down hallways and rooms haphazardly, and decided that this doorway leads to the medical section, and then I made a bunch of rooms in there, and this section leads to the cew quarters, and made a bunch of rooms there, and then lastly I made the room the player starts out in that I knew had to have some cryo tubes.

Beleieve me though, I wanted more direction than that. :-) But art and preliminary design apparently wasn't in the budget.

The only reason anyhting looks like it makes sense is cause they went back after the fact and changed a few areas as the game design evolved to look like, say, a security station, or whatever it seemed like was appropriate.


"So yeah, I guess CShop is targetted more towards the novice level editor."

If you want a novice level editor, use maplet. It's free, and it's far simpler to use than CShop is, I'm sure.

Cshop to me looks like a professional level editor, so I expect professional capabilities from it.


SabataRH(Posted 2003) [#12]
Cshop3 has no texture CLAMPS.


Gabriel(Posted 2003) [#13]
I find CShop a lot easier to use than Maplet, but I guess that's personal preference up to a point.

Regarding the SS2 level editor, there's something I still don't understand. Suppose you have a long corridor which has a ramp at the end of it, all in a straight line. The ramp is textured with the same texture as the floor. If I place the ramp and then decide I need to nudge it down the corridor a bit, how do you stop the ramp texture being out of sync with the texture on the floor of the corridor?

If it's locked on the ramp, then it moves with the ramp, correct? So unless you move it by an amount that's equal to the distance of one texture tile, it'll no longer tile correctly with the floor, surely?


sswift(Posted 2003) [#14]
"If I place the ramp and then decide I need to nudge it down the corridor a bit, how do you stop the ramp texture being out of sync with the texture on the floor of the corridor?"


I never said Shock 2 worked in that manner. To be honest I don't remember exactly how it functioned.

Nonetheless, your ramp example has a big flaw. Regardless of the method you use to keep the textures aligned on a ramp, a ramp goes up at an angle, and that distance is greater than the horizontal distance traveled by the floor of the hall. That means that unless you stretch the texture, which looks ugly, the only way to have the textures aligned at both ends of the ramp is to slide the texture on the second half of the hall over to align with the top of the ramp. That breaks your automatic texture alignment method because now nothing else you build off the hall will have the texture aligned with the hall now that it's texture is "off the grid" so to speak. So you have to align those manually.

A solution to this problem which is often used because it's more realistic anyhow, is to have special textures where ramps and doorways are, and many other places you need to hide a bad join.


Anyhow I never said that aligning textures with the world was bad. All I said was that not allowing you to lock textures to geometry when you move it, if you need to, is bad.

One thing I am pretty sure of is that if you rotated a cylynder in Shock's editor, the texture rotated with it.

The problem with Shock's editor is it was just downright weird. For instance, if you placed two blocks next to one another, like cube and a wedge to make a ramp, then they would join together into one object. But I don't mean that as in they could be moved together. I mean that like, if I made a whole floor out of 64 cubes all butted up against one another, then when they all joined the grid would dissapear, and you'd have one big block, which might have seams running across it at weird angles because it was split by the BSP tree.

If you wanted to make a grate in the floor, you had to make an "air" cube in the middle of your "air" room cube which touched the floor. Then you could texture that bit seperately. Of course it would have been much better to have every floor grating be a flat object that you just stuck to the floor like a decal.

And more complicated methods of converting solid to air to solid wouild allow you to take a cylynder and make a curved section a seperate part you could texture.

I suppose I wouldn't mind Quake style editing if it incorporated more sophisticated ways of creating and modifying the blocks you use to contsruct the levels. For instance, I would want to be able to take a wall, draw a line down the center to create an edge and then be able to pull that edge out to make a corner, so now instead of a cube I have a pentagon.

I think someone made an architecture tool which could do that but I never downloaded the demo to try it out and see what useful techniques it might contain.

Anyhow I'd walso want to be able to cut holes in walls without creating four cubes I have to worry about moving and having all these extra lines to look at.