Page 9 of 38 FirstFirst ... 7891011 19 ... LastLast
Results 161 to 180 of 745
  1. #161
    thanks for the 2.4a update fixes :-)



  2. #162
    Sorry for the bump! I just had to thank you for providing us with such an awesome script ^^



  3. #163
    Wanted to express my gratitude for this wonderful script, I've been using it recently for mechanical modelling and it has made things so much easier and fast. Its like a beautiful kind of poly-NURBS hybrid.

    And have mainly two suggestions for future versions that I think would make it even nicer, and hopefully won't require much work to implement. Made a mockup here:
    http://img214.imageshack.us/img214/2...suggestion.png

    The last method described in the mockup is already possible doing the steps by hand together with Looptools.



  4. #164
    Member Crouch's Avatar
    Join Date
    Oct 2004
    Location
    the Netherlands
    Posts
    1,414
    First of all thanks to all the people who are currently using LoopTools. It's always nice to get feedback.

    Eclectiel: that's a very good mockup you made. It's really helpful to me.
    - The option to limit the curve to the selection boundaries shouldn't be extremely hard to implement and I'll add it to my todo-list for a next version. It's one of those things that after they've been pointed out they seem obvious to be useful, but somehow you didn't think of before.
    - Taking "sides" into account will be harder to code. Something similar was already suggested back in March, but wasn't really feasible in blender 2.4x Hopefully when bmesh is implemented in 2.5 it'll be easier to do. So I'll keep it in mind, but no promises on it.
    - Selecting only keypoints is a nice idea, which should save a lot of time for artists. Implementation is probably a bit harder than limiting to selection boundaries, but I'll try to get it into some next version.

    About the new version: I'm pretty certain the new version will be for Blender 2.5. At the moment I'm working hard on learning the new python api and exploring its limits. Unfortunately bmesh isn't ready yet and I'm a bit hesitant to start writing the new LoopTools version without it, as I'll have to change big parts of the code once bmesh is merged with normal Blender. So for the moment I'll continue experimenting with the new api, which will hopefully enable me to start work on the script right away as soon as bmesh is ready (I'm hoping this will be about February/March, based on this timeline and the mailinglists).

    Hopefully you're not too disappointed that it will still be quite a long wait.



  5. #165
    Don't worry, delays are always expected and respected when it comes to work on spare time.

    I really thought it could be feasible to do since it is already possible to do with the actual version but doing each step by hand. So I decided to give it a try, and could manage to implement (not sure if in the best possible way) the "control-points" guided surface (3rd idea in the proposal) and automatically works for the other idea (sides selection).

    I love this tool, is great for mechanical surfaces where you need to smooth out the control points of the base mesh to make them look rigid instead a some kind of a flinstones' vehicle.

    Here is what I could achieve until now (WIP, for Blender 2.49):
    http://www.4shared.com/file/16618959...s_surface.html
    (check "curveloop" function, I think all the modifications were just in that one)

    It uses the Curve interface but works very different than the actual Curve tool. I just put it in that place for testing.

    In escence what I did is a two steps method using your functions:
    1. Choose one loop from a selected vertex and find all the parallel loops which have selected vertexes. And curve all of them.
    2. And then use those loops as if they were fully selected in your actual curve-surface method with full loops

    Pretty simple, and reusing most of your work.

    What's needed now is the limit to "selection boundaries". For that I was hoping the vertexes to be sorted, so I could send a parameter (maybe just a boolean to limit modifications to selection) to the function that curves the vertexes, and make the modifications stop when all the selected vertexes where moved.
    If vertexes are sorted and it starts in the first selected vertex, when all the selected vertexes of that loop are done, you reached the boundary.

    But that is just the plan... not sure if in practice will be possible that way. If you have any advice for this, it would be welcome.

    The script I'm sending, feel free to include it or throw it away if you like a different way to implement it. and is just a WIP that needs some retouches in the UI aspect and of course it should not be in the "curveloop" function.
    Just started working on it and wanted to share the progress.



  6. #166
    Member Crouch's Avatar
    Join Date
    Oct 2004
    Location
    the Netherlands
    Posts
    1,414
    Eclectiel: interesting modifications you made. Something I noted is that it only works correctly if all 'keypoints' are on the same lines (as they are in your example image).

    You also motivated me to actually do some work myself. I've implemented the selection boundaries suggestion (1st idea in your proposal). While I was at it, I also implemented multiple non-connected selections to be affected in one and the same run. The image below hopefully clarifies both of these a bit as it's hard to describe.



    The script can be found here. (this is a snapshot of current development, and isn't fully tested yest)

    Tomorrow I'll try to combine this with the 'keypoints' autosurface suggestion.



  7. #167
    Yeah , that's it... selection boundaries... It's beautiful...

    I didn't have any quick way to implement it and I don't have much time to explrore, so it's great that you came out with the solution.

    But I was exploring a workaround that may have it's advantages: Masking. You set a mask where the modifications should be done (save it in memory), and you are free to select anywhere to do your curves, and it only affects the masked parts.

    Is easier to code (at least I guess, I'm trying now), and it complements the "selection boundaries" alternative.

    Something I noted is that it only works correctly if all 'keypoints' are on the same lines (as they are in your example image).
    It gives better results if the selection is done in key-points of loops like in my mockup, but is also possible to use other vertexes in random places and can give nice results too.
    I think it gets crazy when the selection is done in very near vertexes. In that case the bezier curves become very exagerated.
    But if done right it is possible to use non-looped vertexes.

    I also removed the requirement of more than one vertex selected: Only one vertex and the mask is all you need.
    It worked with the simple grid... now i need to test the mask.

    EDIT: Ohh and another beauty.... vertex groups... (I will try to implement it) the ability to set a vertex group as the group of "key-points". So artists don't even need to do the selection by hand twice

    Imagine a mask, a user-defined set of key-points saved in a vertex group, a couple of tweak to the mesh (using proportional fall-of) hit "Surface" button, and that's all. Keep tweaking and press "Surface". The key-points are all in the vertex group.



  8. #168
    Member Crouch's Avatar
    Join Date
    Oct 2004
    Location
    the Netherlands
    Posts
    1,414
    Adding custom masks will be easy to code, but I'm a bit concerned that the interface becomes too complex for normal users. And it provides exactly the same functionality as hiding/unhiding part of the mesh (which has the added advantages that it has hotkeys).

    Vertex groups are something I think are a better idea. They can be used for limiting the operations (like masks) or as keypoints, like you suggested. I'll have a good night's sleep on it, and I'm looking forward to what you come up with.
    Originally Posted by Eclectiel View Post
    Imagine a mask, a user-defined set of key-points saved in a vertex group, a couple of tweak to the mesh (using proportional fall-of) hit "Surface" button, and that's all. Keep tweaking and press "Surface". The key-points are all in the vertex group.
    That is sounding more and more like a modifier

    I'll continue coding tomorrow.



  9. #169
    That is sounding more and more like a modifier
    Hehe, didn't think it that way. I like that.


    Look at this Blend

    It works with a vertex group for a user defined set of control points. Look how easy is to handle beveled edges without destroying them. Just move some vertexes (with "Vert Grp" option activated) and hit "Go" (twice, I don't know why it needs to be pressed twice right now). It keeps the beveled edges pretty much like NURBS, and the surfaces also feel like that.

    The name of the vertex group is hardcoded because I don't know much about coding UI. But it just needs a text box for the name.

    Also there's need of a design decision for vertex groups. For instance if each tool will have it's own vertex group, or if there will be a global vertex group activated for all tools at the same time, or a global vertex group activated only independently by each tool.
    I guess having separate vertex groups would be better. One for Curve tool and another for Space tool. Circle and Relax tools are more "one-time tools".

    Right now verts.selected() is hardcoded in a couple of places, and it needs to be able to switch between selection and vertex group.
    The script in this blend has that switch inside the curve function, to make it local for each tool. And the vertex group vertexes are assigned in initialise(), kept separated from vsel, and sent as a separate parameter. Trying to make things general but being able to switch that info locally on each tool.
    But I had to hardcode the vertex group in mapMeshes() to make it work for Curve tool, and I believe it will need something more general if that function is used by other tools.


    About Masks, I see your point, and I believe is a good point. So for now I didn't do any masking test.
    Just thinking of the Pros it could have, to see if it's worth to include or not: I see two advantages compared to the "Hide-faces" method: the obvious one, which is that you can keep watching the whole object while you work on the masked zone, and the second is that you can select control-points outside the area you want to modify.
    If you use the "hide-faces" method you loose those points.

    But for the sake of simplicity, and trusting that the new "selection-boundaries" feature will be enough, it can be a good decision to stay without masks for now. And if time proves wrong, it can always be added.
    Also, as you suggest, vertex groups are good for some masking tasks. Not quick masking, but for separating a model in predefined parts (i.e. a car's door, windscreen, trunk, etc.)

    I noted is that it only works correctly if all 'keypoints' are on the same lines
    As for this problem when using random vertexes for surface curving, it made a big difference to use two moveVerts() inside curveloop(). When I didn't use it I had to press "Go" twice to see the appropriate result.



  10. #170
    Made a short video for anybody that would like to know what are these new tools about, and what kind of things can be done:
    http://vimeo.com/8055210

    (Vimeo seems to be compressing it right now)



  11. #171
    Member Crouch's Avatar
    Join Date
    Oct 2004
    Location
    the Netherlands
    Posts
    1,414
    Your video is still being processed, so I can't comment on that yet.

    That Blend which works with vertex groups is really fun to play with. The problem that you need to push the Go-button twice (if you don't duplicate the code) is caused by the mesh not being updated correctly and the values of the splines using the vertices of the old mesh.

    I have now implemented the keypoints feature into the rest of the script, which makes it work with the boundary-feature I wrote yesterday.



    To quickly mark the boundaries of the part you wish to influence, it's easiest to just include the 4 corners of the area you wish to have the tool operate on (on flat meshes).

    And here is the code. (snapshot of development again, not fully tested)

    Basically it does the same as what Eclectiel wrote, and in the same way. But there are two slight differences in the internal processes that might be interesting to note:
    - After the first two runs (horizontal and vertical) it makes a third run (in the same direction as the first run), which gives better results when the keypoints are randomly positioned.
    - Vertices that are moved on earlier runs, are included as keypoints in later runs. This enables the third run and mimics doing it all by hand (as in Eclectiel's suggestion image).

    Eclectiel: So far I've used the code you provided as a good example of what procedures will work. Then I write my own code to get a better integration with the rest of the script and add some twists of my own. I hope you don't mind me using your code in that way.

    Tomorrow I'll try to write the vertex groups feature.



  12. #172
    Member MmAaXx's Avatar
    Join Date
    Jun 2008
    Location
    Tokyo
    Posts
    1,338
    this script s fantastic!

    another awesome tool is the possiblity to select just part of a loop



  13. #173
    Member Michael W's Avatar
    Join Date
    Nov 2007
    Location
    UK
    Posts
    4,930
    Originally Posted by MmAaXx View Post
    this script s fantastic!

    another awesome tool is the possiblity to select just part of a loop
    why not use "select vertex path"? (in the vertex specials menu)
    Mike Williamson
    www.cowtoolsmedia.co.uk



  14. #174
    Originally Posted by Crouch View Post
    Your video is still being processed, so I can't comment on that yet.
    Yea, sometimes Vimeo takes a full day to finish converting videos. But fortunately it's online now.

    That Blend which works with vertex groups is really fun to play with.
    In the video there's a similar example with two "beveled" edges. I think in the video I showed how it works a couple of times more than needed, but the thing is that *it is* fun to play with.

    I have now implemented the keypoints feature into the rest of the script, which makes it work with the boundary-feature I wrote yesterday.
    Could test it today, it works beautifully with the selection boudaries option.

    Basically it does the same as what Eclectiel wrote, and in the same way. But there are two slight differences in the internal processes that might be interesting to note:
    - After the first two runs (horizontal and vertical) it makes a third run (in the same direction as the first run), which gives better results when the keypoints are randomly positioned.
    - Vertices that are moved on earlier runs, are included as keypoints in later runs. This enables the third run and mimics doing it all by hand (as in Eclectiel's suggestion image).
    Not sure if it has to do with this third pass, but I had some strange results using random vertexes with the actual "keypoints" version.
    In this blend file the script at the top is the "keypoints" version and at the bottom is the same version I posted before. Check the different results using that vertexes selection.

    Eclectiel: So far I've used the code you provided as a good example of what procedures will work. Then I write my own code to get a better integration with the rest of the script and add some twists of my own. I hope you don't mind me using your code in that way.
    No problem at all. No one knows this script better than you and thus be able to make everything work well with everything. And if you even add some improvements from your side: that's the beauty of open source



  15. #175
    @Crouch
    Added "Flattening" for curves. Here is a Blend file with the code (the selected part), if you want to include it.

    I used the same functions you use for flattening in the Circle tool.

    (In this example there is also a circle, but it works for any curve)




  16. #176
    Member Crouch's Avatar
    Join Date
    Oct 2004
    Location
    the Netherlands
    Posts
    1,414
    Eclectiel: the strange results you got from the keypoints scripts, is because the bounds button was checked. If you uncheck it, it produces the same result as your code. It does show that there are still some problems though, with the boundaries option.
    My code is also slower (because of the 3rd pass, which is very slow). I'll have to add some code to check if a 3rd pass is necessary and skip it if it isn't necessary.

    Your video gives a good impression of what the keypoints option can be used for. I enjoyed watching it. For people who are interested about what all these recent posts are about, I highly recommend to watch the video.

    Today I added the vertexgroups functionality to the main script. It's available for both the curve-tool and the space-tool. It seems to work well, but if anybody finds any bugs with it, please leave a message.



    You can find the script here (snapshot of development again).

    Flattening is nice, but I'm uncertain that it should be part of the curve-tool. Currently there are already several ways to flatten.

    • Blender's built-in way: make selection --> scale on local axis (s, z, z) --> scale to zero.
    • Using the circle tool: make selection --> set Force to zero --> run the circle tool

    I'll have to think a bit more about this though. Do you have any specific advantages why it should be added to the curve-tool?

    After the weekend I'll continue coding to improve the speed of the keypoints option and to fix the boundaries issue.



  17. #177
    Made some images to show situations where it can make things quicker.

    The idea is to have as less steps as possible, and let the artists have precise results without much precise modeling.

    I tried before the scale-down method using "normal" orientation after selecting a loop, but the normal orientation is not always the appropriate one I'm looking for, sometimes it was very different from what I needed.

    The Circle tool alternative you mention gives good results, and I guess is pretty much what I used in the Curve tool. Although I guess it will be a little hidden for users, and they will have to change tool and change the influence parameter back and forth, which adds several steps.

    I for one see it useful and will be using it, but if you think it may clutter things without enough benefit, feel free to rule it out.


    EDIT:
    I don't really know how you are detecting boundaries, so I don't know if this suggestion will make any sense. But, if the boudaries detection is done while the vertexes are being curved, maybe it could be good to "pre-calculate boundaries". Which means, for instance, to see what vertexes are in the furthest corners and get all the vertexes inside that will be affected (I know it's not as simple as that).
    And using a list with those vertexes, you don't move any vertex outside that list. It may only take one step instead of calculating boudaries in "real-time" for every loop, and thus be faster.

    But I digress, just and idea, I don't know how you're calculating boudaries.



  18. #178
    Member Crouch's Avatar
    Join Date
    Oct 2004
    Location
    the Netherlands
    Posts
    1,414
    During the weekend I suddenly had an idea to improve the speed of all tools: implementing a cache. This won't improve the speed if you run the tool for the first time, but subsequent times you press the go-button it will be a lot faster.
    On small meshes (<100 verts) you won't notice much of a difference, but the bigger the mesh, the bigger the speed increase. So far I've tested it with the circle tool on a mesh with 14k verts and the second time I pressed the go-button it was 75% faster (from 4s to 1s). For the curve tool it is especially nice, in combination with the vertexgroup-input and the keypoints option (saves a lot of time)

    At the moment I've written and tested the code for the circle, curve and relax tool. Tomorrow I'll continue with the space tool. After that, the next things on the list are improving the curve tool (keypoints and boundaries specific) and adding a flatten option.



  19. #179
    Nice idea Crouch
    Keep up the good work mate!



  20. #180
    Member Crouch's Avatar
    Join Date
    Oct 2004
    Location
    the Netherlands
    Posts
    1,414
    Alright, cache coding is done. Speed of the curvetool (with keypoints option activated) is greatly improved and the flatten option is added. I also checked the behaviour of the boundaries option, but it is working correctly. Sometimes it's just difficult to previsualise what the result should be like.

    Here's the code.

    I'm planning on releasing this as LoopTools 2.5 on Friday. By then I should also have updated the documentation. Testing of the code above is highly appreciated, because I don't want to have to release a bugfix version on Saturday. Last minute feature requests and general comments are also welcome.



Page 9 of 38 FirstFirst ... 7891011 19 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •