Extrude along spline in 3d studio max

3d, 3dmax

As many of you I do enjoy working with an “extrude along spline” tool.
It makes your modeling so much faster in some cases, and it has
flexibility to achieve various results fast. I found it very good when my
task is not very constrained, when I work with something that I can change and create at my will.
But Some time ago I needed to do something more precise. To be exact i had to
do some lines on a sphere surface. I did remembered nice tool we have in NURBs arsenal which is called “create cv  spline on surface”. Now that i had my splines on a surface i needed to use them as splines for extrusion in my model.  And then I had some troubles with extrude along spline tool.  It just doesn’t seem to actually follow given curve, or to be more precise, the result is same as the curve, but its orientation is all wrong.
And then I had to find how to fix it. So if any of you happen to have same problem
here are some screen shots with a problem and its solution.

 

object and the spline

object and the spline

 

Just a picture of an object and a curve.

extrusion

extrusion

 

 

 

 

 

 

 

 

 

 

 

 

So we select faces and go to extrude along spline, and we choose our spline.

 

aligning

aligning

“Align
Aligns the extrusion with the face normal, which, in most cases, makes it perpendicular to the extruded polygon(s). When turned off (the default), the extrusion is oriented the same as the spline. To Face Normal, the extrusion does not follow the original orientation of the spline  it’s reoriented to match the face normals, or averaged normals for contiguous selections. The Rotation option is available only when Align To Face Normal is on.”  description from 3dmax help file.

 

rotation

rotation

 

“Rotation
Sets the rotation of the extrusion. Available only when Align To Face Normal is on. Default=0. Range=-360 to 360.” again, from 3dmaxs help.

make it first

make it first

 

So here we

select the vertex which is closest to extruded polygon so we can make it “first”

wuala!

wuala!

 

 

 

 

 

 

 

 

 

 

 

So we have it. Now our extrusion actually follows given spline. This seems to solve my problem. Hoope it helps you too.

 

 

VideoTrace – 3D modelling using real video

3d, News

It was quite a long time that i found this video somewhere and it did impressed me.  Here we are talking about 3d modeling. actually about very fast skechup like 3d modeling interface based on filmed video. Now definitely it cannot be a solution to all modeling needs, but one could benefit from such fast prototyping tool. please have a look at the video, it shows everything rather clearly.  If anyone knows anything about future of this product / research, please drop me a line in coment,

thanks.

more about booleans

3d, 3dmax, ideas for thesis, research

I recently had an idea for a small animation.
I was thinking to use some moving objects, which would generate “blob mesh”
but all of it should be contained in one form or shape. I know its hard to understand what I wanted to do, but that does not mater, while
here i am concerned only with technology, or rather a way to do it.
So i was thinking to use boolean thingy to “contain” my object. or rather to cut parts of it which go out of my “container object”.
And I noticed that it seems to be impossible.
my plan was to use animated object to generate a blob mesh.
and all of it should have a very specific shape, which would have been rather impossible to make, but very easy to cut using boolean.
But it seems boolean is not existing as a modifier, only as a separate object, which I find quite disturbing.
Why can it be as a modifier? Might be the reason is unstable topology of resulting mesh? or its not implemented cos of computing time? i noticed that using booleans with something that has more then 10
vertexes become quite slow :) (well numbers here are somewhat ironic obviously)
so be it, but still I want it functioning. it can have big annoying message “are u crazy” or something… (are u sure u want to proceed and count each boolean operation per frame)  Anyways it could be only calculated each frame separately, almost as a different object.
But now, how can i do it? basically all I can imagine is to create my animation, lets say its 100 frames. and to perform boolean operation on 100 copies of my animated object, and render, or use only one
of these resulting objects per frame. but it would be a madness. any ideas?????

implicit surfaces, aka blob mesh, and metaballs. PART II

3d, ideas for thesis, research

So as we can see in a previous post (if we read comments) there where some concerns about my proposals validity. Mainly Delt0r raised some valid questions. therefore i have been struggling to improve my initial idea, and here is what i came up with. Now, its still has some flows. and questions. but its for u to judge, sins i have no clue about maths, and here its quite important, i mean the math.

so the idea is this.

A. we have a mesh. *(base mesh) which we will use to to determine where the “blobs” appear.

B. we will get the normals of each vertex.

c. then the slicing planes should be generated. (here u can look at my old post or drawings beneath)

here comes the first problem. what i want to find out – is there a way to limit this “slice plane’s ” effect. here no one will understand me, so lets have a look at the picture:

screanshot of blobmesh section in max

screen shot of blob mesh section in max

Here we have a blob mesh, and a slice tool. the white plane is a slice plane, and green line is outline which is generated. the problem is that the green outline goes out of boundaries of slice plane, and correct me if iam wrong but iam sure algorithm behind this procedure works this way. so what we would like to have here would look like this:

blob mesh, facke intersection

blob mesh, fake intersection

Ok how to do it ? i have no clue. It might require rewriting all algorithms behind this operation, or doing it old way, and then subtracting unneeded parts. which is probably easier.

so now lets imagine our slicing works like we want it, and lets move on.

so in order to understand my “hand” drawings here is another diagram for explanation:

normals

normals

so this diagram shows a mesh we will be thinking about. in next drawings i draw only 3 vertexis out of this mesh. In this image we can also see averaged normals (left)cos normally each plane is plane :) so all 4 vertexies should like in image on right. but we can get average values.

how to make planes

how to make planes

you can enlarge this image to see better. but the idea is to make planes for each vertex separately.

so here as well we have problems. first of all we would want to arrange planes so the would make a “continuity” i mean they would go like this: /\/\/\/\/\/\ shit i have no idea how to explane…. look at the drawings again. chm…. please tell me if anyone understands what i am talking about ? ah? anyone?

so and last step would be to “weld” vertexies who are very close to each other.

again i wonder how easy it would be to make so many “restricted” planes for slicing.

but from what i understand, if it would work it could improve mesh topology or?

any ideas?

implicit surfaces, aka blob mesh, and metaballs.

3d, 3dmax, ideas for thesis, research

ok, its a long time. so some thoughts on implicit surfaces and their topology. so why do we talk about it in first place, its becouse of its ugly topology. metaballs are so cool, but hardly usable in animations and in other fields cos of irregular and ever chaging mesh topology, so what do we do? lets think.

first, a description of implicit surface as i understand it.

2.2.3 Implicit surfaces (Bloomenthal 1987)

Implicit surfaces are also known as “Metaballs”, “Blobbies” or “Soft objects”.

Implicit surface is a technique first introduced by Jim Blinn in 1980. The idea is to have control objects, which determine the resulting surface. Each control object generates a sphere around itself. When two or more controller objects are close together, the resulting surface will “melt” together. So instead of two spheres one will have two spheres which are connected and form a “blobby” single surface shape. How much the resulting surfaces blob together is a result of distances from controlling objects and of weights of these control objects. (Maestri. 1999 43-44)

so i had few ideas on the matter. pls look at a picture and tell me what u think.

ok. now as far as i understand the poligonization of such mathematical substance :) as metaball, it works like this (and pls correct me if i am wrong) the algorithm “checks” certain points in worldspace to see if that point is in or outside of this mathematical descriptio0n of metaballsurface. so basically, user determines “resolution” or level of detail he or she wants, and based on that, algorithm generates planes, to see where are boundaroes of this object in that particular plane. and planes are generated in x, y, and z. so pls look at picture beneath. so what i thought of is, why user is not able to determine how these planes are distributed and aligned? why dont we have such simple control as in uv ordinates, u know we would choose box, cilinder, sphere just like in uv layout (imagine box uv layout as a traditional plane distribution for imlicitsurfaces).

so people who have read, and understood, some of papers about implicit surfaces, including old john blinns texts, tell me do i bulshit or that could be a very small step towards better topology?

and some links to read more: here

and as usual link to my other website here

4.4.2 Hole Determination Based Upon Overall Tree Structure

3d, 3d Vegetation, ideas for thesis, research

4.4.2 Hole Determination Based Upon Overall Tree Structure

In this method a more advanced hole generator approach is used whereby holes are created at the intersection of big branches. The first potential place is the trunk and first branch intersection. The further the branching is from the trunk the less reason for a highly detailed model, therefore there should be a limit, and intersections between small branches should not generate holes and cracks. Another good position for possible holes could be the beginning of the roots whereby a hole is determined in an area where most of the vertices angles are low also in places where the roots meet the trunk’s surface.

Now that I have described the tools and two possible methods for hole detection I will provide the necessary steps for this process. The proposed process of hole generation is based on 3d studio max 9 work flow and tools, but could be easily implemented in any other 3d modeling application or created as a stand alone solution. For the sake of simplicity random vertices on a polygonal plane will be used, instead of vertices with low angular levels in tree trunk model.

The first step in hole generation is to select a candidate vertices group, which should form a hole. After the selection is done a chamfer tool is applied. The value which describes the distances where new vertices are created, could be half of an average edge length of selected vertices’. The next step would be to connect newly created vertices via the chamfer tool. The connection tool creates new edges between newly created vertices. Edge selection is converted to a polygon selection. See figure 33 where it describes the fourth step.

max hole

Fig 33. Proposals visualization.

Fig 33.first four steps in hole creation. The red dots represent selected vertices, red lines selected edges, and red shaded area represent selected polygons.

As Figure 33 shows the resulting polygon selection is not accurate. This is due to the fact that the edge selection conversion to a polygonal selection includes all neighboring

polygons. Polygonal selection should be shrunken to get the desired result.

max hole

Fig 34. Proposals visualization.

This is shown in Figure 34. The next step is to erase all selected polygons, and select the remaining edge outline and conduct an edge extrusion. The last step shown in Figure 34 represents a subdivision algorithm applied on a mesh.

The subdivision algorithm not only generates more detailed mesh structure, but also softens the edges of it. The steps I have described are rather easy to perform due to the ability of 3d studio max to remember the last used selection and convert vertices selections to edge or polygon selections. This process should be possible in any 3d modeling software, but it might include a different order of steps, or additional steps required to achieve the same result.

Figures 33 and 34 show steps which are very easily preformed manually. But the steps are also simple enough so that the actions could be automated. To manually create a hole as shown in Figures 33 and 34 it took around 5 minutes. But if a real trunk model was used with high mesh density and many holes to generate, this process could be very long.

My recommendations if implemented would decrease the amount of time involved in current tree generation.

————————-

You can visit my web page here

dont like english? u can (try) readig it in lithuanian or anny other language here! alternative, has no lithuanian :(

Proposal for Automatic Tree Trunk Generator

3d, 3d Vegetation, ideas for thesis, research

Chapter 4: Proposal for Automatic Tree Trunk Generator

This Chapter outlines a proposal for an automatic tree trunk generator. The first section focuses on the shape of a tree trunk and outlines six steps involved in the process of trunk generation. What follows describes the biological origins of a hole in a tree trunk as well as a proposal for automatic hole generation and possible tools for this approach as part of a trunk generator.

4.1 Overview of Trunk Shape

There are many solutions for increasing a 3 dimensional tree’s complexity so that it reflects the natural complexities we see in nature. For example recently there has been a great deal of research done in bark generation in order to achieve photo realistic results in tree simulation. Yet there is a lack of solutions regarding overall trunk shape. Trees in reality tend to have not only complex bark shapes, but also complex trunk structures and in older trees trunks these structures are much more complex, and harder to describe. Most tree generators create quite simple tree trunk shapes. This can be observed in Figure 26 which is screenshots generated by the application Vue6.

Fig 26. Generated using Vue6 personal learning edition.

Fig 26. Generated using Vue6 personal learning edition.

As we can see from Figure 27 a natural tree’s trunk shape can be much more complex .

Fig 27.  Pictures taken in Berlin 2007.

Fig 27. Pictures taken in Berlin 2007.

In order to achieve a more complex tree trunk surface and shape I propose a new trunk surface simulation strategy. This strategy would increase the speed of this process greatly as well as improve upon current tree generators. The idea follows and expands upon a traditional cylindrical extrusion approach. Tree trunks or branches in 3d tree simulators are usually treated as cylinders. Usually the cylinder begins wider and proceeds to become narrower.

My approach follows the same idea yet generates a more detailed result. The general concept is to combine many cylinders with different properties and shapes to generate one shape. In my proposal the cylinders are slightly off set from the center of the trunk, and the result is created by grouping shapes to create the tree trunk’s outer surface. The defining step is the removal of all inner parts of cylindrical shapes which intersect. The result of this unifies the surface thereby resulting in one trunk shape. The next sections will describe the overall steps in detail.

you can also wisit my portfolio.
dont like english? u can (try) readig it in lithuanian or anny other language here! alternative, has no lithuanian :(

3.4 Anisotropic Polygonal Re Meshing

3d, ideas for thesis, research

Ok, so we looked at some research done about tree generation.
Now one or two articles about some 3d techniques, which might at first glance be seen as irelevant to trees,
but you will see how it is relevant when I will discus blobmesh (metaballs, implicit surfaces) in tree generation.
So as we all know implicit surfaces solutions result ugly mesh topology, and here is a nice idea how to make topology “right”.

*(if my short overview of this paper is unclear, please have a look at original paper, sins i am not a mathematician, some stuff is hard to understand for me too.)

——————————————

One problem in 3-dimensional modeling for animation and film special defects is mesh topology. In order to correctly animate surfaces which undergo morphing transformations, the topology of the mesh, in other words the structure of polygons and the way they are interconnected, must be correct. This means it must follow certain rules or requirements. One of the requirements is to have a mesh which consist of quads polygons, rather then triangular polygons. This brings up another important term in 3-dimensional animation and modeling which is edge loops. This term is not scientific and used by modelers.

The edge loop is not exactly a technical term, but rather jargon used by artists. It is hard to determine what is an edge loop and what is not. The edge loop is a certain way polygons are arranged together. The idea is that the main visual or underlying structures of an object which is being modeled would be represented in a polygon arrangement. The polygons no longer define only the surface approximation of an object, but also reflect the biological or mechanical underlying structures of the represented object. When an object is animated it deforms, and in order for the object to deform realistically its structures (polygonal in this case) must represent the structures and movement which exist in real object. For example, a correct mesh topology of a human body should contain polygons which represent an approximation of the human body’s volume correctly, and the way the polygons are interconnected should represent the main muscle structures. This method provides more realistic human body animation, due to the more convincing muscle movements.

When 3-dimensional objects are scanned from real life objects and usually outputted from a 3d-scanner, the mesh is irregular and does not form or represent any certain structure. The vertexes in the mesh are distributed more or less equally along the complete surface. In film or animation, such objects are usually modeled manually (Boudon 2006). The scan is used only as a reference, and the modeler has to create an object from scratch, while creating a correct mesh topology. In other words, the scanner scans only the surface without any real ability to interpret inner structures of that object. Figure 25 illustrates this.

The same problem exists with implicit surfaces, since implicit surface polygonisation topology of a mesh is quite messy and it is very hard to animate such surfaces, unless they are polygonised for each and every single frame separately (see section 2.2.4, for a short description of implicit surfaces).

Some very interesting research has been done concerning Anisotropic Polygonal remeshing, or in other words retopologisation of polygonal meshes by Alliez, Cohen-Steiner, Devillers, L’evy and Desburn. In their paper “Anisotropic Polygonal remeshing”, the authors propose a method to correct bad or irregular mesh topology (Alliez et al. 2003).

This method employs natural anisotropy meaning dependent on the direction of a given surface and tries to mimic the way an artist would create a 3 dimensional object by using the minimum number of surface elements to create a detailed surface (Alliez et al. 2003). They developed an algorithm which inputs the existing mesh, and estimates the directional fields of a given surface at each vertex. Then using the calculation of the directional fields, the algorithm estimates the minimum amount of curves necessary. Meanwhile, the algorithm creates curves which are always parallel in order to create an effective mesh topology. In the intersection of the curves, the algorithm then generates vertices. After that algorithm generates a mesh using the created vertices and direction curves as guidelines (Alliez et al. 2003).

Anisotropic Polygonal RemeshingFig 25. Picture taken from: Pierre Alliez, David Cohen-Steiner, Olivier Devillers, Bruno Lévy, and Mathieu Desbrun 2003. Anisotropic Polygonal Remeshing. ACM SIGGRAPH 2003 Papers SIGGRAPH ’03, Volume 22 Issue 3

As shown in figure 25, the overall surface shape of the model remains the same, but the number of elements dramatically decreases. Also the topology of the mesh is much better and resembles one which one would expect was created manually. This method is very valuable in 3-dimensional modeling and could potentially serve for re-meshing virtual models generated by 3-dimensional scanners or irregular mesh topologies created by implicit surface polygonisation.

you can also wisit my portfolio.