Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bevel Curve node. #2442

Merged
merged 13 commits into from
Jun 10, 2019
Merged

Bevel Curve node. #2442

merged 13 commits into from
Jun 10, 2019

Conversation

portnov
Copy link
Collaborator

@portnov portnov commented Jun 9, 2019

This is more or less an analog of standard Blender's "bevel a curve" functionality.
Taper object can be optionally provided.

Preflight checklist

Put an x letter in each brackets when you're done this item:

  • Code changes complete.
  • Code documentation complete.
  • Documentation for users complete (or not required, if user never sees these changes).
  • Manual testing done.
  • Unit-tests implemented.
  • Ready for merge.

@portnov
Copy link
Collaborator Author

portnov commented Jun 9, 2019

Screenshot_20190609_194045

Screenshot_20190609_152524
Screenshot_20190609_153333

@portnov
Copy link
Collaborator Author

portnov commented Jun 9, 2019

Screenshot_20190609_154344

@portnov
Copy link
Collaborator Author

portnov commented Jun 9, 2019

Screenshot_20190609_163332

@portnov
Copy link
Collaborator Author

portnov commented Jun 9, 2019

Screenshot_20190609_164709

@portnov
Copy link
Collaborator Author

portnov commented Jun 9, 2019

Screenshot_20190609_183617
Screenshot_20190609_183728

@Durman
Copy link
Collaborator

Durman commented Jun 9, 2019

Great node.))
I see we have our own mesh data structure now. 🚀
I have asked before about using named tuple for vectors before. Zweffii says that this will slow down computation. Is it possible that with such data structure we can have similar effect?

@portnov
Copy link
Collaborator Author

portnov commented Jun 9, 2019

Well, actually, it does...
But I think it's better to optimize this structure, than to have more verbose code in the node...

@Durman
Copy link
Collaborator

Durman commented Jun 9, 2019

In the circumstances I think there is a point to start to talk about new socket - Mesh. It could decrease extra connections between nodes, and probably to decrease complexity for newcomers.

@portnov
Copy link
Collaborator Author

portnov commented Jun 9, 2019

Well, that definitely goes to "after 2.8" milestone :)

@Durman
Copy link
Collaborator

Durman commented Jun 10, 2019

And one more question about own class of mesh. Would not it be repeating of already existed Bmesh class of blender?

https://docs.blender.org/api/blender_python_api_current/bmesh.types.html#module-bmesh.types

@portnov
Copy link
Collaborator Author

portnov commented Jun 10, 2019

Yes, it does partially repeat the same functionality. My hope was that, since my class implements only very basic functionality, it will be faster than bmesh (each method of bmesh is a call from python to C part of blender).
This hypothesis still requires confirmation from profiling results. Will check.

@portnov
Copy link
Collaborator Author

portnov commented Jun 10, 2019

Checked: no, bmesh is actually faster (about 3x). Will rewrite to bmesh.

@portnov portnov merged commit 078aaac into master Jun 10, 2019
@Durman
Copy link
Collaborator

Durman commented Jun 11, 2019

I have extra question about Taper Verts socket. I haven't understood what data expected for running with scaling. I try to use radiuses of curve for scaling. Is it possible?

2019-06-11_11-15-56

@zeffii
Copy link
Collaborator

zeffii commented Jun 11, 2019

ported just now, because i wanted to try it :)

@zeffii
Copy link
Collaborator

zeffii commented Jun 11, 2019

while bmesh structure is fast, it does not guarantee face/edge index consistency - and this is why we do not use that pervasively or as a first class socket.

@zeffii
Copy link
Collaborator

zeffii commented Jun 11, 2019

( i didn't port over the docs yet ..)

@Durman
Copy link
Collaborator

Durman commented Jun 11, 2019

This is more or less an analog of standard Blender's "bevel a curve" functionality.

It looks like more then less.))

2019-06-11_11-52-20

@portnov
Copy link
Collaborator Author

portnov commented Jun 11, 2019

@Durman , for taper object it expects a curve elongated along the orientation axis (for example, Z, if your bevel object is in XY).
List of radiuses is not enough, since it is not known which Z coordinate corresponds to which radius.

@Durman
Copy link
Collaborator

Durman commented Jun 11, 2019

node tree

2019-06-11_12-06-58

bevele curve node

@zeffii
Copy link
Collaborator

zeffii commented Jun 11, 2019

image

@Durman
Copy link
Collaborator

Durman commented Jun 11, 2019

Using f-curve for scaling
2019-06-11_12-56-35

@nortikin
Copy link
Owner

it will work with SN toe node generator

@zeffii zeffii deleted the bevel_curve branch February 24, 2021 11:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants