mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-15 15:52:21 +00:00
feat(globe): Sharpen on Navara, on at 80 % by default
The contract gains render.setSharpen({ enabled, amount }) and
render.sharpen(). Navara draws it as a custom EffectDesc: Cesium's unsharp
mask (3x3 box blur, gamma 2.2 round trip so one amount matches Cesium)
right after tone mapping and before SMAA/FXAA, skipping sky and cloud
pixels by scene depth. The Cesium engine keeps the state only; Cesium mode
still sharpens with its own post stage, unchanged. The fake engine records
it and the contract suite checks it.
Without a viewer the Sharpen slider and toggle drive the engine with the
same slider-to-amount mapping. On Navara the defaults, presets and share
links read Cesium's 49 % as 80 %.
This commit is contained in:
1 parent
ac081a008d
commit
bb8c0b83c4
17 files changed
+521
-16
No files matched your search
@@ -8,6 +8,7 @@ import {
|
||||
isRenderGovernorInstalled,
|
||||
releaseContinuousRender,
|
||||
} from '../../renderGovernor.js';
|
||||
import { SHARPEN_INITIAL, mergeSharpen } from '../contract.js';
|
||||
|
||||
export const RENDER_OWNER = 'globe-engine';
|
||||
|
||||
@@ -28,6 +29,7 @@ export function createCesiumRender(
|
||||
} = {},
|
||||
) {
|
||||
let held = false;
|
||||
let sharpen = { ...SHARPEN_INITIAL };
|
||||
const render = {
|
||||
request(reason = RENDER_OWNER) {
|
||||
requestRender(reason);
|
||||
@@ -39,6 +41,12 @@ export function createCesiumRender(
|
||||
},
|
||||
// The scene's real mode: another owner's hold keeps it continuous.
|
||||
isContinuous: () => viewer.scene.requestRenderMode === false,
|
||||
// State only: in Cesium mode the app's own post stage sharpens
|
||||
// (src/ui/visualEffects.js), and the scene stays as it was.
|
||||
setSharpen(options) {
|
||||
sharpen = mergeSharpen(sharpen, options);
|
||||
},
|
||||
sharpen: () => ({ ...sharpen }),
|
||||
};
|
||||
return {
|
||||
render,
|
||||
|
||||
Reference in new issue
Block a user