Pages

Tuesday, August 31, 2010

Running 3DS Max on other OS

If you like to see Max running on other OS (such as Linux), add your voice to Autodesk's survey.

Monday, August 30, 2010

Create Clouds with PFlow


One of the recent tutorials at CGRats.com named "Create Realistic Clouds in 3DS Max" show how to create clouds using Particle Flow Source. I'm not sure why they call it "realistic"... maybe a lot of tweaking with the opacity map settings could rid as of this sharpen render result?... Also, this approach is a render time consuming.

Thursday, August 26, 2010

Visual Effects Tools for Architectural Visualization


Series of video tutorials by Louis Marcoux include:
  1. Rigid Bodies
  2. Constraints on rigid bodies
  3. Deformable bodies
  4. Advanced cloth setup and animation
  5. Static Particles
  6. Dynamic Particles
  7. Using Hair modifier for grass

Cartoon shader


A cartoon shader tutorial at TrueCG.

Tuesday, August 24, 2010

Window Cracking with PFlow


A new video tutorial by Joe Gunn that start enticing but finish incomplete.
I learn nothing from Joe this time :/

Friday, August 20, 2010

plugin3D 2.5 is free


Cubicspace announce that their last version 2.5 of plugin3D (alias RTRE - realtime rendering engine) is now free. It's compatible with 32-bit Autodesk 3ds Max 2009, 2010 or 2011.

Tuesday, August 17, 2010

Select object less than X size

This is well discussed tip where MAXScript assistance is necessary, but I see so it still appear as question into the forums. Well, how to select all objects smaller than some certain volume size? Into the MAXScript Reference has a good example function to measure the object volume. The example function in the help return the volume and center of mass, so I was lightly modify it to return only the volume size.
fn CalculateVolume obj = 
(
local Volume= 0.0
local Center= [0.0, 0.0, 0.0]
local theMesh = snapshotasmesh obj
local numFaces = theMesh.numfaces
for i = 1 to numFaces do
(
local Face= getFace theMesh i
local vert2 = getVert theMesh Face.z
local vert1 = getVert theMesh Face.y
local vert0 = getVert theMesh Face.x
local dV = Dot (Cross (vert1 - vert0) (vert2 - vert0)) vert0
Volume+= dV
)
delete theMesh
Volume /= 6
Volume
)
Next, will made another function that to select the objects...
fn selectObjByVolume volLimit = 
(
select (
for obj in geometry where \
CalculateVolume obj <= volLimit collect obj
)
)
... and here is the example usage:
selectObjByVolume 337

Enjoy!

Monday, August 16, 2010

3D Monster


Detailed 3ds Max tutorial for beginners wanting to learn the basics of polygon modeling.

Sunday, August 15, 2010

Poly Average Normals


I had not thought of (until now) whether such a script would be interesting for the general public, but after I saw the script of zOffTy, I decided to upload my version too.


The version of zOffTy is nice too. It operate on selected faces. My version use my custom "smart selection" that I found as good time saver, especially for poly objects with many faces. Check both versions (zOffTy Average Normals & my Poly Average Normals) and have fun ;-)

Saturday, August 14, 2010

Parameter Collector


A video tutorial by Alessandro Cangelosi. He show the base usage and benefits of this 3ds Max feature. With Parameter Collector you can create temporal UI with all needed params. That's a good feature for non scripter users. Also it's worth to use the Parameter Collector instead of scripting, because all kind of "tweaker" scripts online which try to "replace" it are not so clear, not so stable and they are too limited.

Friday, August 13, 2010

Creating Grass with Particle Flow


A video tutorial shows 2 manners to create grass with Particle Flow - by filling objects surface or by using particle Birth Painter.

Base tips with getKnotPoint

At the forum topic into Area.Autodesk.com I see a question related to MAXScript function getKnotPoint which return the coordinate of knot in shape. The topic start with a birth script operator but is more closer to the getKnotPoint usage, which is come in use for any operations with shapes via MAXScripts. The birth script operator itself is a modified version of the old (but nice) Bobo's example that position each particle on a vertices of poly or mesh, and the modified version intended to do the same but on knot point of a shape. So, the getKnotPoint required 3 arguments - shape, spline index, knot index. That mean here needed double loop - for each knot in each spline. If the shape has only 1 spline like the Circle for example, then the single loop is enough --
c = Circle()
convertToSplineShape c
theKnots = for k = 1 to 4 collect (getKnotPoint c 1 k)

For a shape with more than 1 spline we need to know the number of the splines, which we get with numSplines function. Before make our double loop, I need to note that NumKnots function has a second argument which is optional, but is important for our case. If we not supply the second argument the NumKnots will return the number of all knots in the shape. But to write compatible with getKnotPoint loop, we need to get knots count per spline! So, lets see this with simple example using Donut (it has 2 splines with 4 knots on each of them):
dn = Donut()
convertToSplineShape dn
theKnots = #()
for Sp = 1 to (numSplines dn) do
for k = 1 to (NumKnots dn Sp) do
append theKnots (getKnotPoint dn Sp k)

And just for reference - here is how the mentioned birth operator w'd like:
on ChannelsUsed pCont do
(
pCont.useposition = true
pCont.useTime = true
)

on Init pCont do
(
global pflowguide = $guide
)

on Proceed pCont do
(
if pflowguide != undefined do
(
t = pCont.getTimeStart() as float
theKnots = #()

if t <= 0 do
(
for Sp = 1 to (numSplines pflowguide) do
for k = 1 to (NumKnots pflowguide Sp) do
append theKnots (getKnotPoint pflowguide Sp k)
for i = 1 to theKnots.count do
(
pCont.AddParticle()
pCont.particleIndex = pCont.NumParticles()
pCont.particleposition = theKnots[i]
)
)
)
)

Note that the script is written for an existing shape named "guide", that mean if you wish to use this script then (A) you need to rename your shape to "guide" or (B) you need to edit this line in the script:

global pflowguide = $guide


That's all. Cheers!

Wednesday, August 11, 2010

Phoenix Fluid Dynamics


The new grid based simulator (for 3ds Max 9 - 2011) for fire, smoke and haze Phoenix Fluid Dynamics is officially released by ChaosGroup. As I read, some Phoenix features will benefit only VRay users.

Monday, August 9, 2010

Stone Placement Tools 1.0


Stone Placement Tools 1.0 is a scripted tools collection to create procedural stone patterns. The script creates stone walls, quad stones pavements and irregular stone patterns for both walls and floors, and automatically bakes normal maps, AO maps and height maps for realtime use.

Sounds promising, I'll test it :)

SuperMesher

Product description (quote from the Boomer Labs web site):

"SuperMesher is a 3DSMax plugin that allows you to cache animated geometry regardless of its topology and number of objects including pFlow particles. The cache is baked out to a separate file which can be loaded into any version of MAX 2009 or higher. No reference is held to the original objects so they can be deleted or modified without consequence. Because the result is one single mesh, SuperMesher automatically generates appropriate material IDs and Multi-Sub materials."

Wednesday, August 4, 2010

Out of Memory issues


Some time ago one of the Atodesk's technical staff (don't remember his name) had written a long lecture on minimum requirements for 3dsMax. He had inserted a note of the importance of virtual memory settings, but who knows why he did not want to share how to did this. Well, after quick googling I found the answer myself. Today I accidentally came across this Mental Ray blog and I see so there is a topic as well about Windows virtual memory settings.

Tuesday, August 3, 2010

PAP Pro 4.0 is released for free


The last version 4.0 of Plastic Animation Paper (a program for 2D animation (that I never heard before)) is released for free. 12 tutorials available as well for new users.

Monday, August 2, 2010

Apply Decals using a Composite Map


A quick technique to applying decals written by Tudor Nita.

Skinning in 3ds Max Animation with Biped


The chapter from the book 3ds Max Animation with Biped by Michele Bousquet and Michael McCarthy.

Sunday, August 1, 2010

Speed Modeling a Head in 3ds Max 2010


A video tutorial by Jaime Maestro on a "speed modeling" of a head, starting from a plane.