feat: rebuild the nightdrive road and terrain
This commit is contained in:
@@ -2,15 +2,42 @@ import type { LiveQualityTier } from '@/scene/types';
|
||||
|
||||
export interface RenderQualitySettings {
|
||||
pixelRatio: number;
|
||||
roadSegments: number;
|
||||
terrainSegments: number;
|
||||
terrainOctaves: 1 | 2 | 3;
|
||||
particleCount: number;
|
||||
streakCount: number;
|
||||
postEffects: boolean;
|
||||
}
|
||||
|
||||
const settings: Readonly<Record<LiveQualityTier, Omit<RenderQualitySettings, 'pixelRatio'> & { dprCap: number }>> = {
|
||||
high: { dprCap: 1.5, terrainSegments: 96, particleCount: 384, postEffects: true },
|
||||
medium: { dprCap: 1.5, terrainSegments: 64, particleCount: 192, postEffects: true },
|
||||
low: { dprCap: 1.25, terrainSegments: 32, particleCount: 64, postEffects: false },
|
||||
high: {
|
||||
dprCap: 1.5,
|
||||
roadSegments: 192,
|
||||
terrainSegments: 96,
|
||||
terrainOctaves: 3,
|
||||
particleCount: 384,
|
||||
streakCount: 48,
|
||||
postEffects: true,
|
||||
},
|
||||
medium: {
|
||||
dprCap: 1.5,
|
||||
roadSegments: 144,
|
||||
terrainSegments: 64,
|
||||
terrainOctaves: 2,
|
||||
particleCount: 192,
|
||||
streakCount: 28,
|
||||
postEffects: true,
|
||||
},
|
||||
low: {
|
||||
dprCap: 1.25,
|
||||
roadSegments: 96,
|
||||
terrainSegments: 32,
|
||||
terrainOctaves: 1,
|
||||
particleCount: 64,
|
||||
streakCount: 12,
|
||||
postEffects: false,
|
||||
},
|
||||
};
|
||||
|
||||
export function renderQualityFor(
|
||||
@@ -22,8 +49,11 @@ export function renderQualityFor(
|
||||
const finiteDpr = Number.isFinite(devicePixelRatio) ? Math.max(1, devicePixelRatio) : 1;
|
||||
return {
|
||||
pixelRatio: Math.min(finiteDpr, selected.dprCap, mobileOrTablet ? 1.5 : 2),
|
||||
roadSegments: selected.roadSegments,
|
||||
terrainSegments: selected.terrainSegments,
|
||||
terrainOctaves: selected.terrainOctaves,
|
||||
particleCount: selected.particleCount,
|
||||
streakCount: selected.streakCount,
|
||||
postEffects: selected.postEffects,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user