3d-Information used for new renderstyle


Process:
-Maya smoothed cube imported into processing
-surface tangents and wireframe rendered with processing
3D-Information used for designing new structures


Process:
-Maya smoothed cube imported into processing
-unwoven structure generated based on surface normals
-exported to Maya and rendered in Mental Ray
Libraries: current threads...
- “ANAR+: is the main library. This is the library we are using for studio and research. The main goal is to come with a more appropriate language for geometry. What we did is to focus on the logic of a form through geometric associativity. Preserve the logic through manipulation and exports. (which means pottentially export to Catia,Proe,GC). We had to rewrite a substantial part of transformation matrices to be independent from a specific graphic library (like OpenGL or P3D). One thing that may be less understood with ANAR+ is that the programming is more declarative than imperative. We began this project because we didn’t had what we needed to acheive a feedback-loop between simulations and geometry.
- superCAD: is a very simple library for export in different formats. This is based on raw export (only a dump of triangles and lines). These exports are implemented in ANAR+, but you need to use the ANAR+ structure. In ANAR+, it will preserve the logic when it’s possible.
- Recently, we switched to SCALA (in house language from EPFL).”
- — guillaumeLaBelle
- ______________________________________________________________________________________
- “One thing that does spring to mind is to have a processing geometry standard. If the growing number of format importers followed a convention than geometry tools could handle them in a generic way. For example storing Position, UV, Normals as PVectors in ArrayLists. And then triangle indexes as Ints in ArrayLists. I’m just thinking that if there were some guidelines then it wouldn’t matter what the format was you could write a parser and hand it off to a generic 3D Geometry Object then people can build extra tools for it, that kind of thing.”
- —
- Matt Ditton,
- Polymonkey
- ______________________________________________________________________________________
- MRI3DS
- “-questions: simplify realtime renderer into library for easy application?”
- I have integrated rendering methods for easy use with processing into the library. Check the latest version.
- OBJIMPORT
- “-questions: possibility to integrate obj-geometry as quads into processing while using original object names?”
- What exactly do you mean with integrate obj-geometry as quads into processing? Do you want to render QUADS instead of TRIANGLES ?
- __
- Victor Martins
- pixelnerve.com/v
- ______________________________________________________________________________________
- I believe it would be a cool thing to have a single and working version of obj import with all the capabilities needed for processing/java. That would take quite a bit of effort but in the end it my serve the community pretty good.
- When i made ObjImp public for processing i was focusing mainly on real time 3d object loading, thats one reason i didnt really think about using quads, since triangles are the most useful for rendering and even for performance.
- I also wanted others to pick the library and try to improve it, for example, implement quad support comes to mind.
- I have seen/used Matt's exporter long time ago, but it was missing some features i needed back then, for instance group support, one more thing that ObjImp does.
- About Mri3ds, it is capable of loading pretty much everything. For the user with less knowledge what he needs is renderer (same would work for the obj files) that would make it easy to load a file and put it on screen as simple as possible.
- Writing a 3d engine/framework for processing that would do all this would take quite some time, if only someone would take this and start writing the engine code i believe others might join in.
- I have wrote my own loading/rendering framework, but i am using a customized file format. I haven't mind about using obj or 3ds as they do not support things i need. I have already thought about making the whole thing public, but so far i just released the jar file which is used to run my own example applications available on my website. When i get more time and will document everything and write examples i think i will make it all public. Might be cool for people who actually use processing and want to go over the limits, as of course want to do more without the need to write everything from scratch. so much to do =)
- I would recommend finding a main programmer to start thinking/planning the obj and 3ds files and a data structure for 3d scenes, and then create some loaders, which can be based on the available obj/3ds/dae/etc file formats.
- A more advanced file format could be created. to be able to use different sets of materials, for example, materials with shader support.
- What do you think ?
- __
- Victor Martins
- pixelnerve.com/v
- ______________________________________________________________________________________
Maya code-> Processing (mel)
// written by Dum:ene Comploi
// selects meshes in maya scene to export as tsv for processing
——————————————————————————————
——————————————————————————————
string $meshes[];
$meshes=`ls -sl -dag -ap -typ surfaceShape`;
for ($mesh in $meshes){
getFaceInfo($mesh);
};
proc getFaceInfo( string $mesh )
{
// get number of faces on the mesh
int $faceCount[] = `polyEvaluate -f`;
// process each face to find some info about it
for( $i=0;$i<$faceCount[0];$i++)
{
int $vCount =0;
select -r ( $mesh+”.f[“+$i+”]”);
// find the vertex indices in this face and split the returned string
string $vinds[] = `polyInfo -fv`;
string $split[];
tokenize $vinds[0] $split;
//
for($j=0;$j<(size($split)-2);$j++)
{
// select the vertex of each specific face (vtx-index)
select -r ($mesh+”.vtxFace[“+$split[($j+2)]+”][“+$i+”]”);
// get vertex co-ord and any relative tweaks
float $vert[] = `getAttr ($mesh+”.vt[“+$split[($j+2)]+”]”)`;
float $offset[] = `getAttr ($mesh+”.pt[“+$split[($j+2)]+”]”)`;
// final vert pos = vertex + offset, output it!
$vert[0] = $vert[0] + $offset[0];
$vert[1] = $vert[1] + $offset[1];
$vert[2] = $vert[2] + $offset[2];
// use polyNormalPerVertex to get the vertex normal values
float $norm[] = `polyNormalPerVertex -q -xyz`;
// query the vertex/face relationship to get each uv
string $tinds[] = `polyListComponentConversion -fvf -tuv ($mesh+”.vtxFace[“+$split[($j+2)]+”][“+$i+”]”)`;
// split the string to get the [] at the end
// ->gives the texture coord index number (uv-index)
string $buffer[];
tokenize $tinds[0] “[]” $buffer;
// put all the info together and write the file
string $coordinateline =($mesh + “\t” + $i + “\t” + $vert[0]+ “\t” + $vert[1]+ “\t” + $vert[2] + “\t” + $split[(2+$j)] + “\t” + $buffer[1]+ “\t” +$norm[0]+ “\t” +$norm[1]+ “\t” + $norm[2] +”\n”);
string $fileName = “mesh.tsv”;
int $fileId=`fopen $fileName “a”`;
fprint $fileId ($coordinateline);
fclose $fileId;
print($coordinateline );// prints each line in the txt file
}
}
}
LIBRARIES
FluidFormsLibs:
(http://fluidforms.eu/processing/fluid-forms-libs/)
-innovation: simple and compact language for 3d-representation;
interaction through parameterization
-constraint: TRIANGLES only
-questions: useful integration for fast and algorithmic design?
SuperCAD:
(http://labelle.spacekit.ca/supercad/)
-innovation: exporting code to different 3d-sofwares;
result appears as native geometry
-constraint: particles export is still missing in library (e.g.: points from pictures into 3d objects)
-questions: possibility of Maya to Processing feed back loop?
memory limits for maya vs. processing’s ability to render size-able number of dynamic objects?
existing approaches: preview shaded mode for large object population in Maya similar to smooth Mesh preview since Maya 2008 (http://data-tribe.net/wework4her/index.php?entry=entry090524-150812)
colladaLoader:
(http://www.polymonkey.com/blogger-polymonkey/2008/03/collada-loader-003.html)
-exception: java.lang.NullPointerException
-innovation: DAE similar to FBX (Autodesk Exchange Format) works for Maya as well as for Open Source Project Blender, saves animations
-constraint: only TRIANGLES, bug
-questions: solve bug and enable Processing to load non-triangulated geometry?
mri_3ds_procssing:
(http://www.pixelnerve.com/v/2009/01/01/3ds-loader-for-javaprocessing/)
-innovation: DAE similar to FBX (Autodesk Exchange Format) works for Maya as well as for Open Source Project Blender, saves animations
-constraint: only TRIANGLES, old format
-questions: simplify realtime renderer into library for easy application?
objimport:
(http://www.pixelnerve.com/processing/libraries/objimport/
-innovation: most basic geometry export: vtx, uv, normals, faces
-constraint: only TRIANGLES in processing? No animation, bug
-questions: possibility to integrate obj-geometry as quads into processing while using original object names?
anar+:
-innovation: parametric modeling for processing, simplified language for 3d-design
-constraint: unknown use for imported geometry
-questions: possibility of interaction with complex external created imported geometry and then export of generated code?
udp/udp_multicast:
(http://data-tribe.net/wework4her/index.php?entry=entry090616-145744)
-innovation: direct communication between maya and processing
-constraint: communication being out of sync
-question: use udp library for a general communication with maya? No real export needed?

