Download: lcNextGenShader_1.3.fx
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.
Download: lcNextGenShader_1.3.fx
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.
Download: lcNextGenShader_1.2.fx
Update includes the following changes/additions:
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.
useHalfLambert – use Valve’s half lambert diffuse shading model – wraps light around forms more for a softer look, useful for backlighting situations
sssWeight - the overall intensity of the SSS effect
sssBack - Color of the SSS edge bleed effect
sssRadius - how far across the surface the SSS effect will bleed
useGlossMap - use a gloss map texture yes/no
glossBlurWeight - the overall amount of blurring to the env cube map reflections - 0 turns off the blurring effect
glossBlurMax - the specular glossiness value after which no blurring will happen - usefull for tweaking the blur amount based on your spec glossiness value
glossMap - the gloss map texture (darker values dont work very well here - black turn off specularity)
Thanks goes to Joel Styles – inspiration for the sss function - reading over your hlsl code makes for good learning
Interested in Tutorials? I contribute many of the tutorials at www.cgbootcamp.com – we cover all kinds of topics in the 3D world – check it out.
Download: lcNextGenShader_1.15.fx
Update to the shader includes:
Fresnel attributes (fresnel no longer hard coded and now affects both cubemap reflections and specularity)
frBias – changes how far across the surface the effect occurs
frETA – bumps up the intensity in the ‘center’ area
frPower – Power/intensity multiplier on the entire effect
Real-time HLSL Shader for Maya’s Viewport and HLSL helper Mel script.
Download: lcNextGenShader_1.1.fx
Sample Cube Map: default_env_map.dds
Techniques:
NextGen_SM3 – full shading (requires shader model 3 capable graphics card)
Diffuse_Texture_Only – only the diffuse texture or color, without any other effects
Normal_Map_As_Color – only the normal map color values (helps to find seams)
Specular_Only_SM3 – only the specular effects, light and specular map contributions (requires shader model 3 capable graphics)
Parameters:
backFaceLighting – for single sided polygon objects, the back sides will be lit correctly
ambientColor – a color ‘added’ on top of the final effect
diffuseColor – the Lambert diffuse shading color
specularColor – the Phong specular shading color
glossiness – controls the size of the Phong specular highlight
useDiffuseTexture – use the diffuse texture from ‘diffuseMap’ instead of diffuseColor
transparencyInDiffuse – use the diffuseMap’s alpha channel for transparency
specularInDiffuse – use the diffuseMap’s alpha channel for specular masking
diffuseMap – a diffuse texture
useNormalTexture – use a tangent space normal map texture
specularInNormal – use the normalMap’s alpha channel for specular masking
normalPower – intensity of the normal map effect, 0=no effect
flipGreen – invert the green channel of the normal map (default = true)
normalMap – a tangent space normal map texture
useSpecularMap – use a specularMap for specular coloring and masking
specularMap – a specular texture for highlight coloring and masking
useAmbEnv – use cubeEnvMap for ambient environment lighting – cube map is forced down in mip levels – make sure to use a cube map processed by ATI CubeMapGen for proper filtering
ambPower – intensity of the ambient environment lighting – also multiplied with the ambientColor
useReflEnv - use cubeEnvMap for environment reflections
reflPower – intensity of the environment reflections (has a slight hardcoded Fresnel effect)
cubeEnvMap – a cube map – preferably one processed by ATI CubeMapGen for proper filtering
useGlowTexture – use glowMap for self illumination effects
glowPower – the intensity of the self illumination effect
glowMap – a texture that is ‘added’ on top of the final shader result – self illumination/incandescence
useLightFalloff – use falloff on the point lights
decayScale – scale of the light falloff for the point lights
Note: 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.
Textures in TGA or DDS formats provide the best compatibly with the DirectX environment.
Download: lcHLSLTools.mel
Run with command – lcHLSLTools;
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
Any objects you have selected will be assigned the new shader when you press ‘Make New HLSL Shader’
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.
lcUVMover.zip (script and icons)
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.
check readme.txt for instructions
run with command – lcUVMover;

Opens a small window – type a number in the first field (polycount) – the rest will auto-fill with polycounts calcuated at 8 additional levels.
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.
