Skip to content

Commit

Permalink
Merge branch 'dev/1.1' of github.com:galacean/engine into dev/shaderLab
Browse files Browse the repository at this point in the history
# Conflicts:
#	packages/shader-lab/src/RuntimeContext.ts
#	packages/shader-lab/src/ShaderVisitor.ts
#	packages/shader-lab/src/ast-node/AstNode.ts
#	packages/shader-lab/src/parser/tokens/GLSLKeywords.ts
#	tests/src/shader-lab/ShaderLab.test.ts
#	tests/src/shader-lab/demo.shader
  • Loading branch information
GuoLei1990 committed Feb 22, 2024
2 parents b7bbd42 + 3a93929 commit cabba01
Show file tree
Hide file tree
Showing 28 changed files with 585 additions and 56 deletions.
61 changes: 61 additions & 0 deletions e2e/case/primitive-capsule.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/**
* @title PrimitiveMesh
* @category Primitive
*/
import {
AssetType,
BlinnPhongMaterial,
Camera,
DirectLight,
Logger,
MeshRenderer,
PrimitiveMesh,
RenderFace,
Texture2D,
Vector3,
WebGLEngine
} from "@galacean/engine";
import { OrbitControl } from "@galacean/engine-toolkit";
import { initScreenshot, updateForE2E } from "./.mockForE2E";

Logger.enable();
WebGLEngine.create({ canvas: "canvas" }).then((engine) => {
engine.canvas.resizeByClientSize(2);
const scene = engine.sceneManager.activeScene;
const rootEntity = scene.createRootEntity();

// camera
const cameraEntity = rootEntity.createChild("camera_node");
cameraEntity.transform.position = new Vector3(0, 1, 5);
const camera = cameraEntity.addComponent(Camera);
cameraEntity.addComponent(OrbitControl).target = new Vector3(0, 1, 0);

const lightNode = rootEntity.createChild("light_node");
lightNode.addComponent(DirectLight).intensity = 0.6;
lightNode.transform.lookAt(new Vector3(0, 0, 1));
lightNode.transform.rotate(new Vector3(0, 90, 0));

engine.resourceManager
.load<Texture2D>({
url: "https://gw.alipayobjects.com/mdn/rms_7c464e/afts/img/A*ArCHTbfVPXUAAAAAAAAAAAAAARQnAQ",
type: AssetType.Texture2D
})
.then((texture: Texture2D) => {
const material = new BlinnPhongMaterial(engine);
material.renderFace = RenderFace.Double;
material.baseTexture = texture;

const entity = rootEntity.createChild("mesh");
const { transform } = entity;
transform.setPosition(0, 1, 0);
transform.setRotation(45, 45, 0);
const meshRenderer = entity.addComponent(MeshRenderer);
meshRenderer.mesh = PrimitiveMesh.createCapsule(engine, 0.5, 1, 24, 1);
meshRenderer.setMaterial(material);

updateForE2E(engine);
const category = "Primitive";
const name = "primitive-capsule";
initScreenshot(category, name, engine, camera);
});
});
61 changes: 61 additions & 0 deletions e2e/case/primitive-cone.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/**
* @title PrimitiveMesh
* @category Primitive
*/
import {
AssetType,
BlinnPhongMaterial,
Camera,
DirectLight,
Logger,
MeshRenderer,
PrimitiveMesh,
RenderFace,
Texture2D,
Vector3,
WebGLEngine
} from "@galacean/engine";
import { OrbitControl } from "@galacean/engine-toolkit";
import { initScreenshot, updateForE2E } from "./.mockForE2E";

Logger.enable();
WebGLEngine.create({ canvas: "canvas" }).then((engine) => {
engine.canvas.resizeByClientSize(2);
const scene = engine.sceneManager.activeScene;
const rootEntity = scene.createRootEntity();

// camera
const cameraEntity = rootEntity.createChild("camera_node");
cameraEntity.transform.position = new Vector3(0, 1, 5);
const camera = cameraEntity.addComponent(Camera);
cameraEntity.addComponent(OrbitControl).target = new Vector3(0, 1, 0);

const lightNode = rootEntity.createChild("light_node");
lightNode.addComponent(DirectLight).intensity = 0.6;
lightNode.transform.lookAt(new Vector3(0, 0, 1));
lightNode.transform.rotate(new Vector3(0, 90, 0));

engine.resourceManager
.load<Texture2D>({
url: "https://gw.alipayobjects.com/mdn/rms_7c464e/afts/img/A*ArCHTbfVPXUAAAAAAAAAAAAAARQnAQ",
type: AssetType.Texture2D
})
.then((texture: Texture2D) => {
const material = new BlinnPhongMaterial(engine);
material.renderFace = RenderFace.Double;
material.baseTexture = texture;

const entity = rootEntity.createChild("mesh");
const { transform } = entity;
transform.setPosition(0, 1, 0);
transform.setRotation(45, 45, 0);
const meshRenderer = entity.addComponent(MeshRenderer);
meshRenderer.mesh = PrimitiveMesh.createCone(engine);
meshRenderer.setMaterial(material);

updateForE2E(engine);
const category = "Primitive";
const name = "primitive-cone";
initScreenshot(category, name, engine, camera);
});
});
61 changes: 61 additions & 0 deletions e2e/case/primitive-cuboid.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/**
* @title PrimitiveMesh
* @category Primitive
*/
import {
AssetType,
BlinnPhongMaterial,
Camera,
DirectLight,
Logger,
MeshRenderer,
PrimitiveMesh,
RenderFace,
Texture2D,
Vector3,
WebGLEngine
} from "@galacean/engine";
import { OrbitControl } from "@galacean/engine-toolkit";
import { initScreenshot, updateForE2E } from "./.mockForE2E";

Logger.enable();
WebGLEngine.create({ canvas: "canvas" }).then((engine) => {
engine.canvas.resizeByClientSize(2);
const scene = engine.sceneManager.activeScene;
const rootEntity = scene.createRootEntity();

// camera
const cameraEntity = rootEntity.createChild("camera_node");
cameraEntity.transform.position = new Vector3(0, 1, 5);
const camera = cameraEntity.addComponent(Camera);
cameraEntity.addComponent(OrbitControl).target = new Vector3(0, 1, 0);

const lightNode = rootEntity.createChild("light_node");
lightNode.addComponent(DirectLight).intensity = 0.6;
lightNode.transform.lookAt(new Vector3(0, 0, 1));
lightNode.transform.rotate(new Vector3(0, 90, 0));

engine.resourceManager
.load<Texture2D>({
url: "https://gw.alipayobjects.com/mdn/rms_7c464e/afts/img/A*ArCHTbfVPXUAAAAAAAAAAAAAARQnAQ",
type: AssetType.Texture2D
})
.then((texture: Texture2D) => {
const material = new BlinnPhongMaterial(engine);
material.renderFace = RenderFace.Double;
material.baseTexture = texture;

const entity = rootEntity.createChild("mesh");
const { transform } = entity;
transform.setPosition(0, 1, 0);
transform.setRotation(45, 45, 0);
const meshRenderer = entity.addComponent(MeshRenderer);
meshRenderer.mesh = PrimitiveMesh.createCuboid(engine);
meshRenderer.setMaterial(material);

updateForE2E(engine);
const category = "Primitive";
const name = "primitive-cuboid";
initScreenshot(category, name, engine, camera);
});
});
61 changes: 61 additions & 0 deletions e2e/case/primitive-cylinder.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/**
* @title PrimitiveMesh
* @category Primitive
*/
import {
AssetType,
BlinnPhongMaterial,
Camera,
DirectLight,
Logger,
MeshRenderer,
PrimitiveMesh,
RenderFace,
Texture2D,
Vector3,
WebGLEngine
} from "@galacean/engine";
import { OrbitControl } from "@galacean/engine-toolkit";
import { initScreenshot, updateForE2E } from "./.mockForE2E";

Logger.enable();
WebGLEngine.create({ canvas: "canvas" }).then((engine) => {
engine.canvas.resizeByClientSize(2);
const scene = engine.sceneManager.activeScene;
const rootEntity = scene.createRootEntity();

// camera
const cameraEntity = rootEntity.createChild("camera_node");
cameraEntity.transform.position = new Vector3(0, 1, 5);
const camera = cameraEntity.addComponent(Camera);
cameraEntity.addComponent(OrbitControl).target = new Vector3(0, 1, 0);

const lightNode = rootEntity.createChild("light_node");
lightNode.addComponent(DirectLight).intensity = 0.6;
lightNode.transform.lookAt(new Vector3(0, 0, 1));
lightNode.transform.rotate(new Vector3(0, 90, 0));

engine.resourceManager
.load<Texture2D>({
url: "https://gw.alipayobjects.com/mdn/rms_7c464e/afts/img/A*ArCHTbfVPXUAAAAAAAAAAAAAARQnAQ",
type: AssetType.Texture2D
})
.then((texture: Texture2D) => {
const material = new BlinnPhongMaterial(engine);
material.renderFace = RenderFace.Double;
material.baseTexture = texture;

const entity = rootEntity.createChild("mesh");
const { transform } = entity;
transform.setPosition(0, 1, 0);
transform.setRotation(45, 45, 0);
const meshRenderer = entity.addComponent(MeshRenderer);
meshRenderer.mesh = PrimitiveMesh.createCylinder(engine);
meshRenderer.setMaterial(material);

updateForE2E(engine);
const category = "Primitive";
const name = "primitive-cylinder";
initScreenshot(category, name, engine, camera);
});
});
61 changes: 61 additions & 0 deletions e2e/case/primitive-plane.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/**
* @title PrimitiveMesh
* @category Primitive
*/
import {
AssetType,
BlinnPhongMaterial,
Camera,
DirectLight,
Logger,
MeshRenderer,
PrimitiveMesh,
RenderFace,
Texture2D,
Vector3,
WebGLEngine
} from "@galacean/engine";
import { OrbitControl } from "@galacean/engine-toolkit";
import { initScreenshot, updateForE2E } from "./.mockForE2E";

Logger.enable();
WebGLEngine.create({ canvas: "canvas" }).then((engine) => {
engine.canvas.resizeByClientSize(2);
const scene = engine.sceneManager.activeScene;
const rootEntity = scene.createRootEntity();

// camera
const cameraEntity = rootEntity.createChild("camera_node");
cameraEntity.transform.position = new Vector3(0, 1, 5);
const camera = cameraEntity.addComponent(Camera);
cameraEntity.addComponent(OrbitControl).target = new Vector3(0, 1, 0);

const lightNode = rootEntity.createChild("light_node");
lightNode.addComponent(DirectLight).intensity = 0.6;
lightNode.transform.lookAt(new Vector3(0, 0, 1));
lightNode.transform.rotate(new Vector3(0, 90, 0));

engine.resourceManager
.load<Texture2D>({
url: "https://gw.alipayobjects.com/mdn/rms_7c464e/afts/img/A*ArCHTbfVPXUAAAAAAAAAAAAAARQnAQ",
type: AssetType.Texture2D
})
.then((texture: Texture2D) => {
const material = new BlinnPhongMaterial(engine);
material.renderFace = RenderFace.Double;
material.baseTexture = texture;

const entity = rootEntity.createChild("mesh");
const { transform } = entity;
transform.setPosition(0, 1, 0);
transform.setRotation(45, -45, 0);
const meshRenderer = entity.addComponent(MeshRenderer);
meshRenderer.mesh = PrimitiveMesh.createPlane(engine);
meshRenderer.setMaterial(material);

updateForE2E(engine);
const category = "Primitive";
const name = "primitive-plane";
initScreenshot(category, name, engine, camera);
});
});
61 changes: 61 additions & 0 deletions e2e/case/primitive-sphere.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/**
* @title PrimitiveMesh
* @category Primitive
*/
import {
AssetType,
BlinnPhongMaterial,
Camera,
DirectLight,
Logger,
MeshRenderer,
PrimitiveMesh,
RenderFace,
Texture2D,
Vector3,
WebGLEngine
} from "@galacean/engine";
import { OrbitControl } from "@galacean/engine-toolkit";
import { initScreenshot, updateForE2E } from "./.mockForE2E";

Logger.enable();
WebGLEngine.create({ canvas: "canvas" }).then((engine) => {
engine.canvas.resizeByClientSize(2);
const scene = engine.sceneManager.activeScene;
const rootEntity = scene.createRootEntity();

// camera
const cameraEntity = rootEntity.createChild("camera_node");
cameraEntity.transform.position = new Vector3(0, 1, 5);
const camera = cameraEntity.addComponent(Camera);
cameraEntity.addComponent(OrbitControl).target = new Vector3(0, 1, 0);

const lightNode = rootEntity.createChild("light_node");
lightNode.addComponent(DirectLight).intensity = 0.6;
lightNode.transform.lookAt(new Vector3(0, 0, 1));
lightNode.transform.rotate(new Vector3(0, 90, 0));

engine.resourceManager
.load<Texture2D>({
url: "https://gw.alipayobjects.com/mdn/rms_7c464e/afts/img/A*ArCHTbfVPXUAAAAAAAAAAAAAARQnAQ",
type: AssetType.Texture2D
})
.then((texture: Texture2D) => {
const material = new BlinnPhongMaterial(engine);
material.renderFace = RenderFace.Double;
material.baseTexture = texture;

const entity = rootEntity.createChild("mesh");
const { transform } = entity;
transform.setPosition(0, 1, 0);
transform.setRotation(45, 45, 0);
const meshRenderer = entity.addComponent(MeshRenderer);
meshRenderer.mesh = PrimitiveMesh.createSubdivisionSurfaceSphere(engine);
meshRenderer.setMaterial(material);

updateForE2E(engine);
const category = "Primitive";
const name = "primitive-sphere";
initScreenshot(category, name, engine, camera);
});
});
Loading

0 comments on commit cabba01

Please sign in to comment.