Skip to main content
Glama

MCP 3D Printer Server

LUTPass.js1.66 kB
import { ShaderPass } from './ShaderPass.js'; const LUTShader = { name: 'LUTShader', uniforms: { lut: { value: null }, lutSize: { value: 0 }, tDiffuse: { value: null }, intensity: { value: 1.0 }, }, vertexShader: /* glsl */` varying vec2 vUv; void main() { vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); } `, fragmentShader: /* glsl */` uniform float lutSize; uniform sampler3D lut; varying vec2 vUv; uniform float intensity; uniform sampler2D tDiffuse; void main() { vec4 val = texture2D( tDiffuse, vUv ); vec4 lutVal; // pull the sample in by half a pixel so the sample begins // at the center of the edge pixels. float pixelWidth = 1.0 / lutSize; float halfPixelWidth = 0.5 / lutSize; vec3 uvw = vec3( halfPixelWidth ) + val.rgb * ( 1.0 - pixelWidth ); lutVal = vec4( texture( lut, uvw ).rgb, val.a ); gl_FragColor = vec4( mix( val, lutVal, intensity ) ); } `, }; class LUTPass extends ShaderPass { set lut( v ) { const material = this.material; if ( v !== this.lut ) { material.uniforms.lut.value = null; if ( v ) { material.uniforms.lutSize.value = v.image.width; material.uniforms.lut.value = v; } } } get lut() { return this.material.uniforms.lut.value; } set intensity( v ) { this.material.uniforms.intensity.value = v; } get intensity() { return this.material.uniforms.intensity.value; } constructor( options = {} ) { super( LUTShader ); this.lut = options.lut || null; this.intensity = 'intensity' in options ? options.intensity : 1; } } export { LUTPass };

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DMontgomery40/mcp-3D-printer-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server