<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;DEMEQXozfyp7ImA9Wx5TE08.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884</id><updated>2010-07-28T10:13:20.487-04:00</updated><title>blog.leocov.com</title><subtitle type="html">Leonardo Covarrubias
Work in Progress Portfolio Blog</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.leocov.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/leocov" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="leocov" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUYASXY8fip7ImA9WxFbFkU.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-366018172279708596</id><published>2010-07-08T23:48:00.002-04:00</published><updated>2010-07-09T09:45:48.876-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-09T09:45:48.876-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maya" /><category scheme="http://www.blogger.com/atom/ns#" term="hlsl" /><title>lcNextGenShader_1.4.5.fx – Maya HLSL realtime shader</title><content type="html">&lt;p&gt;Note: Even with this update I still recommend my &lt;a href="http://blog.leocov.com/search/label/cgfx"&gt;lcUberShader.cgfx&lt;/a&gt; over this; cgfx seems a bit more stable than hlsl in the Maya viewport and cgfx shaders can be rendered through the hardware render buffer too!&lt;/p&gt;  &lt;p&gt;I noticed that the old lcNextGenShader_1.2.fx was getting alot of hits even with updated versions and the better cgfx shader available.  So i decided to update it and make it easier to maintain.&lt;/p&gt;  &lt;p&gt;Pretty much I took the code from my lcUberShader_1.4.cgfx and transplanted it into an HLSL shader.  Its missing some things from the cgfx version, lit-sphere shading, toon-ramp shading and the skin shader are removed.  They where not working and I don’t think its currently worth the effort to get them working.  Everything else is identical to the cgfx version and is a robust general use shader.  This OLD post gives some example images from the cgfx version - &lt;a href="http://blog.leocov.com/2010/03/lcubershader12cgfx.html"&gt;blog.leocov.com/2010/03/lcubershader12cgfx.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I’m currently investigating cross compatibility with 3dsMax – so stay tuned Max users.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Download:&lt;/strong&gt;    &lt;br /&gt;&lt;a href="http://media.leocov.com/blog/hlsl/lcNextGenShader_1.4.5.fx" target="_blank"&gt;lcNextGenShader_1.4.5.fx&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-366018172279708596?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/366018172279708596/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2010/07/lcnextgenshader145fx-maya-hlsl-realtime.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/366018172279708596?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/366018172279708596?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2010/07/lcnextgenshader145fx-maya-hlsl-realtime.html" title="lcNextGenShader_1.4.5.fx – Maya HLSL realtime shader" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DEYMSHo6eSp7ImA9Wx5TE08.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-203838808127719395</id><published>2010-07-04T14:37:00.002-04:00</published><updated>2010-07-28T10:09:49.411-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-28T10:09:49.411-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maya" /><category scheme="http://www.blogger.com/atom/ns#" term="cgfx" /><title>lcUberShader_1.4.cgfx – maya realtime shader</title><content type="html">&lt;p&gt;&lt;strong&gt;Download:&lt;/strong&gt;    &lt;br /&gt;&lt;a title="lcUberShader_1.4.cgfx" href="http://dl.dropbox.com/u/49003/lcUberShader_1.4.cgfx" target="_blank"&gt;lcUberShader_1.4.cgfx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Updates:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Gloss Blurring Amount:&lt;/strong&gt; – this attribute controls the blurring on the cube map reflections – previously it was default = 1.0, now it is default = 0.0.  At 0.0 there is no blurring on the cubemap, even with a specular.a gloss map, but the added benefit is that if you don't have a specular.a gloss map you can still blur your cubemap, whereas before it was not possible.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Shadow Map Texture:&lt;/strong&gt;  -  this is for a baked shadow map, and can use its own UV set, by default its the same UV set but you can change this under the shaders ‘Vertex Data’ rollout.  Just set TexCoord2 to use something different.  This is helpful because you can bake the shadows on a texture sheet that combines all your objects into one UV layout.  This avoids the labor of multiple bakes.&lt;/p&gt;  &lt;p&gt; &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="texcoord_shadow[1]" border="0" alt="texcoord_shadow[1]" src="http://lh6.ggpht.com/_ondEZc7yU8s/TDDU7PjVe6I/AAAAAAAAAQk/l4g00TlzWrY/texcoord_shadow%5B1%5D%5B5%5D.jpg?imgmax=800" width="390" height="91" /&gt;    &lt;br /&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="shadowMap[1]" border="0" alt="shadowMap[1]" src="http://lh6.ggpht.com/_ondEZc7yU8s/TDDU7jR_m-I/AAAAAAAAAQo/2GrYmK6VIIg/shadowMap%5B1%5D%5B9%5D.jpg?imgmax=800" width="412" height="394" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Maya 2011:&lt;/strong&gt; – added an empty dummy technique to the end of the techniques list, this is a temporary hacky fix for a problem in Maya 2011 where the radio buttons don’t work properly for technique selection.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-203838808127719395?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/203838808127719395/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2010/07/lcubershader14cgfx-maya-realtime-shader.html#comment-form" title="12 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/203838808127719395?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/203838808127719395?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2010/07/lcubershader14cgfx-maya-realtime-shader.html" title="lcUberShader_1.4.cgfx – maya realtime shader" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>12</thr:total></entry><entry gd:etag="W/&quot;CUcHQXg6eyp7ImA9WxFTE08.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-7713928775773994338</id><published>2010-03-30T22:20:00.001-04:00</published><updated>2010-04-03T15:30:30.613-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-03T15:30:30.613-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maya" /><category scheme="http://www.blogger.com/atom/ns#" term="mel" /><title>lcMrBatchBake.mel v.1.5</title><content type="html">&lt;p&gt;This update to my Mental Ray texture baking script streamlines some of the code and adds some minor features.&lt;/p&gt;  &lt;p&gt;You can now type in the Output Directory with less fuss – the script will parse forward and backward slashes – and will create the necessary ‘lightMap’ folder if it is not present.&lt;/p&gt;  &lt;p&gt;Added a button to open the selected (from the dropdown list) bake set in the attribute editor.&lt;/p&gt;  &lt;p&gt;Created a handy shelf icon.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="icon_lcMrBatchBake" border="0" alt="icon_lcMrBatchBake" src="http://lh4.ggpht.com/_ondEZc7yU8s/S7Kxgmk3JoI/AAAAAAAAAN0/DxfZR4E6g70/icon_lcMrBatchBake%5B1%5D%5B4%5D.jpg?imgmax=800" width="32" height="32" /&gt; &lt;a href="http://media.leocov.com/blog/scripts/lcMrBatchBake.bmp" target="_blank"&gt;lcMrBatchBake.bmp&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Download: &lt;a href="http://media.leocov.com/blog/scripts/lcMrBatchBake.mel" target="_blank"&gt;lcMrBatchBake.mel&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" src="http://media.leocov.com/blog/scripts/lcMrBatchBake_1.5.1.jpg" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-7713928775773994338?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/7713928775773994338/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2010/03/lcmrbatchbakemel-v15.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/7713928775773994338?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/7713928775773994338?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2010/03/lcmrbatchbakemel-v15.html" title="lcMrBatchBake.mel v.1.5" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;AkIFR3k7eCp7ImA9WxFTE0w.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-5703409369901176695</id><published>2010-03-12T20:36:00.001-05:00</published><updated>2010-04-03T14:15:16.700-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-03T14:15:16.700-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maya" /><category scheme="http://www.blogger.com/atom/ns#" term="mel" /><title>lcCamTools.mel</title><content type="html">&lt;p&gt;This exposes some simple attributes about the currently active camera to the user in a small interface.&amp;#160; It avoids having to dig around in the attribute editor.&amp;#160; The attributes in the script will update for the current camera when the script window is given focus (clicked on).&lt;/p&gt;  &lt;p&gt;Download:    &lt;br /&gt;&lt;a href="http://media.leocov.com/blog/scripts/lcCamTools.mel" target="_blank"&gt;lcCamTools.mel&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://media.leocov.com/blog/scripts/lcCamTools.bmp" target="_blank"&gt;lcCamTools.bmp&lt;/a&gt; (shelf icon)&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="lcCamTools" border="0" alt="lcCamTools" src="http://lh6.ggpht.com/_ondEZc7yU8s/S7eFtEA-Z4I/AAAAAAAAAN8/u8gW_RVW2lI/lcCamTools%5B1%5D%5B4%5D.jpg?imgmax=800" width="216" height="201" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-5703409369901176695?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/5703409369901176695/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2010/03/lccamtoolsmel.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/5703409369901176695?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/5703409369901176695?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2010/03/lccamtoolsmel.html" title="lcCamTools.mel" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUMHSXo5cSp7ImA9WxBbFEk.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-3549890255782786101</id><published>2010-03-12T20:22:00.001-05:00</published><updated>2010-03-12T20:23:58.429-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-12T20:23:58.429-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maya" /><category scheme="http://www.blogger.com/atom/ns#" term="cgfx" /><title>lcUberShader_1.2.cgfx</title><content type="html">&lt;p&gt;&lt;strong&gt;Goals:&lt;/strong&gt;     &lt;br /&gt;1. Create a useful Maya viewport shader with many interesting functions and techniques to showcase a wide range of surfaces.     &lt;br /&gt;2. Write a Shader with a compartmentalized structure that is easy to read and dissect for people learning the basics of shader code.&lt;/p&gt;  &lt;p&gt;This shader is quite large and complex and because of the decision to compartmentalize much of the code into distinct functions it is not performace optimized.&lt;/p&gt;  &lt;p&gt;You must link 1-3 directional lights into the light slots at the bottom of the attribute list – I would recommend you use my &lt;a href="http://blog.leocov.com/2010/03/lcrtshadertoolsmel-v12.html"&gt;lcRTShaderTools.mel&lt;/a&gt; to interact with the shader.&lt;/p&gt;  &lt;p&gt;Download:    &lt;br /&gt;&lt;a href="http://media.leocov.com/blog/cgfx/lcUberShader_1.2.cgfx" target="_blank"&gt;lcUberShader_1.2.cgfx&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://media.leocov.com/blog/cgfx/lcBasicShaderComponents.cgfx" target="_blank"&gt;lcBasicShaderComponents.cgfx&lt;/a&gt; (this is a basic stub shader for people learing cgfx and wanting something simpler to start out)&lt;a href="http://media.leocov.com/blog/cgfx/BasicTextures.zip" target="_blank"&gt;     &lt;br /&gt;BasicTextures.zip&lt;/a&gt; (some basic textures for use with the lcUberShader – don’t quite remember where they all came from – thank you to the original creators)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Known Issues:&lt;/strong&gt;     &lt;br /&gt;* Although I provide 8-bit alpha support, Maya has transparency sorting issues when in this mode.     &lt;br /&gt;* Because there are so many attributes the Maya Attribute Editor can sometimes momentarily stall when updating/opening or switching techniques     &lt;br /&gt;* Only 1 input is available for an environment cubemap (this serves for both reflections and ambient color) – the shader assumes this cubemap is a properly filtered cubemap made with ATI’s CubeMapGen tool and that it has mipmaps     &lt;br /&gt;* When you are in Toon or LitSphere Techinques the shading color will be multiplyed by the Diffuse Texture, you can scale the contribution of the Diffuse Texture with the Diffuse Color Attr – but you cannot tint it.     &lt;br /&gt;* Cubemap and Hemispherical ambient color is multiplied by the Ambient Color Attr, it must be something other than black for those effects to show up.&lt;/p&gt;  &lt;p&gt;Examples of the Shading Techniques and Options (click for full res)    &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_ondEZc7yU8s/S5rotdmSyII/AAAAAAAAAMs/hDzYODraVrI/s1600-h/lcUberShader_sphereLineup%5B1%5D%5B9%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="lcUberShader_sphereLineup" border="0" alt="lcUberShader_sphereLineup" src="http://lh3.ggpht.com/_ondEZc7yU8s/S5rotk8iLwI/AAAAAAAAAMw/KpUiNQXdSHc/lcUberShader_sphereLineup%5B1%5D_thumb%5B7%5D.jpg?imgmax=800" width="334" height="480" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;(click for full res)     &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_ondEZc7yU8s/S5rouG1y9QI/AAAAAAAAAM0/AO7EPcUesWg/s1600-h/lcUberShader_attributes%5B1%5D%5B5%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="lcUberShader_attributes" border="0" alt="lcUberShader_attributes" src="http://lh6.ggpht.com/_ondEZc7yU8s/S5roubJan3I/AAAAAAAAAM4/Trbpz-By_TU/lcUberShader_attributes%5B1%5D_thumb%5B3%5D.jpg?imgmax=800" width="199" height="768" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Please use this as inspiration for writing your own shaders, the code is very easy to take apart, rearrange and unfold. I have tried to comment the code in key places of interest. I also included a more basic shader with the same coding structure as a starting point for people interested in learing.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-3549890255782786101?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/3549890255782786101/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2010/03/lcubershader12cgfx.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/3549890255782786101?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/3549890255782786101?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2010/03/lcubershader12cgfx.html" title="lcUberShader_1.2.cgfx" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;CEUDQnw6eSp7ImA9WxBbFEk.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-2295071756631901593</id><published>2010-03-12T20:04:00.001-05:00</published><updated>2010-03-12T20:04:33.211-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-12T20:04:33.211-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maya" /><category scheme="http://www.blogger.com/atom/ns#" term="cgfx" /><category scheme="http://www.blogger.com/atom/ns#" term="hlsl" /><category scheme="http://www.blogger.com/atom/ns#" term="mel" /><title>lcRTShaderTools.mel  v1.2</title><content type="html">&lt;p&gt;This script makes it easier to interact with HLSL and CGFX shaders in Maya.&amp;#160; It performs shader naming, creation/sourcing, light linking, and other helpful tasks.&lt;/p&gt;  &lt;p&gt;This update adds light rig scaling – depending on how a hlsl or cgfx shader is coded, scaling your lights can result in incorrect lighting.&amp;#160; The ‘Light Rig Scale’ attribute moves the lights and scales their locator handles to give the visual impression of a ‘scale’ operation.&amp;#160; (you can Ctrl+MiddleClick and horizontal drag this box to interactively scale).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Known Issues:&lt;/strong&gt;    &lt;br /&gt;CGFX and HLSL shaders will only work with this script if their light position/direction and light color attributes are named properly in the shader file.    &lt;br /&gt;Convention: light attribute names should be as follows - 'light1Dir' or 'light1Pos' and 'light1Color'    &lt;br /&gt;ambient color/light attribute on the shader should be – 'ambientColor'&lt;/p&gt;  &lt;p&gt;Download:   &lt;br /&gt;&lt;a href="http://media.leocov.com/blog/scripts/lcRTShaderTools.zip" target="_blank"&gt;lcRTShaderTools.zip&lt;/a&gt; (includes shelf icon)&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="lcRTShaderTools" border="0" alt="lcRTShaderTools" src="http://lh6.ggpht.com/_ondEZc7yU8s/S5rkoHBTjnI/AAAAAAAAAMo/hPelMOEXQKo/lcRTShaderTools%5B1%5D%5B5%5D.jpg?imgmax=800" width="317" height="410" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-2295071756631901593?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/2295071756631901593/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2010/03/lcrtshadertoolsmel-v12.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/2295071756631901593?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/2295071756631901593?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2010/03/lcrtshadertoolsmel-v12.html" title="lcRTShaderTools.mel  v1.2" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0ABSXY_eCp7ImA9WxBUEkQ.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-5711759130620674599</id><published>2010-02-27T13:35:00.001-05:00</published><updated>2010-02-27T13:35:58.840-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-27T13:35:58.840-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="photoshop" /><title>save a .DDS from Photoshop</title><content type="html">&lt;p&gt;I am particular to command line tools and Nvidia offers us a nice and simple tool for .DDS compression.    &lt;br /&gt;&lt;a href="http://developer.nvidia.com/object/texture_tools.html"&gt;http://developer.nvidia.com/object/texture_tools.html&lt;/a&gt;     &lt;br /&gt;Its super fast and runs on the GPU through CUDA (although that means you need the proper hardware and drivers)&lt;/p&gt;  &lt;p&gt;nvcompress.exe is the particular tool I’m looking at here but there are a few other cool utilities included too.&lt;/p&gt;  &lt;p&gt;You can get direct and simple access to the tool through Photoshop by running some simple scripts.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Some Examples:&lt;/strong&gt;    &lt;br /&gt;&lt;strong&gt;&lt;font color="#c3d9ff"&gt;for color &amp;gt; DXT5:&lt;/font&gt;&lt;/strong&gt;&amp;#160; &lt;a href="http://media.leocov.com/blog/PS/DDS_DXT5_c.js" target="_blank"&gt;DDS_DXT5_c.js&lt;/a&gt;     &lt;br /&gt;&lt;strong&gt;&lt;font color="#c3d9e6"&gt;for normals &amp;gt; DXT5:&lt;/font&gt;&lt;/strong&gt;&amp;#160; &lt;a href="http://media.leocov.com/blog/PS/DDS_DXT5_n.js" target="_blank"&gt;DDS_DXT5_n.js&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to Install:      &lt;br /&gt;&lt;/strong&gt;put the *.js files here /Adobe Photoshop CS*/Presets/Scripts     &lt;br /&gt;run from File &amp;gt; Scripts menu     &lt;br /&gt;(you must have nvcompress.exe’s filepath in your PATH Environment Variable or this wont work out of the box)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How it Works:&lt;/strong&gt;     &lt;br /&gt;It saves a temporary copy of the currently selected Photoshop document to a .tga     &lt;br /&gt;It creates temporary .bat script containing the command line arguments for nvcompress.exe     &lt;br /&gt;Runs the .bat script on the temporary .tga and spits out a new file into the same folder as your original document (with the ‘filename’_DXT5.dds naming convention)     &lt;br /&gt;    &lt;br /&gt;These scripts are very easy to edit, and can be made to run multiple compressions in sequence.&lt;/p&gt;  &lt;p&gt;Documentation and command line arguments are available here:    &lt;br /&gt;&lt;a href="http://code.google.com/p/nvidia-texture-tools/wiki/CommandLineTools"&gt;http://code.google.com/p/nvidia-texture-tools/wiki/CommandLineTools&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Take it – run with it.&lt;/p&gt;  &lt;p&gt;Special thanks to &lt;a href="http://www.madcrew.se" target="_blank"&gt;Fredrik Brännbacka&lt;/a&gt; who posted Save As Map.js on CGTalk a few years ago – from which this script is directly based.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-5711759130620674599?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/5711759130620674599/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2010/02/save-dds-from-photoshop.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/5711759130620674599?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/5711759130620674599?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2010/02/save-dds-from-photoshop.html" title="save a .DDS from Photoshop" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUAMQno9eCp7ImA9WxBUEkQ.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-9143444723480483593</id><published>2010-02-20T15:19:00.004-05:00</published><updated>2010-02-27T13:03:03.460-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-27T13:03:03.460-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maya" /><category scheme="http://www.blogger.com/atom/ns#" term="cgfx" /><category scheme="http://www.blogger.com/atom/ns#" term="mel" /><title>lcRTShaderTools.mel</title><content type="html">&lt;p&gt;Maya Real Time Shader Tools Mel Script&lt;/p&gt;&lt;p&gt;I've been developing a mel script to make it easier to create/assign/interact with hlsl and cgfx shaders in maya. Linking lights, changing light colors, making sure you have the correct .mll's loaded - providing an easier interface for managing lights.&lt;/p&gt;  &lt;p&gt;I made this originally for my fellow production artists at work - so they would actually use the CGFX/HLSL shaders that mimic our game engine - because otherwise its a bit complicated to set them up (artists are picky and fickle I know!)&lt;/p&gt;  &lt;p&gt;It should work with any CGFX or HLSL shader as long as certain conditions are met, these are: light attribute names should be as follows - 'light1Dir' or 'light1Pos' and 'light1Color' ambient color/light attribute on the shader should be - 'ambientColor' (why no light intensity? light color value can easily be overdriven to accomplish the same thing)&lt;/p&gt;  &lt;p&gt;Works with up to 3 directional or point lights (mix and match) &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h3&gt;Download:&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://media.leocov.com/blog/scripts/lcRTShaderTools.zip"&gt;lcRTShaderTools.zip&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="lcRTShaderTools" border="0" alt="lcRTShaderTools" src="http://lh5.ggpht.com/_ondEZc7yU8s/S4BENwGxivI/AAAAAAAAAMg/NVe6WS-VqLI/lcRTShaderTools%5B1%5D%5B5%5D.jpg?imgmax=800" width="316" height="372" /&gt;  &lt;/p&gt;  &lt;h3&gt;Sample Shaders for testing:&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://media.leocov.com/blog/cgfx/lcBasicShader.cgfx"&gt;lcBasicShader.cgfx&lt;/a&gt; - this is a testing/stub shader written in CGFX  &lt;br /&gt;&lt;a href="http://media.leocov.com/blog/hlsl/lcNextGenShader_1.3.fx"&gt;lcNextGenShader_1.3.fx&lt;/a&gt; - more interesting shader written in HLSL &lt;/p&gt;  &lt;p&gt;I've done as much testing as I can reasonable stand on this script - I don't make any promises but myself and my fellow artists have found it helpful.&lt;/p&gt;  &lt;p&gt;Eventualy I'll get around to translating my HLSL shaders to CGFX and adding fancy features. If you like writing mel scripts please feel free to use this script as a starting point or inspiration.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-9143444723480483593?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/9143444723480483593/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2010/02/maya-real-time-shader-tools.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/9143444723480483593?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/9143444723480483593?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2010/02/maya-real-time-shader-tools.html" title="lcRTShaderTools.mel" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkIASHw_eyp7ImA9WxBXGEU.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-1189503519072825511</id><published>2010-01-30T14:42:00.001-05:00</published><updated>2010-01-30T14:42:29.243-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-30T14:42:29.243-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="hlsl" /><title>lcNextGenShader_1.3.fx</title><content type="html">&lt;p&gt;Download: &lt;a href="http://media.leocov.com/blog/hlsl/lcNextGenShader_1.3.fx" target="_blank"&gt;lcNextGenShader_1.3.fx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Minor update addressing some order of operations issues to fix the way ambient color and ambient environment are applied and tweaks to default UI values.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-1189503519072825511?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/1189503519072825511/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2010/01/lcnextgenshader13fx.html#comment-form" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/1189503519072825511?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/1189503519072825511?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2010/01/lcnextgenshader13fx.html" title="lcNextGenShader_1.3.fx" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>8</thr:total></entry><entry gd:etag="W/&quot;CkEDRns5eip7ImA9WxBXGEU.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-4126867011484047910</id><published>2009-12-05T10:47:00.002-05:00</published><updated>2010-01-30T14:44:37.522-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-30T14:44:37.522-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="hlsl" /><title>lcNextGenShader_1.2.fx</title><content type="html">&lt;p&gt;Download: &lt;a href="http://media.leocov.com/blog/hlsl/lcNextGenShader_1.2.fx"&gt;lcNextGenShader_1.2.fx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Update includes the following changes/additions:&lt;/p&gt;  &lt;p&gt;A skin style SSS approximation for soft skin rendering, and a gloss map input for changing the size/shape of the specular highlight, also the cube map reflections can be blurred based on specular glossiness.  Extra – you can now choose to use Valve’s half lambert diffuse style instead of the standard lambert mode.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;useHalfLambert&lt;/strong&gt; – use Valve’s half lambert diffuse shading model – wraps light around forms more for a softer look, useful for backlighting situations&lt;/p&gt;  &lt;p&gt;&lt;b&gt;sssWeight &lt;/b&gt;- the overall intensity of the SSS effect&lt;/p&gt;  &lt;p&gt;&lt;b&gt;sssBack &lt;/b&gt;- Color of the SSS edge bleed effect&lt;/p&gt;  &lt;p&gt;&lt;b&gt;sssRadius &lt;/b&gt;- how far across the surface the SSS effect will bleed&lt;/p&gt;  &lt;p&gt;&lt;b&gt;useGlossMap &lt;/b&gt;- use a gloss map texture yes/no&lt;/p&gt;  &lt;p&gt;&lt;b&gt;glossBlurWeight &lt;/b&gt;- the overall amount of blurring to the env cube map reflections - 0 turns off the blurring effect&lt;/p&gt;  &lt;p&gt;&lt;b&gt;glossBlurMax &lt;/b&gt;- the specular glossiness value after which no blurring will happen - usefull for tweaking the blur amount based on your spec glossiness value&lt;/p&gt;  &lt;p&gt;&lt;b&gt;glossMap &lt;/b&gt;- the gloss map texture (darker values dont work very well here - black turn off specularity)&lt;/p&gt;  &lt;p&gt;Thanks goes to &lt;a href="http://www.jistyles.com/"&gt;Joel Styles&lt;/a&gt; – inspiration for the sss function - reading over your hlsl code makes for good learning&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-4126867011484047910?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/4126867011484047910/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2009/12/lcnextgenshader12fx.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/4126867011484047910?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/4126867011484047910?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2009/12/lcnextgenshader12fx.html" title="lcNextGenShader_1.2.fx" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;CkUDRnsyfip7ImA9WxNaGEw.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-3665684765749022934</id><published>2009-12-02T22:17:00.001-05:00</published><updated>2009-12-02T22:17:57.596-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T22:17:57.596-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="news" /><title>CG Bootcamp</title><content type="html">&lt;p&gt;Interested in Tutorials? I contribute many of the tutorials at &lt;a href="http://www.cgbootcamp.com"&gt;www.cgbootcamp.com&lt;/a&gt; – we cover all kinds of topics in the 3D world – check it out.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-3665684765749022934?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/3665684765749022934/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2009/12/cg-bootcamp.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/3665684765749022934?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/3665684765749022934?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2009/12/cg-bootcamp.html" title="CG Bootcamp" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A0ADQHs9fCp7ImA9WxNbGEg.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-5553013448970645653</id><published>2009-11-21T22:15:00.001-05:00</published><updated>2009-11-21T22:16:11.564-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-21T22:16:11.564-05:00</app:edited><title>lcNextGenShader_1.15.fx</title><content type="html">&lt;p&gt;Download: &lt;a href="http://media.leocov.com/blog/hlsl/lcNextGenShader_1.15.fx" target="_blank"&gt;lcNextGenShader_1.15.fx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Update to the shader includes:&lt;/p&gt;  &lt;p&gt;Fresnel attributes (fresnel no longer hard coded and now affects both cubemap reflections and specularity)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;frBias&lt;/strong&gt; – changes how far across the surface the effect occurs&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;frETA&lt;/strong&gt; – bumps up the intensity in the ‘center’ area&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;frPower&lt;/strong&gt; – Power/intensity multiplier on the entire effect&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-5553013448970645653?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/5553013448970645653/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2009/11/lcnextgenshader115fx.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/5553013448970645653?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/5553013448970645653?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2009/11/lcnextgenshader115fx.html" title="lcNextGenShader_1.15.fx" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkIDRnw6eip7ImA9WxBXGEU.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-1839654936898187903</id><published>2009-11-16T23:34:00.002-05:00</published><updated>2010-01-30T14:42:57.212-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-30T14:42:57.212-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="hlsl" /><title>lcNextGenShader.fx and lcHLSLTools.mel</title><content type="html">&lt;p&gt;Real-time HLSL Shader for Maya’s Viewport and HLSL helper Mel script.&lt;/p&gt;  &lt;h4&gt;lcNextGenShader_1.1.fx&lt;/h4&gt;  &lt;p&gt;Download: &lt;a href="http://media.leocov.com/blog/hlsl/lcNextGenShader_1.1.fx" target="_blank"&gt;lcNextGenShader_1.1.fx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Sample Cube Map: &lt;a href="http://media.leocov.com/blog/hlsl/default_env_map.dds" target="_blank"&gt;default_env_map.dds&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="lcNextGenShader_example" href="http://media.leocov.com/blog/hlsl/lcNextGenShader_example.jpg" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="lcNextGenShader_example[1]" border="0" alt="lcNextGenShader_example[1]" src="http://lh5.ggpht.com/_ondEZc7yU8s/SwIn8JjeBTI/AAAAAAAAAJU/KGRXlvPChpE/lcNextGenShader_example%5B1%5D%5B25%5D.jpg?imgmax=800" width="419" height="144" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="lcNextGenShader_interface" href="http://media.leocov.com/blog/hlsl/lcNextGenShader_interface.jpg" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="lcNextGenShader_interface" border="0" alt="lcNextGenShader_interface" align="right" src="http://lh6.ggpht.com/_ondEZc7yU8s/SwIn8TI-6bI/AAAAAAAAAJY/RuKHVcXe6M8/lcNextGenShader_interface%5B1%5D%5B18%5D.jpg?imgmax=800" width="171" height="355" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 100%"&gt;Techniques:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NextGen_SM3&lt;/strong&gt; – full shading (requires shader model 3 capable graphics card)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Diffuse_Texture_Only&lt;/strong&gt; – only the diffuse texture or color, without any other effects&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Normal_Map_As_Color&lt;/strong&gt; – only the normal map color values (helps to find seams)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Specular_Only_SM3&lt;/strong&gt; – only the specular effects, light and specular map contributions (requires shader model 3 capable graphics)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 100%"&gt;Parameters:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;backFaceLighting&lt;/strong&gt; – for single sided polygon objects, the back sides will be lit correctly&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ambientColor&lt;/strong&gt; – a color ‘added’ on top of the final effect&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;diffuseColor&lt;/strong&gt; – the Lambert diffuse shading color&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;specularColor&lt;/strong&gt; – the Phong specular shading color&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;glossiness&lt;/strong&gt; – controls the size of the Phong specular highlight&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;useDiffuseTexture&lt;/strong&gt; – use the diffuse texture from ‘diffuseMap’ instead of diffuseColor&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;transparencyInDiffuse&lt;/strong&gt; – use the diffuseMap’s alpha channel for transparency&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;specularInDiffuse&lt;/strong&gt; – use the diffuseMap’s alpha channel for specular masking&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;diffuseMap&lt;/strong&gt; – a diffuse texture&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;useNormalTexture&lt;/strong&gt; – use a tangent space normal map texture&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;specularInNormal&lt;/strong&gt; – use the normalMap’s alpha channel for specular masking&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;normalPower&lt;/strong&gt; – intensity of the normal map effect, 0=no effect&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;flipGreen&lt;/strong&gt; – invert the green channel of the normal map (default = true)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;normalMap&lt;/strong&gt; – a tangent space normal map texture&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;useSpecularMap&lt;/strong&gt; – use a specularMap for specular coloring and masking&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;specularMap&lt;/strong&gt; – a specular texture for highlight coloring and masking&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;useAmbEnv&lt;/strong&gt; – use cubeEnvMap for ambient environment lighting – cube map is forced down in mip levels – make sure to use a cube map processed by &lt;a href="http://developer.amd.com/gpu/cubemapgen/pages/default.aspx" target="_blank"&gt;ATI CubeMapGen&lt;/a&gt; for proper filtering&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ambPower&lt;/strong&gt; – intensity of the ambient environment lighting – also multiplied with the ambientColor &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;useReflEnv&lt;/strong&gt; - use cubeEnvMap for environment reflections&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;reflPower&lt;/strong&gt; – intensity of the environment reflections (has a slight hardcoded Fresnel effect)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;cubeEnvMap&lt;/strong&gt; – a cube map – preferably one processed by ATI CubeMapGen for proper filtering&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;useGlowTexture&lt;/strong&gt; – use glowMap for self illumination effects&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;glowPower&lt;/strong&gt; – the intensity of the self illumination effect&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;glowMap&lt;/strong&gt; – a texture that is ‘added’ on top of the final shader result – self illumination/incandescence&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;useLightFalloff&lt;/strong&gt; – use falloff on the point lights&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;decayScale&lt;/strong&gt; – scale of the light falloff for the point lights&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; There are some issues with overlapping transparency planes in Maya’s viewport when using realtime shaders – unfortunately this seems to be a problem with Maya and not the HLSL code itself – so there is no fix available.&lt;/p&gt;  &lt;p&gt;Textures in TGA or DDS formats provide the best compatibly with the DirectX environment.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h4&gt;lcHLSLTools.mel&lt;/h4&gt;  &lt;p&gt;Download: &lt;a href="http://media.leocov.com/blog/scripts/lcHLSLTools.mel" target="_blank"&gt;lcHLSLTools.mel&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Run with command – lcHLSLTools;&lt;/p&gt;  &lt;p&gt;This makes it easier to work with my HLSL shaders – lets you name, create, and assign them – then make the lights and link them to the shader – you can adjust light color across all HLSL shaders – lastly you can reload all the HLSL shaders and File Texture Nodes&lt;/p&gt;  &lt;p&gt;Any objects you have selected will be assigned the new shader when you press ‘Make New HLSL Shader’&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="lcHLSLTools" border="0" alt="lcHLSLTools" src="http://lh3.ggpht.com/_ondEZc7yU8s/S2D9HyWDb7I/AAAAAAAAALc/tYd4anfMgKo/lcHLSLTools%5B6%5D.jpg?imgmax=800" width="316" height="299" /&gt; &lt;/p&gt;  &lt;p&gt;Note: This tool was designed to work specifically with my own HLSL shaders, and wont work with other .fx shaders because the light names and attributes have been hard coded.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-1839654936898187903?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/1839654936898187903/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2009/11/lcnextgenshaderfx-and-lchlsltoolsmel.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/1839654936898187903?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/1839654936898187903?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2009/11/lcnextgenshaderfx-and-lchlsltoolsmel.html" title="lcNextGenShader.fx and lcHLSLTools.mel" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;Ak4GQX06fyp7ImA9WxFTE0w.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-6802905185495247923</id><published>2009-10-27T19:29:00.003-04:00</published><updated>2010-04-03T14:22:00.317-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-03T14:22:00.317-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maya" /><category scheme="http://www.blogger.com/atom/ns#" term="mel" /><title>lcUVMover.mel</title><content type="html">&lt;p&gt;&lt;a href="http://media.leocov.com/blog/scripts/lcUVMover.zip"&gt;lcUVMover.zip (script and icons)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Lets you move around your uv’s with precise numerical values – also lets you work in non-square aspect ratio UV space for scale and rotation operations – normally the rotation manipulator doesn’t work properly in non-1:1.&lt;/p&gt;  &lt;p&gt;check readme.txt for instructions&lt;/p&gt;  &lt;p&gt;run with command – lcUVMover;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="lcUVMover" border="0" alt="lcUVMover" src="http://lh3.ggpht.com/_ondEZc7yU8s/S7eHRzp0oQI/AAAAAAAAAOA/4SBtuqOsVC0/lcUVMover%5B1%5D%5B5%5D.jpg?imgmax=800" width="196" height="468" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-6802905185495247923?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/6802905185495247923/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2009/10/lcuvmovermel.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/6802905185495247923?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/6802905185495247923?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2009/10/lcuvmovermel.html" title="lcUVMover.mel" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A0YGRHY7fSp7ImA9WxFTE0w.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-1333161500785797994</id><published>2009-10-16T20:13:00.002-04:00</published><updated>2010-04-03T14:25:25.805-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-03T14:25:25.805-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maya" /><category scheme="http://www.blogger.com/atom/ns#" term="mel" /><title>lcSubDivCalc.mel</title><content type="html">&lt;p&gt;&lt;a title="lcSubDivCalc.mel" href="http://media.leocov.com/blog/scripts/lcSubDivCalc.mel"&gt;lcSubDivCalc.mel&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Opens a small window – type a number in the first field (polycount) – the rest will auto-fill with polycounts calcuated at 8 additional levels.&lt;/p&gt;  &lt;p&gt;Why? because if you can build your mesh at a certain polycount to start you can optimize the number of polygons you can work with in Zbrush depending on your RAM.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="lcSubDivCalc" border="0" alt="lcSubDivCalc" src="http://lh4.ggpht.com/_ondEZc7yU8s/S7eIFYE_liI/AAAAAAAAAOE/O4LTfkfuenw/lcSubDivCalc%5B1%5D%5B5%5D.jpg?imgmax=800" width="196" height="310" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-1333161500785797994?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/1333161500785797994/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2009/10/lcsubdivcalcmel.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/1333161500785797994?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/1333161500785797994?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2009/10/lcsubdivcalcmel.html" title="lcSubDivCalc.mel" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUEHQHs5cSp7ImA9WxVRFks.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-680822690159876639</id><published>2009-01-22T18:36:00.003-05:00</published><updated>2009-01-22T18:40:31.529-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-22T18:40:31.529-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maya" /><category scheme="http://www.blogger.com/atom/ns#" term="mel" /><title>lcCCMesh.mel</title><content type="html">&lt;a href="http://media.leocov.com/blog/scripts/lcCCMesh.mel"&gt;lcCCMesh.mel&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Adds the CCMesh Toggle to a Mental Ray Subdiv Approximation Node.&lt;br /&gt;To use: select one or more SubdivApprox nodes in the Outliner (uncheck show DAG objects only) or Hypershade and run the command lcCCMesh&lt;br /&gt;&lt;br /&gt;if you use the old style ccmesh mode, your mesh must be all quads or all tris, cannot use a combination or you will get errors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-680822690159876639?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/680822690159876639/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2009/01/lcccmeshmel.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/680822690159876639?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/680822690159876639?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2009/01/lcccmeshmel.html" title="lcCCMesh.mel" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkQCQnY9eCp7ImA9WxRRE0s.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-8884848831193193381</id><published>2008-07-01T12:26:00.003-04:00</published><updated>2008-09-25T13:39:23.860-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-25T13:39:23.860-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="renderman" /><title>lcUtilPass.sl</title><content type="html">&lt;a href="http://media.leocov.com/blog/rsl/surface/lcUtilPass.sl"&gt;lcUtilPass.sl&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;this is a simple renderman shader that creates AOV's for passes from &lt;a href="http://blog.leocov.com/2008/07/lcutilh.html"&gt;lcUtil.h&lt;/a&gt; functions&lt;br /&gt;&lt;br /&gt;id pass, depth pass, motion vector pass, and a mask01 pass that is an arbitrary texture map mask, usefull for compositing&lt;br /&gt;&lt;br /&gt;- tested only with 3Delight renderman&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-8884848831193193381?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/8884848831193193381/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2008/07/lcutilpasssl.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/8884848831193193381?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/8884848831193193381?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2008/07/lcutilpasssl.html" title="lcUtilPass.sl" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>3</thr:total></entry><entry gd:etag="W/&quot;CEAMR386fip7ImA9WxVVEk0.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-4620670655072838743</id><published>2008-07-01T12:20:00.005-04:00</published><updated>2009-03-04T16:39:46.116-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-04T16:39:46.116-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="renderman" /><title>lcUtil.h</title><content type="html">&lt;a href="http://media.leocov.com/blog/rsl/include/lcman/lcUtil.h"&gt;lcUtil.h&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;a bunch of utilites for renderman rendering passes&lt;br /&gt;&lt;br /&gt;lcID - 15 distinct colors for custom compositing masks.&lt;br /&gt;lcMotion - export motion vectors for use in ReelSmart Motion blur plug-in.&lt;br /&gt;lcDepth - a z-depth pass.&lt;br /&gt;&lt;br /&gt;- there is probably a "real" way to implement id-pass output colors, but i just needed a quick solution to make some distinct masks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-4620670655072838743?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/4620670655072838743/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2008/07/lcutilh.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/4620670655072838743?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/4620670655072838743?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2008/07/lcutilh.html" title="lcUtil.h" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A0UEQHszcSp7ImA9WxdXGU8.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-1069593820243468024</id><published>2008-07-01T12:10:00.007-04:00</published><updated>2008-07-01T12:20:01.589-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-01T12:20:01.589-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="renderman" /><title>lcIllumination.h</title><content type="html">&lt;a href="http://media.leocov.com/blog/rsl/include/lcman/lcIllumination.h"&gt;lcIllumination.h&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;incudes a bunch of illumination models and useful shading tools, mostly form 'The Renderman Shading Language Guide' by Rudy Cortes&lt;br /&gt;&lt;br /&gt;shadingnormal - pixars faceforward util&lt;br /&gt;lcSchlickFresnel - a fresnel approximation&lt;br /&gt;lcFresnel - a full on fresnel function&lt;br /&gt;lcOrenNayar - a nice diffuse shading model&lt;br /&gt;lcSeeliger&lt;br /&gt;lcDiffuseWrap&lt;br /&gt;lcDiffuseBias&lt;br /&gt;lcSpecPhong&lt;br /&gt;lcSpecGlossy - glossy ceramic like model&lt;br /&gt;lcSpecSchlick&lt;br /&gt;lcSpecWestinMetal&lt;br /&gt;lcGather - raytracing using 'gather', also supports a env map where ray is null&lt;br /&gt;lcEnv - environment mapping&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-1069593820243468024?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/1069593820243468024/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2008/07/lcillumination.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/1069593820243468024?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/1069593820243468024?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2008/07/lcillumination.html" title="lcIllumination.h" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkQNQ3k-eip7ImA9WxRRE0s.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-917850878924650351</id><published>2008-07-01T11:55:00.009-04:00</published><updated>2008-09-25T13:39:52.752-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-25T13:39:52.752-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="renderman" /><title>lcBasicShader.sl</title><content type="html">&lt;a href="http://media.leocov.com/blog/rsl/surface/lcBasicShader.sl"&gt;lcBasicShader.sl&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a basic Renderman shader with alot of AOV's exposed.  Writen with 3Delight in mind but should work with other renderman compliant renderers.&lt;br /&gt;&lt;br /&gt;has aov's for diffuse, ambient, specular, reflection, occlusion, opacity (alpha), subsurface, fresnel, and id.&lt;br /&gt;&lt;br /&gt;you can map many of the attributes with a texture file as well.&lt;br /&gt;&lt;br /&gt;most of the operations are done via functions from &lt;a href="http://blog.leocov.com/2008/07/lcillumination.html"&gt;lcIllumination.h&lt;/a&gt; or &lt;a href="http://blog.leocov.com/2008/07/lcutilh.html"&gt;lcUtil.h&lt;/a&gt; and can be easily swapped out.&lt;br /&gt;&lt;br /&gt;- tested only with 3Delight renderman&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-917850878924650351?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/917850878924650351/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2008/07/lcbasicshader.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/917850878924650351?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/917850878924650351?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2008/07/lcbasicshader.html" title="lcBasicShader.sl" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;DkQFQ3k-fyp7ImA9WxRRE0s.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-6968467638035188438</id><published>2008-07-01T11:42:00.005-04:00</published><updated>2008-09-25T13:38:32.757-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-25T13:38:32.757-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maya" /><category scheme="http://www.blogger.com/atom/ns#" term="mel" /><title>yet another Fake IBL</title><content type="html">&lt;a href="http://media.leocov.com/blog/scripts/lcFakeIBL.mel"&gt;lcFakeIBL.mel&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This one is very 'beta', use at your own risk&lt;br /&gt;&lt;br /&gt;Creates a dome of lights who's color is based on the texture sampled from a sphere&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://media.leocov.com/blog/scripts/lcFakeIBL.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://media.leocov.com/blog/scripts/lcFakeIBL.jpg" alt="" border="0" /&gt;&lt;/a&gt;Set the number of lights - more are neccessary for more detailed lighting, for example if you use a file texture.&lt;br /&gt;&lt;br /&gt;Create the Sphere first, adjust its shader/texture to your liking as well as scale.&lt;br /&gt;&lt;br /&gt;With the sphere selected, create the lights with 'Add Lights/Remake Lights'.  if you change the spheres shader or texture you have to remake the lights.&lt;br /&gt;&lt;br /&gt;adjust the 'Intensity Multipyer' to increase or decrease the intensity of all the lights.&lt;br /&gt;&lt;br /&gt;A helper node called IBL:HelperNode is created by the script, with all the adjustable attributes, so the script interface is not neccessary to adjust the lights.&lt;br /&gt;This node can be selected by unchecking 'show DAG objects only' in the Outliner.&lt;br /&gt;&lt;br /&gt;PS: the code for the mental ray vertex color baking is probably the most interesting part of this mel script and exploring that was one of the main reasons for writing this script&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-6968467638035188438?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/6968467638035188438/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2008/07/yet-another-fake-ibl.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/6968467638035188438?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/6968467638035188438?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2008/07/yet-another-fake-ibl.html" title="yet another Fake IBL" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkQGQHc4eSp7ImA9WxFTE08.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-3518902674541000041</id><published>2008-07-01T11:38:00.007-04:00</published><updated>2010-04-03T14:45:21.931-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-03T14:45:21.931-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maya" /><category scheme="http://www.blogger.com/atom/ns#" term="mel" /><title>Source Script - a mini dev utility</title><content type="html">&lt;p&gt;&lt;a href="http://media.leocov.com/blog/scripts/lcSourceScript.mel"&gt;lcSourceScript.mel&lt;/a&gt;    &lt;br /&gt;    &lt;br /&gt;type the name of a script - must be located in one of the maya script paths, such as 'my documents/maya/scripts/'    &lt;br /&gt;You can source it, or source and run it. This is useful when writing scripts with an external application and lets you update and test your changes.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="lcSourceScript" border="0" alt="lcSourceScript" src="http://lh4.ggpht.com/_ondEZc7yU8s/S7eMwRXLKoI/AAAAAAAAAOI/azsqcZv9p1s/lcSourceScript%5B1%5D%5B5%5D.jpg?imgmax=800" width="331" height="108" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-3518902674541000041?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/3518902674541000041/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2008/07/souce-script-mini-dev-utility.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/3518902674541000041?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/3518902674541000041?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2008/07/souce-script-mini-dev-utility.html" title="Source Script - a mini dev utility" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;AkQGRn45fCp7ImA9WxRSEko.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-7606476361321567325</id><published>2008-07-01T11:24:00.005-04:00</published><updated>2008-09-12T23:58:47.024-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-12T23:58:47.024-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maya" /><category scheme="http://www.blogger.com/atom/ns#" term="mel" /><title>3 new mel scripts</title><content type="html">&lt;a href="http://media.leocov.com/blog/scripts/lcTransferAttr.mel"&gt;lcTransferAttr.mel&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Use this script to transfer uv infromation from one object to any number of duplicates.  objects must have the same point order.  Select the targets first, select the source object last.  Type lcTransferAttr to run.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://media.leocov.com/blog/scripts/lcFixNormals.mel"&gt;lcFixNormals.mel&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This script performs an important cleanup operation on geometry that is mirrored using -1 scaling.  After scaling an object, if you freeze the transforms, a funny thing happens, the 'opposite' attribute will be activated so that even though the surface normals are flipped, the object displays correctly. It would be better to set the display attributes correctly and flip the normals to their proper orientation.  This script flips the normals and adjusts the attributes of objects with the 'opposite' attribute activated.  Select your geometry, type lcFixNormals to run.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://media.leocov.com/blog/scripts/lcMakeDisp.mel"&gt;lcMakeDisp.mel&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://media.leocov.com/blog/scripts/lcMakeDisp.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://media.leocov.com/blog/scripts/lcMakeDisp.jpg" alt="" border="0" /&gt;&lt;/a&gt;Select an object, enter a name and press 'Make it' to run.  creates a shader and corresponding shading network on the selected object setup for displacement mapping. also creates and assigns corresponding Approximation Nodes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-7606476361321567325?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/7606476361321567325/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2008/07/3-new-scripts.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/7606476361321567325?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/7606476361321567325?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2008/07/3-new-scripts.html" title="3 new mel scripts" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;AkUMSHgyeip7ImA9WxRSEko.&quot;"><id>tag:blogger.com,1999:blog-8234951230122997884.post-3028316543873801543</id><published>2008-07-01T10:13:00.003-04:00</published><updated>2008-09-12T23:58:09.692-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-12T23:58:09.692-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maya" /><category scheme="http://www.blogger.com/atom/ns#" term="mel" /><title>Mental Ray Batch Bake - Update</title><content type="html">&lt;a href="http://media.leocov.com/blog/scripts/lcMrBatchBake.mel"&gt;&lt;span style="font-weight: bold;"&gt;lcMrBatchBake.mel&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This utility gives an easy to use interface for mentalrays texture baking abilites - bake shaders, lighting, shadows to a texture file.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://media.leocov.com/blog/scripts/lcMrBatchBake.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://media.leocov.com/blog/scripts/lcMrBatchBake.jpg" alt="" border="0" /&gt;&lt;/a&gt;You can create a bake set with a custom name, and it will be assigned to the currently selected objects.&lt;br /&gt;&lt;br /&gt;bake sets from the current scene will be listed in the 'Sets' list.  You can assign more objects to the set or select the objects currently in the set.&lt;br /&gt;&lt;br /&gt;to view the set and its objects in more detail open the Outliner, select a set and check its attributes in the Attribute Editor to set resolution and file type.&lt;br /&gt;&lt;br /&gt;Bake Camera is only neccessary in certain situations and can be left alone or set to the rendering camera&lt;br /&gt;&lt;br /&gt;Bake Shadows is neccessary for shadows or Ambient Occlussion&lt;br /&gt;&lt;br /&gt;File Output Directory: by default goes to the current project in 'Project'/renderData/mentalray/lightMap&lt;br /&gt;&lt;br /&gt;specify your own directory such as D:/textures&lt;br /&gt;(make sure you use forward slashes '/')&lt;br /&gt;this directory must have a folder 'lightMap' already created.  So the full path would be D:/textures/lightMap&lt;br /&gt;&lt;br /&gt;Big Bake It button executes the render, be aware it can take some time.&lt;br /&gt;&lt;br /&gt;If there is a problem with the interface, sets dont show up in the list, Reset the interface with the 'Reset' button.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8234951230122997884-3028316543873801543?l=blog.leocov.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.leocov.com/feeds/3028316543873801543/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.leocov.com/2008/07/mental-ray-batch-bake-update.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/3028316543873801543?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8234951230122997884/posts/default/3028316543873801543?v=2" /><link rel="alternate" type="text/html" href="http://blog.leocov.com/2008/07/mental-ray-batch-bake-update.html" title="Mental Ray Batch Bake - Update" /><author><name>Leo</name><uri>http://www.blogger.com/profile/04153191459195687236</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="18136890369497512904" /></author><thr:total>0</thr:total></entry></feed>
