Jump to content

Surface Math?


Adam Ferestad

Recommended Posts

I just got done with the section in my calculus 2 class on calculating volumes of revolved surfaces using integrals and I was wondering how much and where that would be able to be applied in the SOP context of Houdini. It doesn't have to be that in particular, or revolved surfaces, I am trying to figure out how I would go about using some of these more advanced math concepts in my animations and modeling processes? I already have been using some damping functions to control the growth of a forest or the color of a crystal palace (preview of my next tutorial ;) ), but I am trying to figure out if there are any analogs to the Slope or Integrate CHOP which would allow me to take the derivative/integral of the surface directly? I was thinking that there should be something in the VOP SOP, but I have never been able to find anything. I suppose I could make them, if I had a node that performed the function of a Limit in mathematics.

I know that taking the derivative and integral of surfaces are things that are possible, as I met a girl at a conference who was telling me about a project that she did where she made a computer program that would turn any image she put in into a specific artist's style. Some of the things she had were truly breathtaking, especially when you take into account that they were all done with math.

One thing I can think of off hand for a use that being able to do these more advanced maths on a SOP would allow for would be the ability to analyze an object's thickness based on a certain polygon and color it accordingly. This information could also be fed into fracture simulations to help make them more realistic.

I just have to figure out how to do mathematical analysis on a surface. So far the only thing I have figured out how to do is analyze the XYZ coordinates of an object, and not even being able to relate them to the points around them. There seems to be no ability to relate points to each other. Hopefully I am just missing it.

Link to comment
Share on other sites

Hi Adam,

I'm not sure I understand where you're heading, or at least what path you're taking. But I remember well having some of those thoughts when I firs saw revolved surfaces in calculus (that is a revolve sop that can output the resulting volume!!). But actually, I started noticing that what you call (in this case) advanced math, ends up being "basic" math that has to (should) follow certain rules to be solved. See this rules just like pieces of programming code.

One could code out how to solve a ax2+bx+c equation to find out it's roots, or loop through it's points to plot a curve, or even finding some derivatives with a few IF conditionals. Always analysing what you have at hand, where you want to get to, and most important, the way to get there.

Think about how to write those rules. You may solve such problems with expressions or even a certain set of nodes.

I just have to figure out how to do mathematical analysis on a surface. So far the only thing I have figured out how to do is analyze the XYZ coordinates of an object, and not even being able to relate them to the points around them. There seems to be no ability to relate points to each other. Hopefully I am just missing it.

I did a quick search and found these links, I didn't go all they way through so I don't how how helpful they are. Also, take a look at the ray sop, it may also help you.

http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&p=45743&sid=35f5b367079d7d93ac9d63344b1607f4

http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&p=97357&sid=6cad2add2a7c63c1adb47d666e136499

I haven't used houdini for a while now, I'm really getting rusty.

Link to comment
Share on other sites

I am really not sure of what I mean either. I am in calculus 2 right now, so that is my definition of "advanced" since it is the highest I have gone and it is considerably further along than the basic algebras I have done to this point. I am more curious if I will be able to experiment with things I am learning and how hard it will be to implement the concepts in a meaningful way. I am always thinking of things, but I never know exactly how I would go about things.

One problem that someone had a while ago was dealing with the slope of a surface, and I know from basic calculus that a differential of the surface contours should have yielded the information pretty easily, but I could find no way to impliment it.

I can see uses for knowing and being able to manipulate things like that, but I don't know where to look to get at the information.

Link to comment
Share on other sites

I am really not sure of what I mean either. I am in calculus 2 right now, so that is my definition of "advanced" since it is the highest I have gone and it is considerably further along than the basic algebras I have done to this point.

Maybe I used the wrong words.

What I really meant was, "basic" as "fundamental building blocks". We see quadric expressions like I mentioned above (ax^2+bx+c) since highschool and all the way up to god only knows where it ends. It is composed of those simple basic blocks, but the outcome of it that can differ from a simple to complex rule. If you're in calculus II, you have probably studied Conics in Analytic Geometry, the parabolas there are just the same seen in highschool, but remember how complex it can get when you have a conic curve away from the origin, and with a rotation applied ( Ax^2+ Bxy + Cy^2+ Dx + Ey + F = 0 ). The rules in my opinion are the complex bit, specially because of it's length, eigenvectors, etc. But after you fill up the whole page to analyse this curve, you can see that it is all made of the same basic building blocks.

The term Mathematical Modeling, vastly used in your course (at least here in Brazil) goes exactly in applying what I mention. You have a problem, and you have to write out the rules to be used by these basic building blocks.

Try to "reverse engineer" a derivative and see what it's really made of.

4a616ade12f0d8cf48f36d2705ea6bb8.png

ff3e5cd15a96087cf282a48249058927.png

Instead of following the rules of already made formulas, try to solve it by hand. That would be the same way that you use expressions to achieve something in a software like houdini.

From the top of my mind, I'd try to gather points from a surface. 3 points close to each other should be enough for you to have a proximate curve and its expression. From that expression you can find any derivative along the curve. Maybe to much effort for what you need.

Have you thought about the fact that a normal of a point on a surface is perpendicular to the derivative at that point?

Edited by Andz
Link to comment
Share on other sites

I actually hadn't considered that about point normals. That gives me a bit of insight. I guess I will just have to wait a few semesters until I learn what eignvectors and the like are. We haven't touched on vectors at all, so I am anxious for that. I think I should take my time and just learn as much math as i can right now, then try to apply it in a little while. I am still learning lots of ttricks I can do without any math.

Are there any blogs out there that are just that? Little tricks that can be done rather than huge projects. I am trying to keep my own tutorials closer to that end of stuff rather than huge projects that take all day to do. I am still working on the pcales videos, though I am pretty short on time right now, so an even shorter textual explanation might serve me better. For some reason the help cards aren't always that helpful.

Link to comment
Share on other sites

I actually hadn't considered that about point normals. That gives me a bit of insight. I guess I will just have to wait a few semesters until I learn what eignvectors and the like are.

Yeah, there are some different techniques to approach calculus. Some places have Analytic Geometry (vectors+curves+surfaces) as a pre-requisite for calculus. You will probably need a lot of Analytic Geo. for calculus III.

As for eigenvectors and eigenvalues, hum... it can get really complex, but try to think of them like transformations or actions you can apply to values, usually set in matrices. Like rotating, scaling or even sheering a bitmap or a set of points or even a coordinate system, and in as many dimensions as necessary. In the example I mentioned for the transformed conic curve, one of the steps to plot the curve is to find out a new pair of X' and Y' axis (vectors) rotated and translated from the original XY. You will also see a lot of that in physics since bodies tend to fly around in crazy ways :-).

Here is a small video on the subject I just found. I don't know how much sence it will make for you at the moment, it will depend of how much you remember about vectors from highschool physics.

http://cnx.org/content/m10736/latest/

I don't know about any math blog, I used to follow a science one in portuguese with a few math topics, but it stopped last year.

Edited by Andz
Link to comment
Share on other sites

I was actually asking about a Houdini blog, not a math blog. I am perfectly happy taking my time and learning that stuff in classes. I do much better with learning math in class rather than trying to read something online that I might only have a broken understanding of the root concepts.

My claculus cclasses are actually "Analytic Geometry and Calculus #", so they ccover both concepts as they relate to each other. We are going over series right now, so I am trying to figure out where I might use that in Houdini.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...