Todos los ejemplos · Shaders y post

Shaders portables

Qué enseña este ejemplo

Un material propio es WGSL, y WebGL2 no puede compilar WGSL: el motor no finge traducirlo. Así que un material puede llevar una segunda mitad en GLSL ES 300 (fragmentGlsl, vertexGlsl), y cada renderizador coge la que habla. Aquí la misma esfera con sombreado cel funciona en los dos.

Las mitades son un solo shader escrito dos veces, así que comparten los parámetros: mu.steps se genera una vez y lo leen las dos. Un fichero de shader puede llevar ambas bajo una sola cabecera @shader/@uniform, que es la mejor forma: con dos ficheros la cabecera vive dos veces y las mitades pueden separarse. Mejor aún un grafo .shader: mira Portable por construcción.

Arrancando