David Catuhe 5 år sedan
förälder
incheckning
ce6811bf6e

+ 1 - 1
nodeEditor/src/components/nodeList/nodeListComponent.tsx

@@ -144,7 +144,7 @@ export class NodeListComponent extends React.Component<INodeListComponentProps,
             Matrices: ["Matrix", "WorldMatrixBlock", "WorldViewMatrixBlock", "WorldViewProjectionMatrixBlock", "ViewMatrixBlock", "ViewProjectionMatrixBlock", "ProjectionMatrixBlock"],
             Mesh: ["InstancesBlock", "PositionBlock", "UVBlock", "ColorBlock", "NormalBlock", "PerturbNormalBlock", "NormalBlendBlock" , "TangentBlock", "MatrixIndicesBlock", "MatrixWeightsBlock", "WorldPositionBlock", "WorldNormalBlock", "WorldTangentBlock", "FrontFacingBlock"], 
             Noises: ["RandomNumberBlock", "SimplexPerlin3DBlock", "WorleyNoise3DBlock"],
-            Output_Blocks: ["VertexOutputBlock", "FragmentOutputBlock", "DiscardBlock"],
+            Output_Nodes: ["VertexOutputBlock", "FragmentOutputBlock", "DiscardBlock"],
             Range: ["ClampBlock", "RemapBlock", "NormalizeBlock"],
             Round: ["RoundBlock", "CeilingBlock", "FloorBlock"],
             Scene: ["FogBlock", "CameraPositionBlock", "FogColorBlock", "ImageProcessingBlock", "LightBlock", "LightInformationBlock", "ViewDirectionBlock"],

+ 24 - 0
nodeEditor/src/diagram/display/discardDisplayManager.ts

@@ -0,0 +1,24 @@
+import { IDisplayManager } from './displayManager';
+import { NodeMaterialBlock } from 'babylonjs/Materials/Node/nodeMaterialBlock';
+
+export class DiscardDisplayManager implements IDisplayManager {
+    public getHeaderClass(block: NodeMaterialBlock) {
+        return "";
+    }
+
+    public shouldDisplayPortLabels(block: NodeMaterialBlock): boolean {
+        return true;
+    }
+
+    public getHeaderText(block: NodeMaterialBlock): string {
+        return block.name;
+    }
+
+    public getBackgroundColor(block: NodeMaterialBlock): string {
+        return "#540b0b";
+    }
+
+    public updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void {       
+        contentArea.classList.add("discard-block");
+    }
+}

+ 2 - 0
nodeEditor/src/diagram/displayLedger.ts

@@ -5,6 +5,7 @@ import { GradientDisplayManager } from './display/gradientDisplayManager';
 import { RemapDisplayManager } from './display/remapDisplayManager';
 import { TrigonometryDisplayManager } from './display/trigonometryDisplayManager';
 import { TextureDisplayManager } from './display/textureDisplayManager';
+import { DiscardDisplayManager } from './display/discardDisplayManager';
 
 export class DisplayLedger {
     public static RegisteredControls: {[key: string] : any} = {};
@@ -19,3 +20,4 @@ DisplayLedger.RegisteredControls["RemapBlock"] = RemapDisplayManager;
 DisplayLedger.RegisteredControls["TrigonometryBlock"] = TrigonometryDisplayManager;
 DisplayLedger.RegisteredControls["TextureBlock"] = TextureDisplayManager;
 DisplayLedger.RegisteredControls["ReflectionTextureBlock"] = TextureDisplayManager;
+DisplayLedger.RegisteredControls["DiscardBlock"] = DiscardDisplayManager;

+ 7 - 7
src/Materials/Node/nodeMaterial.ts

@@ -1019,31 +1019,31 @@ export class NodeMaterial extends PushMaterial {
 
         this.editorData = null;
 
-        var positionInput = new InputBlock("position");
+        var positionInput = new InputBlock("Position");
         positionInput.setAsAttribute("position");
 
-        var worldInput = new InputBlock("world");
+        var worldInput = new InputBlock("World");
         worldInput.setAsSystemValue(BABYLON.NodeMaterialSystemValues.World);
 
-        var worldPos = new TransformBlock("worldPos");
+        var worldPos = new TransformBlock("WorldPos");
         positionInput.connectTo(worldPos);
         worldInput.connectTo(worldPos);
 
-        var viewProjectionInput = new InputBlock("viewProjection");
+        var viewProjectionInput = new InputBlock("ViewProjection");
         viewProjectionInput.setAsSystemValue(BABYLON.NodeMaterialSystemValues.ViewProjection);
 
-        var worldPosdMultipliedByViewProjection = new TransformBlock("worldPos * viewProjectionTransform");
+        var worldPosdMultipliedByViewProjection = new TransformBlock("WorldPos * ViewProjectionTransform");
         worldPos.connectTo(worldPosdMultipliedByViewProjection);
         viewProjectionInput.connectTo(worldPosdMultipliedByViewProjection);
 
-        var vertexOutput = new VertexOutputBlock("vertexOutput");
+        var vertexOutput = new VertexOutputBlock("VertexOutput");
         worldPosdMultipliedByViewProjection.connectTo(vertexOutput);
 
         // Pixel
         var pixelColor = new InputBlock("color");
         pixelColor.value = new Color4(0.8, 0.8, 0.8, 1);
 
-        var fragmentOutput = new FragmentOutputBlock("fragmentOutput");
+        var fragmentOutput = new FragmentOutputBlock("FragmentOutput");
         pixelColor.connectTo(fragmentOutput);
 
         // Add to nodes