Game Development Community

UV tools in my Constructor are BATTY!

by Nmuta Jones · in Constructor · 06/27/2009 (8:10 am) · 5 replies

I am using Windows Vista with the first service pack.

I am using constructor 1.0.6

I have a cylinder. When I go to face mode, and I try to do "unify" to Unify texture across all eight faces, sometimes it works, other times it doesn't. When it doesn't work, it destroys the UVs on the object.....making it all grainy or with lines, etc. Undo cannot redo it. It's inconsistent. I have to go to "reset brush" in brush mode and start all over. It really does look like a bug. Even when you try to reset the UVs using numbers (in the spinner boxes) you can never get back to undo the texture problem.

Even with "as one" checked or unchecked, same problem.

If anyone has a fix for this please let me know. It's taking an hour so far to adjust the texture on a basic cylinder!


#1
06/27/2009 (9:31 am)
Cylinders are tricky. I usually get the texture scaled and offset as I need when I create the brush (using the "repeat wraparound" option). That's the only way to really get the seamless wrap-around of the texture on a cylinder without tedious fiddling afterwards.

Some tips that might help:
  • Make your texture scale and UV offsets while creating the brush.
  • When you modify the settings after brush creation you don't want to exceed a total number of faces that wrap past 90 degrees (sometimes 180).
  • You don't really want to "unify" or use "as one" for faces that have contrasting/opposing angles -- it works best for groups of faces that share the same or similar orientation.
  • One more time: the "Repeat Wraparound" texture option when you create your brush is your friend :D

  • Here's a suggestion from Perishingflames that's similar though probably easier to follow than the steps I use
    Quote:
    Simply select all faces on one 90 degree section (so, you would do this four times for a pipe, twice if you are making a half pipe), unify them, align to the face to get rid of any junky uv settings, and then stretch to fit the y-axis (or x-axis). Then, divide by the expected number of texture squares. (So, if it comes out to be 4.908734 after stretching to fit the axis, take out a calculator and divide that number by the texture scale that you would like it to be at to solve for the number of repeats. Then, simply divide the 4.908734 by the number of repeats in the x-scale field of constructor and justify, and it should fit precisely.)
    #2
    06/27/2009 (10:18 am)
    @Michael

    Thanks for the detailed and very astute observations in your post. The "select only adjascent faces" trick alone worked well enough for what I'm doing. It's a little tedious but at least it consistently works. Thanks man.

    #3
    06/30/2009 (7:22 am)
    I tracked this down one day, and I actually know what causes this. There is a feedback loop on the texturing UI - when the Scale/shift/rotation gets updated, it updates the "Texture advanced" u Axis, v Axis down below. When these get updated, they feed back up and update the Scale/shift/rotate again. If there are any rounding differences, then cycle continues to happen until the UV's are all screwed up.
    I've thought about disabling the "texture advanced" pane and removing the updates - I believe this will solve it. However, I didn't because I don't know if people use these.
    #4
    06/30/2009 (7:37 am)
    I use the texture advanced pane. Don't remove it.
    #5
    07/04/2009 (10:42 am)
    I use it too...
    especially for scaling textures on oddly-shaped objects.

    However, I would kill for the ability to stretch/deform a texture onto a surface. Similar to the way that google sketchup allows you to 'pin' a texture, and blender allows you to choose where your vertices are located in the texture. Unless there is a way to do this in constructor that I haven't learned yet? I hope there is or it's in the works, or constructor will not be very useful versus... say... a .map blender export.(Which can deform UV texturemapping)

    anyone know anything about this?