Temechon d3af259f5e Lava material updated with shader includes vor 9 Jahren
..
dist f16623b3a4 Minor Fix vor 9 Jahren
materials d3af259f5e Lava material updated with shader includes vor 9 Jahren
test 4fc17a54e3 Fix scalar mode in pbr vor 9 Jahren
config.json 67de58db6c Add hdr cube texture support (moving from mat lib to core) vor 9 Jahren
gulp-srcToVariable.js d165b4dc50 Renaming shaders lib to materials lib vor 9 Jahren
gulpfile.js c60b5f0e7c PBR: Add HDR File support for environment lighting. vor 9 Jahren
package.json d165b4dc50 Renaming shaders lib to materials lib vor 9 Jahren
readme.md 6060deb241 Update readme.md vor 9 Jahren

readme.md

# Materials library

To get a detailled tutorial, please read the documentation

For every material, you can find a detailled documentation here under materials library tag.

Using a material from the library

You can find multiple materials that just works with Babylon.js in dist folder. To use then, you only need to reference the associated .js file and use the new provided material:

var simple = new BABYLON.SimpleMaterial("simple", scene);
sphere.material = simple;

Adding a new material to the library

To add a new material, you have to create your own folder in materials folder. Then you need to add a .ts file an two .fx files:

  • The .ts is the TypeScript code of your material
  • .fx files: GLSL code for vertex and fragment shaders

The best way to start a new material is to copy/past the simple material. This material provides all the features required by a Babylon.js material:

  • Bones support
  • Instances support
  • Support for up to 4 lights
  • Cache support
  • Shadows support
  • Fog support
  • Point rendering support
  • Clip plane support

But you can also start from scratch as you are not forced to support all these features.

Integrating the material in the build process

To build all materials and generate the dist folder, just run:

gulp

To integrate your new material to the build process, you have to edit the config.sjon file and add an entry in the "materials" section of the file:

{
  "materials": [
    {
      "file": "shaders/simple/babylon.simpleMaterial.ts",
      "shaderFiles": [
        "shaders/simple/simple.vertex.fx",
        "shaders/simple/simple.fragment.fx"
      ],
      "output": "babylon.simpleMaterial.js"
    }
  ],
  "build": {
    "distOutputDirectory": "dist/"
  }
}

Testing your material

To test your material, you can use the /test/index.html file by adding a reference to your .js file. Then you will need to update the code to create an instance of your material and reference it in the UI system:

gui.add(options, 'material', ['standard', 'simple']).onFinishChange(function () {
					switch (options.material) {
						case "simple":
							currentMaterial = simple;
							break;
						default:
							currentMaterial = std;
							break;
					}

					currentMesh.material = currentMaterial;
				});

This page allows you to test your code with animated meshes, shadows, various kinds of lights and fog. Just use the UI on the right to turn features on and off.

To serve this page, you can start:

gulp webserver