I’ll forever be a student of 3D and continue to study Computer Graphics. It’s my belief that 3D will merge with Web/Devices/Interfaces and other Technologies we interact with in the future, so pursuing 3D has been part of my study for the last 10 years and will continue to be in the future. Software Applications, Processors, Bandwidth, and the Programming Capabilities that are coming to light in recent years has been amazing to watch.
Here’s a look at what I’m working on currently. This work includes concepts of Setting up Shader networks, Displacement maps, and Exporting Collada Maya FBX .DAE’s from Maya 2009.
I started with a platonic solid primitive from the polygon menu in Maya 2009. I left the shape with the default settings. My plan for this project is to doing nothing other than understand shader networks and connecting shader nodes within the Maya Hypershade window and to just HAVE FUN.
I applied a base shader to my platonic solid to start. In Maya there’s many shaders to start from. I use the “Layered Shader”.
PLEASE NOTE: Upon export to COLLADA.dae the Maya 2009 FBX.DAE exporter doesn’t support the Layered shader, so my platonic solid was stripped of this shader and assigned a default Lambert
= Weak. So the .DAE is just the solid with a basic shader.
Quoting from a book I am currently reading “Advanced Maya Texturing and Lighting” by Lee Lanier (Excellent).
A Definition of Shaders
A shader is a program used to determine the final surface quality of a 3D object. A shader uses a shading model, which is a mathematical algorithm that simulates the interaction of light with a surface.
Connecting Nodes in the Maya Hypershade Window
In the spirit of experimentation I add a Cloth texture and a Ramp Texture (a type of Gradient) with the type set to Tartan to the Layered Shader. I also add Cloth to serve as the Displacement Channel to the polygon object.
An explanation of nodes from Lee Lanier is very well put as follows…
The Hypershade window allows the connection of various Maya nodes. Technically speaking, a node is a construct that holds specific information plus any actions associated with that information. A node might be a curve, surface, material, texture, light, camera, joint, etc…
Here’s a look at my Shading Network in the Maya Hypershade Window.
Here’s a look at the render with some minor editing in Photoshop. You can download and work with this file for your own creative endeavors.
I exported the polygon object as a COLLADA fbx/dae out of Maya 2009. There’s not a COLLADA plugin available yet for this version so I use Maya’s built in exporter. Like I said the exporter didn’t keep my shader but here’s a look at the .DAE file in notepad.
COLLADA Dae Export from Maya 2009
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.0">
<asset>
<contributor>
<author></author>
<authoring_tool>FBX COLLADA exporter</authoring_tool>
<comments></comments>
</contributor>
<created>2008-11-25T16:06:42Z</created>
<modified>2008-11-25T16:06:42Z</modified>
<revision></revision>
<title></title>
<subject></subject>
<keywords></keywords>
<unit meter="0.010000"/>
<up_axis>Y_UP</up_axis>
</asset>
<library_materials>
<material id="layeredShader1" name="layeredShader1">
<instance_effect url="#layeredShader1-fx"/>
</material>
</library_materials>
<library_effects>
<effect id="layeredShader1-fx" name="layeredShader1">
<profile_COMMON>
<technique sid="standard">
<lambert>
<emission>
<color sid="emission">0.000000 0.000000 0.000000 1.000000</color>
</emission>
<ambient>
<color sid="ambient">0.500000 0.500000 0.500000 1.000000</color>
</ambient>
<diffuse>
<color sid="diffuse">0.500000 0.500000 0.500000 1.000000</color>
</diffuse>
<transparent>
<color sid="transparent">0.000000 0.000000 0.000000 1.000000</color>
</transparent>
<transparency>
<float sid="transparency">0.000000</float>
</transparency>
</lambert>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_geometries>
<geometry id="pSolid1-lib" name="pSolid1Mesh">
<mesh>
<source id="pSolid1-lib-Position">
<float_array id="pSolid1-lib-Position-array" count="36">
0.850651 0.000000 -0.525731
0.850651 -0.000000 0.525731
-0.850651 -0.000000 0.525731
-0.850651 0.000000 -0.525731
0.000000 -0.525731 0.850651
0.000000 0.525731 0.850651
0.000000 0.525731 -0.850651
0.000000 -0.525731 -0.850651
-0.525731 -0.850651 -0.000000
0.525731 -0.850651 -0.000000
0.525731 0.850651 0.000000
-0.525731 0.850651 0.000000
</float_array>
<technique_common>
<accessor source="#pSolid1-lib-Position-array" count="12" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="pSolid1-lib-Normal0">
<float_array id="pSolid1-lib-Normal0-array" count="36">
0.850651 0.000000 -0.525731
0.850651 -0.000000 0.525731
-0.850651 0.000000 0.525731
-0.850651 0.000000 -0.525731
-0.000000 -0.525731 0.850651
-0.000000 0.525731 0.850651
0.000000 0.525731 -0.850651
-0.000000 -0.525731 -0.850651
-0.525731 -0.850651 0.000000
0.525731 -0.850651 -0.000000
0.525731 0.850651 0.000000
-0.525731 0.850651 0.000000
</float_array>
<technique_common>
<accessor source="#pSolid1-lib-Normal0-array" count="12" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="pSolid1-lib-Vertex">
<input semantic="POSITION" source="#pSolid1-lib-Position"/>
</vertices>
<polygons material="layeredShader1" count="20">
<input semantic="VERTEX" offset="0" source="#pSolid1-lib-Vertex"/>
<input semantic="NORMAL" offset="1" source="#pSolid1-lib-Normal0"/>
<p>1 1 9 9 0 0</p>
<p>0 0 10 10 1 1</p>
<p>0 0 7 7 6 6</p>
<p>0 0 6 6 10 10</p>
<p>0 0 9 9 7 7</p>
<p>4 4 1 1 5 5</p>
<p>9 9 1 1 4 4</p>
<p>1 1 10 10 5 5</p>
<p>3 3 8 8 2 2</p>
<p>2 2 11 11 3 3</p>
<p>4 4 5 5 2 2</p>
<p>2 2 8 8 4 4</p>
<p>5 5 11 11 2 2</p>
<p>6 6 7 7 3 3</p>
<p>3 3 11 11 6 6</p>
<p>3 3 7 7 8 8</p>
<p>4 4 8 8 9 9</p>
<p>5 5 10 10 11 11</p>
<p>6 6 11 11 10 10</p>
<p>7 7 9 9 8 8</p>
</polygons>
</mesh>
</geometry>
</library_geometries>
<library_lights>
<light id="pointLight1-lib" name="pointLight1Mesh">
<technique_common>
<point>
<color sid="color">1.000000 1.000000 1.000000</color>
</point>
</technique_common>
<technique profile="MAYA">
<intensity sid="intensity">1.000000</intensity>
</technique>
</light>
<light id="pointLight2-lib" name="pointLight2Mesh">
<technique_common>
<point>
<color sid="color">1.000000 1.000000 1.000000</color>
</point>
</technique_common>
<technique profile="MAYA">
<intensity sid="intensity">1.000000</intensity>
</technique>
</light>
</library_lights>
<library_visual_scenes>
<visual_scene id="RootNode" name="RootNode">
<node id="pSolid1" name="pSolid1">
<instance_geometry url="#pSolid1-lib">
<bind_material>
<technique_common>
<instance_material symbol="layeredShader1" target="#layeredShader1"/>
</technique_common>
</bind_material>
</instance_geometry>
</node>
<node id="pointLight1" name="pointLight1">
<instance_light url="#pointLight1-lib"/>
</node>
<node id="pointLight2" name="pointLight2">
<translate sid="translate">0.632895 0.000000 0.598610</translate>
<instance_light url="#pointLight2-lib"/>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#RootNode"/>
</scene>
</COLLADA>
Download the zipped file containing the layered Photoshop file with the render and experiment yourself. Also in this file is the COLLADA dae.
One Response to “3D Rose Shader Network & Collada Dae”
Leave a Reply
You must be logged in to post a comment.





November 26th, 2008 at 3:25 pm
[...] 3D Rose Shader Network %26 Collada Dae It’s my belief that 3D will merge with Web/Devices/Interfaces and other Technologies we interact with in the future, so pursuing 3D has been part of my study for the last 10 years and will continue to be in the future. … [...]