Skip to content

Commit d7f3dda

Browse files
author
Mike Bond
committed
Move UV defines into a mixin
1 parent b3e25ff commit d7f3dda

File tree

5 files changed

+46
-43
lines changed

5 files changed

+46
-43
lines changed

packages/dev/core/src/Materials/Node/nodeMaterial.ts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ import { ShaderLanguage } from "../shaderLanguage";
7272
import { AbstractEngine } from "../../Engines/abstractEngine";
7373
import type { LoopBlock } from "./Blocks/loopBlock";
7474
import { MaterialHelperGeometryRendering } from "../materialHelper.geometryrendering";
75+
import { UVDefinesMixin } from "../uv.defines";
7576

7677
const onCreatedEffectParameters = { effect: null as unknown as Effect, subMesh: null as unknown as Nullable<SubMesh> };
7778

@@ -91,7 +92,7 @@ export interface INodeMaterialEditorOptions {
9192
};
9293
}
9394

94-
class NodeMaterialDefinesBase extends MaterialDefines {}
95+
class NodeMaterialDefinesBase extends UVDefinesMixin(MaterialDefines) {}
9596

9697
/** @internal */
9798
export class NodeMaterialDefines extends ImageProcessingDefinesMixin(NodeMaterialDefinesBase) {
@@ -101,18 +102,6 @@ export class NodeMaterialDefines extends ImageProcessingDefinesMixin(NodeMateria
101102
public TANGENT = false;
102103
/** Vertex color */
103104
public VERTEXCOLOR_NME = false;
104-
/** Uv1 **/
105-
public UV1 = false;
106-
/** Uv2 **/
107-
public UV2 = false;
108-
/** Uv3 **/
109-
public UV3 = false;
110-
/** Uv4 **/
111-
public UV4 = false;
112-
/** Uv5 **/
113-
public UV5 = false;
114-
/** Uv6 **/
115-
public UV6 = false;
116105

117106
/** Prepass **/
118107
public PREPASS = false;

packages/dev/core/src/Materials/PBR/pbrBaseMaterial.ts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,11 @@ import {
6868
} from "../materialHelper.functions";
6969
import { ShaderLanguage } from "../shaderLanguage";
7070
import { MaterialHelperGeometryRendering } from "../materialHelper.geometryrendering";
71+
import { UVDefinesMixin } from "../uv.defines";
7172

7273
const onCreatedEffectParameters = { effect: null as unknown as Effect, subMesh: null as unknown as Nullable<SubMesh> };
7374

74-
class PBRMaterialDefinesBase extends MaterialDefines {}
75+
class PBRMaterialDefinesBase extends UVDefinesMixin(MaterialDefines) {}
7576

7677
/**
7778
* Manages the defines for the PBR Material.
@@ -83,18 +84,6 @@ export class PBRMaterialDefines extends ImageProcessingDefinesMixin(PBRMaterialD
8384
public NUM_SAMPLES = "0";
8485
public REALTIME_FILTERING = false;
8586
public IBL_CDF_FILTERING = false;
86-
public MAINUV1 = false;
87-
public MAINUV2 = false;
88-
public MAINUV3 = false;
89-
public MAINUV4 = false;
90-
public MAINUV5 = false;
91-
public MAINUV6 = false;
92-
public UV1 = false;
93-
public UV2 = false;
94-
public UV3 = false;
95-
public UV4 = false;
96-
public UV5 = false;
97-
public UV6 = false;
9887

9988
public ALBEDO = false;
10089
public GAMMAALBEDO = false;

packages/dev/core/src/Materials/standardMaterial.ts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -61,19 +61,14 @@ import {
6161
import { SerializationHelper } from "../Misc/decorators.serialization";
6262
import { ShaderLanguage } from "./shaderLanguage";
6363
import { MaterialHelperGeometryRendering } from "./materialHelper.geometryrendering";
64+
import { UVDefinesMixin } from "./uv.defines";
6465

6566
const onCreatedEffectParameters = { effect: null as unknown as Effect, subMesh: null as unknown as Nullable<SubMesh> };
6667

67-
class StandardMaterialDefinesBase extends MaterialDefines {}
68+
class StandardMaterialDefinesBase extends UVDefinesMixin(MaterialDefines) {}
6869

6970
/** @internal */
7071
export class StandardMaterialDefines extends ImageProcessingDefinesMixin(StandardMaterialDefinesBase) {
71-
public MAINUV1 = false;
72-
public MAINUV2 = false;
73-
public MAINUV3 = false;
74-
public MAINUV4 = false;
75-
public MAINUV5 = false;
76-
public MAINUV6 = false;
7772
public DIFFUSE = false;
7873
public DIFFUSEDIRECTUV = 0;
7974
public BAKED_VERTEX_ANIMATION_TEXTURE = false;
@@ -113,12 +108,6 @@ export class StandardMaterialDefines extends ImageProcessingDefinesMixin(Standar
113108
public FRESNEL = false;
114109
public NORMAL = false;
115110
public TANGENT = false;
116-
public UV1 = false;
117-
public UV2 = false;
118-
public UV3 = false;
119-
public UV4 = false;
120-
public UV5 = false;
121-
public UV6 = false;
122111
public VERTEXCOLOR = false;
123112
public VERTEXALPHA = false;
124113
public NUM_BONE_INFLUENCERS = 0;
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
type Constructor<T = {}> = new (...args: any[]) => T;
2+
3+
/**
4+
* Mixin to add UV defines to your material defines
5+
* @internal
6+
*/
7+
export function UVDefinesMixin<Tbase extends Constructor>(base: Tbase) {
8+
return class extends base {
9+
public MAINUV1 = false;
10+
public MAINUV2 = false;
11+
public MAINUV3 = false;
12+
public MAINUV4 = false;
13+
public MAINUV5 = false;
14+
public MAINUV6 = false;
15+
public UV1 = false;
16+
public UV2 = false;
17+
public UV3 = false;
18+
public UV4 = false;
19+
public UV5 = false;
20+
public UV6 = false;
21+
};
22+
}

packages/dev/materials/src/water/waterMaterial.ts

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import type { BaseTexture } from "core/Materials/Textures/baseTexture";
1313
import { RenderTargetTexture } from "core/Materials/Textures/renderTargetTexture";
1414
import type { IEffectCreationOptions } from "core/Materials/effect";
1515
import { MaterialDefines } from "core/Materials/materialDefines";
16-
import { ImageProcessingDefinesMixin } from "core/Materials/imageProcessingConfiguration.defines";
16+
import type { IImageProcessingConfigurationDefines } from "core/Materials/imageProcessingConfiguration.defines";
1717
import { ImageProcessingConfiguration } from "core/Materials/imageProcessingConfiguration";
1818
import { PushMaterial } from "core/Materials/pushMaterial";
1919
import { MaterialFlags } from "core/Materials/materialFlags";
@@ -47,9 +47,7 @@ import {
4747

4848
import "core/Rendering/boundingBoxRenderer";
4949

50-
class WaterMaterialDefinesBase extends MaterialDefines {}
51-
52-
class WaterMaterialDefines extends ImageProcessingDefinesMixin(WaterMaterialDefinesBase) {
50+
class WaterMaterialDefines extends MaterialDefines implements IImageProcessingConfigurationDefines {
5351
public BUMP = false;
5452
public REFLECTION = false;
5553
public CLIPPLANE = false;
@@ -79,6 +77,22 @@ class WaterMaterialDefines extends ImageProcessingDefinesMixin(WaterMaterialDefi
7977
public BUMPAFFECTSREFLECTION = false;
8078
public USE_WORLD_COORDINATES = false;
8179

80+
public IMAGEPROCESSING = false;
81+
public VIGNETTE = false;
82+
public VIGNETTEBLENDMODEMULTIPLY = false;
83+
public VIGNETTEBLENDMODEOPAQUE = false;
84+
public TONEMAPPING = 0;
85+
public CONTRAST = false;
86+
public EXPOSURE = false;
87+
public COLORCURVES = false;
88+
public COLORGRADING = false;
89+
public COLORGRADING3D = false;
90+
public SAMPLER3DGREENDEPTH = false;
91+
public SAMPLER3DBGRMAP = false;
92+
public DITHER = false;
93+
public IMAGEPROCESSINGPOSTPROCESS = false;
94+
public SKIPFINALCOLORCLAMP = false;
95+
8296
constructor() {
8397
super();
8498
this.rebuild();

0 commit comments

Comments
 (0)