Home

https://bitbucket.org/anderslanglands/alshaders/downloads/jade_dragon_balls.jpg

DOWNLOAD

You can download the library either by cloning the git repository or by using one of the links below:

Latest stable version: 0.3.3 (2013/09/06) Release Notes

Binaries compiled against Arnold 4.0.14.0 (Compatible with MtoA 0.23.0 or later).

Read the included BUILD_INSTRUCTIONS.txt for instructions on building (if downloading the source package) and installing the shaders.


Overview

alShaders is a work-in-progress production shading library for SolidAngle's Arnold. It currently contains a surface shader and a few utility shaders, and the aim is to slowly build it into a full-featured production-quality shader library. As it is in constant development it is liable to change at any time and there's a good chance plenty of stuff is broken.

The library is developed by me, Anders Langlands, as a personal learning project and should in no way be associated with my employer.

The library is released as open source under the MIT licence. Please see the licence section below for terms and conditions.


Mailing List

Please email alshaders@googlegroups.com with any questions, bug reports or feature requests. Sign up to the mailing list to be notified of new releases.


The Shaders

Click on the shader names below for the documentation (currently only alSurface is documented).

alSurface

A general-purpose, physically plausible surface shader. It supports diffuse, backlighting, emission, subsurface, two layers of (glossy) specular and (glossy) transmission including single scattering.

When used correctly the shader is energy conserving and correctly handles fresnel per microfacet. The images below show the effect of this on a basic skin shader. Note how the alSurface render on the left does not display the dark edges and artificially bright rim highlights in the aiStandard render on the right. The render times for both images were roughly equal.

https://bitbucket.org/anderslanglands/alshaders/downloads/skin_comparison3.jpg

The shader also supports outputting an aov per light (or group of lights) that includes all the indirect illumination caused by that light. The four smaller images below add up to make the larger image, which is exactly the same as the beauty.

https://bitbucket.org/anderslanglands/alshaders/downloads/lg.jpg

alHair

A (very) WIP implementation of ISHair: Importance Sampling for Hair Scattering by Ou et. al.

https://bitbucket.org/anderslanglands/alshaders/downloads/alHair.jpeg

alBlackbody

A blackbody radiation shader that generates a plausible emission colour given the temperature of the material. Intended for hot things and light sources.


alCombine

Utility shaders to combine float and color types in various ways (multiply, mix etc)


alColorSpace

Node to convert sRGB and log images to linear for use in rendering


alLayer

Shader to layer two surface shaders together

https://bitbucket.org/anderslanglands/alshaders/downloads/alLayer_glass_goldleaf.png

alCellNoise

A cellnoise pattern generator with various different options for distance metrics and their combination

https://bitbucket.org/anderslanglands/alshaders/downloads/cellnoises.png

alFractal

A fractal pattern generator capable of generating fBm, turbulence and (ridged) multi-fractal patterns.

https://bitbucket.org/anderslanglands/alshaders/downloads/noises.png

alGaborNoise

A gabor noise pattern generator

https://bitbucket.org/anderslanglands/alshaders/downloads/gabor_noise.jpeg

alFlowNoise

A flow noise pattern generator

https://bitbucket.org/anderslanglands/alshaders/downloads/flow_noise.jpeg

alPattern

Basic 1D pattern generation - sine, saw etc.


alPhotometric

Light filter for photometric light data. Currently supports IES files only.

https://bitbucket.org/anderslanglands/alshaders/downloads/alPhotometric.png

alRemap

Utility shaders for remapping and adjusting float and color values.


alInputVector

Utility shader for grabbing certain vector and point-like attributes from the shader globals (e.g. N, P, uv etc) for use in your shader networks.


Contributors

  • Jonah Friedman
  • Tony Barbieri

Thanks to

  • Marcos Fajardo
  • Borja Morales
  • Alan King
  • Frederic Servant
  • Stephen DeLalla
  • Marcel Reinhard
  • Jan Walter

Licence

Copyright (c) 2012 Anders Langlands

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Updated

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.