So… how exactly will be MCG easy to learn… As denisT mention before maxscript example looks not complicated then MCG node structure.
Another question, can maxscript use some of MCG “nodes” without MCG tool? In other words, can be MCG extend maxscript or not?
As the output of an MCG node can be a modifier, object, maxscript, compound or a utility, and because the MCG node-s are native .NET functions, and because the output can be a maxscript incidentially, you probably can…
So I still doesn’t understand, why are you so skeptic.
You can be sure that you will never write a procedural railway tool in C++ or even in maxscript, because there are limitations in usage for modifiers and objects in maxscript, and because C++ is not designed for that kind of usage. But in MCG you will probably make a procedural railway creation tool, because it’s intuitive, you have the chance to instantly make modifications on it or anything you like, and it’s procedural, for later use. Just like in Houdini… There are tremendous many ways of how you can use this programming language.
The arguments against MCG here would apply for all Graph-editors, Pflow, Shader-FX, ICE and so one. One might argue that a Pflow language would be faster to work with then using the graph editor. And instead of Shader-FX i could also use HLSL. XSI had a nice SDK, so what was the point of ICE?
The idea of Graph editors (imho) is to abstract from the concept of ‘programming’. The further away from the existing SDK/Scripting the better. Connecting reusable building blocks to create new tools and a visual approach to tool design. Not everyone wants to implement tools in C++ or Maxscript. The SDK is big, complicated and not easy to learn. And C++ is a horrible language to work out ideas. And Maxscript…oh mei.
For me MCG is a heaven send that`s for sure.
Another question instead of arguing about a thing that we still haven’t tried yet, because of the lack of resources. When does the reference guide will come for 3dsmax 2016? I can see only the 2015.
Does anyone know it? I cannot wait to learn the proper usage of MCG…
check this video. it a simple modifier is working. it was written on pure mxs. the base map function code is 16 lines of code…
also you can see its UI which helps to understand what it can do.
could anyone reproduce it using MCG? i want to see the graph.
You can be sure that you will never write a procedural railway tool in C++ or even in maxscript, because there are limitations in usage for modifiers and objects in maxscript, and because C++ is not designed for that kind of usage. But in MCG you will probably make a procedural railway creation tool, because it’s intuitive, you have the chance to instantly make modifications on it or anything you like, and it’s procedural, for later use. Just like in Houdini… There are tremendous many ways of how you can use this programming language.
I have to say that is utter BS a procedural railway in C++ or mxs is a pretty simple exercise. half the process doesn’t even need any coding
what can be easier? just compile the cloner example from the article and give the numbers.
and we all will be able to compare mxs vs mcg. i can make c++ version of this plugin… it will take another half hour. but it looks like the street is only one way.
and so what? you want me to write it on mxs?
ok… show us the scatter in work. just a movie.
anyone who has a chance to play with MCG please give us something, anything… simple plugin, performance numbers, screenshot of the graph… just try to proof it’s not a myth but a gift dropped from heaven.
OK… here is rhe graph screen grab and viewport grab.
I’ll post mcg file soon. I need some clean up.
I cloned teapot with 4 segment on torus tieh 24 segs and 12 sides.
Then, I animated rotation.
On my i7-2600, I got 1.2fps.
That ‘transform mesh’ compound probably had a non-parallel map in it somewhere, so there you can gain some speed.
And the combineAllmeshes node is a simple linear one, if I have some time today I’ll do a multi threaded cluster attach compound which should scale better.
here is very rough version of the plugin
plugin simpleObject TeapotScatter
name:"TpScatter"
classID:#(0x193cc23b, 0x193cc2db)
category:"How to with denisT"
(
fn isGeometry node = iskindof node GeometryClass
parameters params rollout:params
(
target type:#node ui:ui_target
)
rollout params "Parameters"
(
pickbutton ui_target "None" width:144 autoDisplay:on filter:isGeometry align:#right offset:[4,0]
)
fn _attachMeshes meshes =
(
attach = meshop.attach
n = meshes.count
while (num = n/2) > 0 do for k=1 to num do attach meshes[k] meshes[(n -= 1) + 1]
meshes[1]
)
fn _meshTransform mesh tm =
(
for v=1 to mesh.numverts do setvert mesh v ((getvert mesh v) * tm)
mesh
)
fn _getVertexTransform mesh v =
(
translate (arbaxis (getnormal mesh v)) (getvert mesh v)
)
mapped fn freeMesh mesh =
(
free mesh
delete mesh
)
on buildMesh do if not isGeometry target then
(
mesh = trimesh()
)
else
(
--t1 = timestamp()
--m1 = heapfree
_m = snapshotasmesh target
_t = (createinstance teapot).mesh
meshes = for v=1 to _m.numverts collect
(
_meshTransform (copy _t) (_getVertexTransform _m v)
)
setmesh mesh (_attachMeshes meshes)
--format "verts: % time: % memory: %
" _m.numverts (timestamp() - t1) (m1 - heapfree)
freeMesh #(_t, _m)
mesh
)
tool create
(
on mousePoint click do case click of
(
1:
(
nodeTM.translation = [0,0,0]
#stop
)
)
on mouseMove click do case click of
(
)
)
on create do ()
on update do ()
on load do ()
)
but it gives already ~3 ftp on my machine.
it’s made again as a simpleObj because in the mxs there is a problem (at least version <= max 2014 which i have now) with this type of modifiers.
there is no built-in class of modifier with has only one handler – on baseobject changed.
i’ve asked about this class (and some another) for many years, and finally after getting nothing i made my own. so in my framework i have it. and the example above can be made as a modifier. of course it can be done using sdk as well.
Your starting to sound paranoid about your job Denis. I have full respect for you as a developer, wish I had some of your advanced skill sets. But I think that you are completely missing what this is and what it will do for every production that doesn’t have a Denis.