Skip to content

Commit

Permalink
Merge branch 'dev/1.4' of github.com:galacean/engine into fix/shaderl…
Browse files Browse the repository at this point in the history
…ab/global_decl_list
  • Loading branch information
Sway007 committed Dec 25, 2024
2 parents 6f1fa10 + 90c3228 commit c9fd98c
Show file tree
Hide file tree
Showing 162 changed files with 6,607 additions and 1,864 deletions.
115 changes: 111 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ jobs:
contents: write
id-token: write
steps:
- uses: actions/checkout@v4
- name: Checkout Engine repo
uses: actions/checkout@v4
with:
fetch-depth: 0

Expand All @@ -32,11 +33,117 @@ jobs:
registry-url: https://registry.npmjs.org/
cache: pnpm

- name: Build
- name: Build Engine
run: pnpm b:all

- name: Release current monorepo
uses: galacean/[email protected]
- name: Cache Engine Package
uses: actions/cache@v3
with:
path: ./packages/galacean
key: ${{ runner.os }}-engine-${{ github.sha }}

- name: Checkout Sub-repositories
run: |
git clone https://github.com/galacean/engine-toolkit.git
git clone https://github.com/galacean/engine-lottie.git
git clone https://github.com/galacean/engine-spine.git
- name: Install and Link Engine and Build for Toolkit
working-directory: ./engine-toolkit
run: |
pnpm install
pnpm link ../packages/galacean
pnpm b:all
- name: Install and Link Engine and Build for Lottie
working-directory: ./engine-lottie
run: |
pnpm install --ignore-workspace
pnpm link ../packages/galacean
pnpm build
- name: Install and Link Engine and Build for Spine
working-directory: ./engine-spine
run: |
pnpm install --ignore-workspace
pnpm link ../packages/galacean
pnpm build
- name: Structure Temp Directory
run: |
mkdir -p ${{ github.workspace }}/temp
mkdir -p ${{ github.workspace }}/temp/@galacean/engine
cp -r ${{ github.workspace }}/packages/galacean/dist ${{ github.workspace }}/temp/@galacean/engine
mkdir -p ${{ github.workspace }}/temp/@galacean/engine-xr
cp -r ${{ github.workspace }}/packages/xr/dist ${{ github.workspace }}/temp/@galacean/engine-xr
mkdir -p ${{ github.workspace }}/temp/@galacean/engine-shader-lab
cp -r ${{ github.workspace }}/packages/shader-lab/dist ${{ github.workspace }}/temp/@galacean/engine-shader-lab
mkdir -p ${{ github.workspace }}/temp/@galacean/engine-physics-lite
cp -r ${{ github.workspace }}/packages/physics-lite/dist ${{ github.workspace }}/temp/@galacean/engine-physics-lite
mkdir -p ${{ github.workspace }}/temp/@galacean/engine-physics-physx
cp -r ${{ github.workspace }}/packages/physics-physx/dist ${{ github.workspace }}/temp/@galacean/engine-physics-physx
mkdir -p ${{ github.workspace }}/temp/@galacean/engine-toolkit
cp -r ${{ github.workspace }}/engine-toolkit/packages/galacean-engine-toolkit/dist/umd ${{ github.workspace }}/temp/@galacean/engine-toolkit
mkdir -p ${{ github.workspace }}/temp/@galacean/engine-lottie
cp -r ${{ github.workspace }}/engine-lottie/dist ${{ github.workspace }}/temp/@galacean/engine-lottie
mkdir -p ${{ github.workspace }}/temp/@galacean/engine-spine
cp -r ${{ github.workspace }}/engine-spine/dist ${{ github.workspace }}/temp/@galacean/engine-spine
find ${{ github.workspace }}/temp
- name: Ensure Adapter Directory Exists
run: mkdir -p ${{ github.workspace }}/platform-adapter/dist

# Create a mock package.json to specify the path and version of the adapter build result when syncing with the CDN later.
# name is set to @galacean/engine-platform-adapter-release to avoid conflicts with the real package.json
# version is set to the version of the engine package
- name: Create package.json for platform-adapter
run: |
VERSION=$(jq -r '.version' ${{ github.workspace }}/packages/galacean/package.json)
echo "{\"name\": \"@galacean/engine-platform-adapter-release\", \"version\": \"$VERSION\"}" > ${{ github.workspace }}/platform-adapter/package.json
cat ${{ github.workspace }}/platform-adapter/package.json
- name: Bundle polyfill and engine
uses: galacean/platform-adapter@main
env:
ADAPTER_BUNDLE_SETTINGS: |
{
"polyfill": true,
"engine": [
"${{ github.workspace }}/temp/@galacean/engine/dist/browser.js",
"${{ github.workspace }}/temp/@galacean/engine-xr/dist/browser.js",
"${{ github.workspace }}/temp/@galacean/engine-shader-lab/dist/browser.js",
"${{ github.workspace }}/temp/@galacean/engine-physics-lite/dist/browser.js",
"${{ github.workspace }}/temp/@galacean/engine-physics-physx/dist/browser.js",
"${{ github.workspace }}/temp/@galacean/engine-toolkit/umd/browser.js",
"${{ github.workspace }}/temp/@galacean/engine-lottie/dist/browser.js",
"${{ github.workspace }}/temp/@galacean/engine-spine/dist/browser.js"
],
"jsWASMLoader": [
"${{ github.workspace }}/packages/physics-physx/libs/physx.release.js"
],
"outputDir": "${{ github.workspace }}/platform-adapter/dist"
}
- name: Print Adapter Bundle
run: find ${{ github.workspace }}/platform-adapter -type f

- name: Release engine packages and Sync to CDN
uses: galacean/publish@main
if: success() || failure()
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
NPM_CONFIG_PROVENANCE: true
OASISBE_UPLOAD_URL: https://oasisbe.alipay.com/api/file/no-auth/crypto/upload
OASISBE_REQUEST_HEADER: ${{secrets.OASISBE_REQUEST_HEADER}}
OASISBE_PUBLIC_KEY: ${{secrets.OASISBE_PUBLIC_KEY}}

- name: Sync Platform Adapter to CDN
uses: galacean/publish@main
if: success() || failure()
with:
publish: false
packages: |
platform-adapter
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
NPM_CONFIG_PROVENANCE: true
Expand Down
17 changes: 9 additions & 8 deletions e2e/case/multi-camera-no-clear.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,18 @@
*/
import {
BlinnPhongMaterial,
BloomEffect,
Camera,
CameraClearFlags,
Color,
Engine,
Layer,
Logger,
MeshRenderer,
PostProcess,
PrimitiveMesh,
Scene,
TonemappingEffect,
WebGLEngine,
WebGLMode
} from "@galacean/engine";
Expand Down Expand Up @@ -67,15 +70,13 @@ function initFirstScene(engine: Engine): Scene {
camera2.clearFlags = CameraClearFlags.None;
camera2.msaaSamples = 1;

// @ts-ignore
const bloomEffect = scene._postProcessManager._bloomEffect;
// @ts-ignore
const tonemappingEffect = scene._postProcessManager._tonemappingEffect;
const globalPostProcessEntity = scene.createRootEntity();
const postProcess = globalPostProcessEntity.addComponent(PostProcess);
const bloomEffect = postProcess.addEffect(BloomEffect);
postProcess.addEffect(TonemappingEffect);

bloomEffect.enabled = true;
tonemappingEffect.enabled = true;
bloomEffect.threshold = 0.1;
bloomEffect.intensity = 2;
bloomEffect.threshold.value = 0.1;
bloomEffect.intensity.value = 2;
cameraEntity.transform.setPosition(0, 0, 20);

// Create cube
Expand Down
18 changes: 9 additions & 9 deletions e2e/case/multi-scene-clear.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,16 @@
*/
import {
BlinnPhongMaterial,
BloomEffect,
Camera,
CameraClearFlags,
Color,
Engine,
Logger,
MeshRenderer,
PostProcess,
PrimitiveMesh,
Scene,
TonemappingEffect,
WebGLEngine
} from "@galacean/engine";
import { initScreenshot, updateForE2E } from "./.mockForE2E";
Expand Down Expand Up @@ -60,15 +62,13 @@ function initSecondScene(engine: Engine): Camera {
camera.enablePostProcess = true;
// camera.clearFlags = CameraClearFlags.None;

// @ts-ignore
const bloomEffect = scene._postProcessManager._bloomEffect;
// @ts-ignore
const tonemappingEffect = scene._postProcessManager._tonemappingEffect;
const globalPostProcessEntity = scene.createRootEntity();
const postProcess = globalPostProcessEntity.addComponent(PostProcess);
const bloomEffect = postProcess.addEffect(BloomEffect);
postProcess.addEffect(TonemappingEffect);

bloomEffect.enabled = true;
tonemappingEffect.enabled = true;
bloomEffect.threshold = 0.1;
bloomEffect.intensity = 2;
bloomEffect.threshold.value = 0.1;
bloomEffect.intensity.value = 2;
cameraEntity.transform.setPosition(0, 0, 20);

// Create cube
Expand Down
17 changes: 9 additions & 8 deletions e2e/case/multi-scene-no-clear.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,17 @@
*/
import {
BlinnPhongMaterial,
BloomEffect,
Camera,
CameraClearFlags,
Color,
Engine,
Logger,
MeshRenderer,
PostProcess,
PrimitiveMesh,
Scene,
TonemappingEffect,
WebGLEngine,
WebGLMode
} from "@galacean/engine";
Expand Down Expand Up @@ -66,15 +69,13 @@ function initSecondScene(engine: Engine): Camera {
camera.enablePostProcess = true;
camera.clearFlags = CameraClearFlags.None;

// @ts-ignore
const bloomEffect = scene._postProcessManager._bloomEffect;
// @ts-ignore
const tonemappingEffect = scene._postProcessManager._tonemappingEffect;
const globalPostProcessEntity = scene.createRootEntity();
const postProcess = globalPostProcessEntity.addComponent(PostProcess);
const bloomEffect = postProcess.addEffect(BloomEffect);
postProcess.addEffect(TonemappingEffect);

bloomEffect.enabled = true;
tonemappingEffect.enabled = true;
bloomEffect.threshold = 0.1;
bloomEffect.intensity = 2;
bloomEffect.threshold.value = 0.1;
bloomEffect.intensity.value = 2;
cameraEntity.transform.setPosition(0, 0, 20);

// Create cube
Expand Down
20 changes: 10 additions & 10 deletions e2e/case/postProcess-HDR-bloom-ACES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* @title Bloom + HDR + ACES Tonemapping
* @category PostProcess
*/
import { Camera, TonemappingMode } from "@galacean/engine";
import { BloomEffect, Camera, PostProcess, TonemappingEffect, TonemappingMode } from "@galacean/engine";
import { initPostProcessEnv } from "./.initPostProcessEnv";

initPostProcessEnv((camera: Camera, resArray) => {
Expand All @@ -11,15 +11,15 @@ initPostProcessEnv((camera: Camera, resArray) => {

camera.enablePostProcess = true;
camera.enableHDR = true;
// @ts-ignore
const bloomEffect = scene._postProcessManager._bloomEffect;
// @ts-ignore
const tonemappingEffect = scene._postProcessManager._tonemappingEffect;

bloomEffect.enabled = true;
tonemappingEffect.enabled = true;
const globalPostProcessEntity = scene.createRootEntity();
const postProcess = globalPostProcessEntity.addComponent(PostProcess);
const bloomEffect = postProcess.addEffect(BloomEffect);
const tonemappingEffect = postProcess.addEffect(TonemappingEffect);
tonemappingEffect.mode.value = TonemappingMode.ACES;

bloomEffect.threshold = 0.5;
bloomEffect.dirtTexture = dirtTexture;
tonemappingEffect.mode = TonemappingMode.ACES;
bloomEffect.threshold.value = 0.5;
bloomEffect.intensity.value = 1;
bloomEffect.dirtTexture.value = dirtTexture;
tonemappingEffect.mode.value = TonemappingMode.ACES;
});
20 changes: 10 additions & 10 deletions e2e/case/postProcess-HDR-bloom-neutral.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* @title Bloom + HDR + Neutral Tonemapping
* @category PostProcess
*/
import { Camera, TonemappingMode } from "@galacean/engine";
import { BloomEffect, Camera, PostProcess, TonemappingEffect, TonemappingMode } from "@galacean/engine";
import { initPostProcessEnv } from "./.initPostProcessEnv";

initPostProcessEnv((camera: Camera, resArray) => {
Expand All @@ -11,15 +11,15 @@ initPostProcessEnv((camera: Camera, resArray) => {

camera.enablePostProcess = true;
camera.enableHDR = true;
// @ts-ignore
const bloomEffect = scene._postProcessManager._bloomEffect;
// @ts-ignore
const tonemappingEffect = scene._postProcessManager._tonemappingEffect;

bloomEffect.enabled = true;
tonemappingEffect.enabled = true;
const globalPostProcessEntity = scene.createRootEntity();
const postProcess = globalPostProcessEntity.addComponent(PostProcess);
const bloomEffect = postProcess.addEffect(BloomEffect);
const tonemappingEffect = postProcess.addEffect(TonemappingEffect);
tonemappingEffect.mode.value = TonemappingMode.ACES;

bloomEffect.threshold = 0.5;
bloomEffect.dirtTexture = dirtTexture;
tonemappingEffect.mode = TonemappingMode.Neutral;
bloomEffect.threshold.value = 0.5;
bloomEffect.intensity.value = 1;
bloomEffect.dirtTexture.value = dirtTexture;
tonemappingEffect.mode.value = TonemappingMode.Neutral;
});
20 changes: 10 additions & 10 deletions e2e/case/postProcess-LDR-bloom-neutral.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* @title Bloom + LDR + Neutral Tonemapping
* @category PostProcess
*/
import { Camera, TonemappingMode } from "@galacean/engine";
import { BloomEffect, Camera, PostProcess, TonemappingEffect, TonemappingMode } from "@galacean/engine";
import { initPostProcessEnv } from "./.initPostProcessEnv";

initPostProcessEnv((camera: Camera, resArray) => {
Expand All @@ -11,15 +11,15 @@ initPostProcessEnv((camera: Camera, resArray) => {

camera.enablePostProcess = true;
camera.enableHDR = false;
// @ts-ignore
const bloomEffect = scene._postProcessManager._bloomEffect;
// @ts-ignore
const tonemappingEffect = scene._postProcessManager._tonemappingEffect;

bloomEffect.enabled = true;
tonemappingEffect.enabled = true;
const globalPostProcessEntity = scene.createRootEntity();
const postProcess = globalPostProcessEntity.addComponent(PostProcess);
const bloomEffect = postProcess.addEffect(BloomEffect);
const tonemappingEffect = postProcess.addEffect(TonemappingEffect);
tonemappingEffect.mode.value = TonemappingMode.ACES;

bloomEffect.threshold = 0.5;
bloomEffect.dirtTexture = dirtTexture;
tonemappingEffect.mode = TonemappingMode.Neutral;
bloomEffect.threshold.value = 0.5;
bloomEffect.intensity.value = 1;
bloomEffect.dirtTexture.value = dirtTexture;
tonemappingEffect.mode.value = TonemappingMode.Neutral;
});
Loading

0 comments on commit c9fd98c

Please sign in to comment.