UNPKG

2.51 kBTypeScriptView Raw
1import { IUniform } from '../renderers/shaders/UniformsLib';
2import { MaterialParameters, Material } from './Material';
3import { GLSLVersion } from '../constants';
4
5export interface ShaderMaterialParameters extends MaterialParameters {
6 uniforms?: { [uniform: string]: IUniform } | undefined;
7 vertexShader?: string | undefined;
8 fragmentShader?: string | undefined;
9 linewidth?: number | undefined;
10 wireframe?: boolean | undefined;
11 wireframeLinewidth?: number | undefined;
12 lights?: boolean | undefined;
13 clipping?: boolean | undefined;
14
15 extensions?:
16 | {
17 derivatives?: boolean | undefined;
18 fragDepth?: boolean | undefined;
19 drawBuffers?: boolean | undefined;
20 shaderTextureLOD?: boolean | undefined;
21 }
22 | undefined;
23 glslVersion?: GLSLVersion | undefined;
24}
25
26export class ShaderMaterial extends Material {
27 constructor(parameters?: ShaderMaterialParameters);
28
29 /**
30 * @default 'ShaderMaterial'
31 */
32 type: string;
33
34 /**
35 * @default {}
36 */
37 defines: { [key: string]: any };
38
39 /**
40 * @default {}
41 */
42 uniforms: { [uniform: string]: IUniform };
43 vertexShader: string;
44 fragmentShader: string;
45
46 /**
47 * @default 1
48 */
49 linewidth: number;
50
51 /**
52 * @default false
53 */
54 wireframe: boolean;
55
56 /**
57 * @default 1
58 */
59 wireframeLinewidth: number;
60
61 /**
62 * @default false
63 */
64 fog: boolean;
65
66 /**
67 * @default false
68 */
69 lights: boolean;
70
71 /**
72 * @default false
73 */
74 clipping: boolean;
75
76 /**
77 * @deprecated Use {@link ShaderMaterial#extensions.derivatives extensions.derivatives} instead.
78 */
79 derivatives: any;
80
81 /**
82 * @default { derivatives: false, fragDepth: false, drawBuffers: false, shaderTextureLOD: false }
83 */
84 extensions: {
85 derivatives: boolean;
86 fragDepth: boolean;
87 drawBuffers: boolean;
88 shaderTextureLOD: boolean;
89 };
90
91 /**
92 * @default { 'color': [ 1, 1, 1 ], 'uv': [ 0, 0 ], 'uv2': [ 0, 0 ] }
93 */
94 defaultAttributeValues: any;
95
96 /**
97 * @default undefined
98 */
99 index0AttributeName: string | undefined;
100
101 /**
102 * @default false
103 */
104 uniformsNeedUpdate: boolean;
105
106 /**
107 * @default null
108 */
109 glslVersion: GLSLVersion | null;
110
111 isShaderMaterial: boolean;
112
113 setValues(parameters: ShaderMaterialParameters): void;
114 toJSON(meta: any): any;
115}