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:
- Rigid Bodies
- Constraints on rigid bodies
- Deformable bodies
- Advanced cloth setup and animation
- Static Particles
- Dynamic Particles
- Using Hair modifier for grass
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 :/
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.
Enjoy!
Next, will made another function that to select the objects...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
)
... and here is the example usage:fn selectObjByVolume volLimit =
(
select (
for obj in geometry where \
CalculateVolume obj <= volLimit collect obj
)
)
selectObjByVolume 337
Enjoy!
Categories:
MAXScript,
Tip n Tricks,
Tutorials
Monday, August 16, 2010
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.
Categories:
Basic,
Tip n Tricks,
Tutorials
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 --
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):
And just for reference - here is how the mentioned birth operator w'd like:
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:
That's all. Cheers!
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!
Categories:
MAXScript,
Particles,
Tip n Tricks,
Tutorials
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 :)
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."
"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.
Categories:
Render,
Tip n Tricks
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
Sunday, August 1, 2010
Subscribe to:
Posts (Atom)