50 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*
 | 
						|
Language: RenderMan RSL
 | 
						|
Author: Konstantin Evdokimenko <qewerty@gmail.com>
 | 
						|
Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
 | 
						|
Website: https://renderman.pixar.com/resources/RenderMan_20/shadingLanguage.html
 | 
						|
Category: graphics
 | 
						|
*/
 | 
						|
 | 
						|
function rsl(hljs) {
 | 
						|
  return {
 | 
						|
    name: 'RenderMan RSL',
 | 
						|
    keywords: {
 | 
						|
      keyword:
 | 
						|
        'float color point normal vector matrix while for if do return else break extern continue',
 | 
						|
      built_in:
 | 
						|
        'abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise ' +
 | 
						|
        'clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp ' +
 | 
						|
        'faceforward filterstep floor format fresnel incident length lightsource log match ' +
 | 
						|
        'max min mod noise normalize ntransform opposite option phong pnoise pow printf ' +
 | 
						|
        'ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp ' +
 | 
						|
        'setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan ' +
 | 
						|
        'texture textureinfo trace transform vtransform xcomp ycomp zcomp'
 | 
						|
    },
 | 
						|
    illegal: '</',
 | 
						|
    contains: [
 | 
						|
      hljs.C_LINE_COMMENT_MODE,
 | 
						|
      hljs.C_BLOCK_COMMENT_MODE,
 | 
						|
      hljs.QUOTE_STRING_MODE,
 | 
						|
      hljs.APOS_STRING_MODE,
 | 
						|
      hljs.C_NUMBER_MODE,
 | 
						|
      {
 | 
						|
        className: 'meta',
 | 
						|
        begin: '#',
 | 
						|
        end: '$'
 | 
						|
      },
 | 
						|
      {
 | 
						|
        className: 'class',
 | 
						|
        beginKeywords: 'surface displacement light volume imager',
 | 
						|
        end: '\\('
 | 
						|
      },
 | 
						|
      {
 | 
						|
        beginKeywords: 'illuminate illuminance gather',
 | 
						|
        end: '\\('
 | 
						|
      }
 | 
						|
    ]
 | 
						|
  };
 | 
						|
}
 | 
						|
 | 
						|
module.exports = rsl;
 |