Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Post Scene with configurable camera #2088

Merged
merged 9 commits into from
Dec 31, 2021
14 changes: 9 additions & 5 deletions metaversefile-api.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import React from 'react';
import * as ReactThreeFiber from '@react-three/fiber';
import * as Z from 'zjs';
import metaversefile from 'metaversefile';
import {getRenderer, scene, sceneHighPriority, sceneLowPriority, rootScene, postScene, camera} from './renderer.js';
import {getRenderer, scene, sceneHighPriority, sceneLowPriority, rootScene, postSceneOrthographic, postScenePerspective, camera} from './renderer.js';
import physicsManager from './physics-manager.js';
import Avatar from './avatars/avatars.js';
import {world} from './world.js';
Expand Down Expand Up @@ -347,8 +347,11 @@ metaversefile.setApi({
useScene() {
return scene;
},
usePostScene() {
return postScene;
usePostOrthographicScene() {
return postSceneOrthographic;
},
usePostPerspectiveScene() {
return postScenePerspective;
},
useWorld() {
return {
Expand Down Expand Up @@ -833,7 +836,8 @@ export default () => {
renderer,
scene,
rootScene,
postScene,
postSceneOrthographic,
postScenePerspective,
camera,
sceneHighPriority,
sceneLowPriority,
Expand Down Expand Up @@ -1082,4 +1086,4 @@ App.prototype.addModule = function(m) {
return metaversefile.addModule(this, m);
};

export default metaversefile;
export default metaversefile;
21 changes: 15 additions & 6 deletions post-processing.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@ import {
getRenderer,
getComposer,
rootScene,
postScene,
postSceneOrthographic,
postScenePerspective,
camera,
orthographicCamera,
} from './renderer.js';
// import {rigManager} from './rig.js';
import {world} from './world.js';
Expand Down Expand Up @@ -228,7 +230,7 @@ function setPasses(rendersettings) {
composer.addPass(webaverseRenderPass);

if (rendersettings) {
const {ssao, dof, hdr, bloom, enablePostScene} = rendersettings;
const {ssao, dof, hdr, bloom, postPostProcessScene} = rendersettings;
// console.log('got', ssao, dof, hdr, bloom);

if (ssao) {
Expand All @@ -250,9 +252,16 @@ function setPasses(rendersettings) {
const bloomPass = makeBloomPass(bloom);
composer.addPass(bloomPass);
}
if (enablePostScene) {
const postRenderPass = new RenderPass(postScene, camera);
composer.addPass(postRenderPass);
if (postPostProcessScene) {
const {postPerspectiveScene, postOrthographicScene} = postPostProcessScene;
if(postPerspectiveScene) {
const postRenderPass = new RenderPass(postScenePerspective, camera);
composer.addPass(postRenderPass);
}
if(postOrthographicScene) {
const postRenderPass = new RenderPass(postSceneOrthographic, orthographicCamera);
composer.addPass(postRenderPass);
}
}
}

Expand All @@ -270,4 +279,4 @@ export {
// makeBloomPass,
// makeEncodingPass,
setPasses,
};
};
15 changes: 9 additions & 6 deletions renderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,10 @@ sceneLowPriority.name = 'lowPriorioty';
const rootScene = new THREE.Scene();
rootScene.name = 'root';
rootScene.autoUpdate = false;
const postScene = new THREE.Scene();
postScene.name = 'postScene';
const postSceneOrthographic = new THREE.Scene();
postSceneOrthographic.name = 'postOrthographic';
const postScenePerspective = new THREE.Scene();
postScenePerspective.name = 'postPerspective';
rootScene.add(sceneHighPriority);
rootScene.add(scene);
rootScene.add(sceneLowPriority);
Expand All @@ -113,7 +115,7 @@ dolly.add(camera);
// dolly.add(avatarCamera);
scene.add(dolly);

// const orthographicCamera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0.1, 100);
const orthographicCamera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0.01, 100);
// scene.add(orthographicCamera);

window.addEventListener('resize', e => {
Expand Down Expand Up @@ -178,10 +180,11 @@ export {
getComposer,
scene,
rootScene,
postScene,
postSceneOrthographic,
postScenePerspective,
// avatarScene,
camera,
// orthographicCamera,
orthographicCamera,
// avatarCamera,
dolly,
/*orbitControls, renderer2,*/
Expand All @@ -190,4 +193,4 @@ export {
// iframeContainer,
// iframeContainer2,
// appManager,
};
};
9 changes: 6 additions & 3 deletions world.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import hpManager from './hp-manager.js';
import {AppManager} from './app-manager.js';
// import {getState, setState} from './state.js';
// import {makeId} from './util.js';
import {scene, postScene, sceneHighPriority, sceneLowPriority} from './renderer.js';
import {scene, postSceneOrthographic, postScenePerspective, sceneHighPriority, sceneLowPriority} from './renderer.js';
import metaversefileApi from 'metaversefile';
import {worldMapName, appsMapName, playersMapName} from './constants.js';
import {playersManager} from './players-manager.js';
Expand Down Expand Up @@ -301,8 +301,11 @@ const _getBindSceneForRenderPriority = renderPriority => {
case 'low': {
return sceneLowPriority;
}
case 'postScene': {
return postScene;
case 'postPerspectiveScene': {
return postScenePerspective;
}
case 'postOrthographicScene': {
return postSceneOrthographic;
}
default: {
return scene;
Expand Down