Andy Moorer is a VFX artist and TD working in the film industry.

Archive for proceduralism

Oct
30

Misc Images

Posted by: | Comments (0)

These are pretty much randomly chosen screenshots and production images, plus some photos, in no particular order…

 

 

 

 

 

 

 

 

 

Categories : 3D Graphics
Comments (0)
Aug
01

Images

Posted by: | Comments (0)

This isn’t anything special, just a slapped-together polygonized ICE/slipstreamVX pointcloud I made a while back.

Categories : 3D Graphics
Comments (0)
Jul
26

Verlet Spring Water Simulation

Posted by: | Comments (0)

It’s been done by better TDs than myself, but a question arose on SI-community so I decided to pull out and dust off a simulation I slammed together during green lantern in a couple of hours, as an example scene. I put this together when we were doing rapid look dev for a “green energy” effect at PLF, where a woman is rescued by splashing into a surface of “water” which then turns into a flood and whisks her away from the fight…

You can find the compounds and the scene used to make this image here.

Categories : 3D Graphics
Comments (0)
Jul
13

GEAR – Use softimage? Get it.

Posted by: | Comments (0)

Jeremie Passerin is a TD and Rigger who has put a huge amount of time, thought and effort into an open source rigging toolset for Softimage, which he calls GEAR.

 

Very cool. But, you say, it’s for softimage and my stinking studio makes me use Maya. Well,  Maya users, have hope. Jeremie has also been beta testing a Maya version, called MGEAR.

 

Let’s face it, there are more animators needing high quality rigs than there are high quality riggers. And rigging takes a lot of time. That’s why autoriggers came into being. If you are laboriously assembling all your rigs by hand and you just want to get to animating, you really, really need to be using a solution like Gear.

Visit the GEAR website

GEAR has the openness and enough well -thought tools to appeal to a dedicated rigging TD while also providing a fast and reliable way for animators to generate sophisticated rigs with a minimal learning curve. It’s modular in design, meaning it isn’t restricted to rigging only humanoids or quadrupeds, and it’s extensible, so riggers can use GEAR as a framework upon which they build in their own particular style.

 

It’s a very well thought out system and highly recommended for small studios and individual animators who need good rigs fast, as well as riggers interested in having the capabilities of an autorigging framework without the desire (or time) to make their own.

Categories : 3D Graphics
Comments (0)
Jun
24

1 minute ICE greebles

Posted by: | Comments (0)

Pretty much the simplest kind of greeble “look” you can make in ICE, emitting simple boxes on a surface with a turbulence on scaling to add interesting variance… Expose the scale parameter in the emitter to add a bit more variance, and you’re there. Needless to say, it’s simplistic at best, but with some AO it still looks interesting…

 

Categories : 3D Graphics
Comments (0)
May
14

Janimation Facial Animation

Posted by: | Comments (0)

This demo shows Janimation’s facial animation methodology. Mocap is run thru face robot for retargeting and to generate some base shapes, which are then sculpted and stored. A rig then uses ICE in some clever ways to blend those shapes as controls are driven by the mocap data (or new data) plus there are some other tricks. While Face Robot is used early in the process, the end result rig is proprietary to JA, and much faster and easier to work with. Cool stuff.

YouTube Preview Image
Categories : 3D Graphics
Comments (0)
May
11

NPR and procedural sketching in ICE

Posted by: | Comments (0)

(This article is a follow up to a thread on the XSI mailing list, showing some experiments I did a ways back with NPR using softimage ICE…)

 


Comments (0)

While taking an excellent math course over at fxPhd someone asked about the math behind Maya’s sphRand command, and it kicked off a back and forth exploration into the difficulties behind getting an even distribution of random points on a sphere. This is useful for any number of applications where random vectors are needed.

[Note: This topic has been covered (better) elsewhere on the web, but I thought it was interesting enough to preserve for myself on this blog. -am]

So how do you generate a random vector in 3D space? The natural inclination is to generate each point based on a simple random azimuth and elevation. But because the circumference of latitudes decreases from the equator towards the poles, the result is an uneven distribution. Generate a few vectors and things will seem fine. But if you generate a large set of thousands of points, you get this:

But we need an even distribution. How about this: generate random values between -1 and 1 for each X, Y and Z. Then normalize those vectors, and again you have a collection of random points on a sphere. But the distribution still isn’t even… you are basically projecting the points of a cubic volume onto the sphere surface:

 

 

You can solve this problem by culling points outside the radius of the sphere (magnitude >1) as they are being generated, and the result is an even distribution on a sphere. This is known as the rejection method, and it works, but it’s inefficient. You are computing a lot of rejected points. Additionally, as a practical matter “N iterations” yields some number less than “N” vectors, making it difficult to specify the total number of vectors to be created by such a function.

 

Enter the trigonometric method (something of a misnomer seeing as how the method involves the integral of the surface of revolution.)

θ = υ(-1,1)

And Φ = υ(0,2π)

Where υ(a,b) is equal to a uniform random scalar.

So, go from Polar to Cartesian coordinates, and you get:

x = cos(θ) cos(Φ)

y = sin(Φ)

z = cos(θ) sin(Φ)

 

And it works.

 

Digression: if you want to get down to the heart of things, getting a random scalar value, or more specifically a repeatable pseudo-random value based on a specified seed, is it’s own challenge. Here’s a snippet of GLSL code, a function written by Stephen Gustavson which generates a “random” scalar value from a scalar seed input… (cos and mod should be familiar…the “fract” function returns the fractional (decimal) portion of it’s input.)

float randomizer(const float x)
{
float z = mod(x, 5612.0);
z = mod(z, 3.1415927 * 2.0);
return(fract(cos(z) * 56812.5453));
}

Categories : 3D Graphics
Comments (0)
Apr
29

Terrain Generation Basis Functions

Posted by: | Comments (0)

Having established a good start on hydraulic erosion, I moved to another area necessary for any good terrain toolkit – establishing a set of basis functions, from which you can achieve a the natural complexity needed by mixing various basis functions based on criteria such as latitude, slope, height, other fractals etc. Each basis function has it’s own character and “look” so to get a good heterogeneous result it’s valuable to be able to draw from a number of different functions. For example, here is a set of simple spheres deformed by a compound in which I use ICE’s excellent worley noise as a basis, which is then iterated through over a user-defined number of octaves, some of which are further modulated by a simplex fractal. You can see the character of the worley noise clearly, but where the simplex modulation comes into play you get a much more interesting result:

 

 

Less “terrain-like” is this output from a reticulation compound, which uses as it’s basis the “computational” noise described by Stephen Gustafson et al:

 

Interestingly, I approached this project having not read Ken Musgrave’s various writing on the subject of terrain generation outside of white papers. Once I did, I found that much of what I have discovered anecdotally he thought through in detail long ago. This is awesome, because it shows that my thinking has validity (after all, there are few who have spent more time and energy on the subject than he) and also because it gives me more threads to pull. I now have a series of compounds at my disposal that do various “terrain stuff,” now I can take a step back and decide how to assemble those experimental compounds into a more user-friendly and extensible set of ICE building blocks…

Categories : 3D Graphics
Comments (0)
Nov
07

Terrain Generation via ICE

Posted by: | Comments (0)

In between other projects I’ve slowly been building a number of softimage ICE compounds which deal with aspects of terrain generation. Here’s a result of two of them: a ridged perlin fractal and an iterative slope-based errosion. Only the basics are in place as of now – for instance I need to change the compounds to optionally deform along the original surface normal as opposed to just a y-up implementation (so you can generate planet surfaces etc) and create a set of nodes that let you blen various types of generation schemes (to get, say, a mix of ridged multifractal and fault-fracture methods.) Other items on my “to-do” list include:

Texture masks based on height, curvature and slope

River generation (I have one approach but it leaves a lot to be desired)

Additional fractal deforms (worley and other cell based schemes, “hill”, variants on multifractals)

Crater formation, ecosystem maps, more refined erosion, and mountain/valley range formation

So, there’s a lot to do. But one step at a time.

Categories : 3D Graphics
Comments (0)

Andy Moorer

Copyright © 2010 All Rights Reserved