performance: fix particles stall

This commit is contained in:
FMS-Cat
2021-03-31 19:06:30 +09:00
parent e74ba0ce09
commit a99bd28c9b
3 changed files with 12 additions and 4 deletions

View File

@@ -2,7 +2,7 @@ import { Entity } from '../heck/Entity';
import { GPUParticles } from './GPUParticles'; import { GPUParticles } from './GPUParticles';
import { InstancedGeometry } from '../heck/InstancedGeometry'; import { InstancedGeometry } from '../heck/InstancedGeometry';
import { Material } from '../heck/Material'; import { Material } from '../heck/Material';
import { dummyRenderTarget, dummyRenderTargetFourDrawBuffers } from '../globals/dummyRenderTarget'; import { dummyRenderTarget, dummyRenderTargetFourDrawBuffers, dummyRenderTargetTwoDrawBuffers } from '../globals/dummyRenderTarget';
import { genOctahedron } from '../geometries/genOctahedron'; import { genOctahedron } from '../geometries/genOctahedron';
import { glCat } from '../globals/canvas'; import { glCat } from '../globals/canvas';
import { quadGeometry } from '../globals/quadGeometry'; import { quadGeometry } from '../globals/quadGeometry';
@@ -24,7 +24,7 @@ export class SphereParticles extends Entity {
const materialCompute = new Material( const materialCompute = new Material(
quadVert, quadVert,
sphereParticleComputeFrag, sphereParticleComputeFrag,
{ initOptions: { geometry: quadGeometry, target: dummyRenderTarget } }, { initOptions: { geometry: quadGeometry, target: dummyRenderTargetTwoDrawBuffers } },
); );
materialCompute.addUniform( 'particlesSqrt', '1f', PARTICLES_SQRT ); materialCompute.addUniform( 'particlesSqrt', '1f', PARTICLES_SQRT );

View File

@@ -2,7 +2,7 @@ import { Entity } from '../heck/Entity';
import { GPUParticles } from './GPUParticles'; import { GPUParticles } from './GPUParticles';
import { InstancedGeometry } from '../heck/InstancedGeometry'; import { InstancedGeometry } from '../heck/InstancedGeometry';
import { Material } from '../heck/Material'; import { Material } from '../heck/Material';
import { dummyRenderTarget, dummyRenderTargetFourDrawBuffers } from '../globals/dummyRenderTarget'; import { dummyRenderTarget, dummyRenderTargetFourDrawBuffers, dummyRenderTargetTwoDrawBuffers } from '../globals/dummyRenderTarget';
import { gl, glCat } from '../globals/canvas'; import { gl, glCat } from '../globals/canvas';
import { quadGeometry } from '../globals/quadGeometry'; import { quadGeometry } from '../globals/quadGeometry';
import { randomTexture, randomTextureStatic } from '../globals/randomTexture'; import { randomTexture, randomTextureStatic } from '../globals/randomTexture';
@@ -23,7 +23,7 @@ export class Trails extends Entity {
const materialCompute = new Material( const materialCompute = new Material(
quadVert, quadVert,
trailsComputeFrag, trailsComputeFrag,
{ initOptions: { geometry: quadGeometry, target: dummyRenderTarget } }, { initOptions: { geometry: quadGeometry, target: dummyRenderTargetTwoDrawBuffers } },
); );
materialCompute.addUniform( 'trails', '1f', TRAILS ); materialCompute.addUniform( 'trails', '1f', TRAILS );

View File

@@ -6,6 +6,14 @@ export const dummyRenderTarget = new BufferRenderTarget( {
name: process.env.DEV && 'dummyRenderTargetOneDrawBuffers', name: process.env.DEV && 'dummyRenderTargetOneDrawBuffers',
} ); } );
export const dummyRenderTargetTwoDrawBuffers = new BufferRenderTarget( {
width: 1,
height: 1,
numBuffers: 2,
name: process.env.DEV && 'dummyRenderTargetFourDrawBuffers',
} );
export const dummyRenderTargetFourDrawBuffers = new BufferRenderTarget( { export const dummyRenderTargetFourDrawBuffers = new BufferRenderTarget( {
width: 1, width: 1,
height: 1, height: 1,