Ivan Safrin 14 лет назад
Родитель
Сommit
c6d8d955d8

BIN
Assets/Default asset pack/hdr.pak


+ 1 - 1
Assets/Default asset pack/hdr/HDRBloomH.frag

@@ -1,5 +1,5 @@
 uniform sampler2D screenTexture;
-const float blurSize = 1.0/128.0;
+const float blurSize = 1.0/512.0;
  
 void main(void)
 {

+ 1 - 1
Assets/Default asset pack/hdr/HDRBloomV.frag

@@ -1,5 +1,5 @@
 uniform sampler2D screenTexture;
-const float blurSize = 1.0/128.0;
+const float blurSize = 1.0/512.0;
  
 void main(void)
 {

+ 3 - 3
Assets/Default asset pack/hdr/hdr.mat

@@ -57,9 +57,9 @@
 		<material name="HDRProcessBloom">
 			<rendertargets type="rgba_fp16">
 				<rendertarget id="base_target"  sizeMode="normalized" width="1.0" height="1.0"/>			
-				<rendertarget id="bloomtarget"  sizeMode="pixels" width="256" height="256"/>
-				<rendertarget id="bloomtarget2"  sizeMode="pixels" width="256" height="256"/>				
-				<rendertarget id="bloomtarget_final"  sizeMode="pixels" width="256" height="256"/>
+				<rendertarget id="bloomtarget"  sizeMode="pixels" width="512" height="512"/>
+				<rendertarget id="bloomtarget2"  sizeMode="pixels" width="512" height="512"/>				
+				<rendertarget id="bloomtarget_final"  sizeMode="pixels" width="512" height="512"/>
 			</rendertargets>
 			<shader name="PassThrough">
 				<targettextures>

+ 3 - 3
Core/Contents/Include/PolyParticleEmitter.h

@@ -48,7 +48,7 @@ namespace Polycode {
 	*/
 	class _PolyExport ParticleEmitter {
 		public:
-			ParticleEmitter(const String& imageFile, Mesh *particleMesh, int particleType, int emitterType, Number lifespan, unsigned int numParticles, Vector3 direction, Vector3 gravity, Vector3 deviation);
+			ParticleEmitter(const String& imageFile, Mesh *particleMesh, int particleType, int emitterType, Number lifespan, unsigned int numParticles, Vector3 direction, Vector3 gravity, Vector3 deviation, Vector3 emitterRadius);
 			virtual ~ParticleEmitter();
 		
 			virtual void dispatchTriggerCompleteEvent() = 0;
@@ -262,7 +262,7 @@ namespace Polycode {
 		* @param particleMesh If particle type is Particle::MESH_PARTICLE, this must be set to the mesh to use for each particle
 		* @param emitter If this is specified, particles will be emitted from this meshe's vertices.
 		*/
-		SceneParticleEmitter(const String& materialName, Scene *particleParentScene, int particleType, int emitterType, Number lifespan, unsigned int numParticles, Vector3 direction, Vector3 gravity, Vector3 deviation, Mesh *particleMesh = NULL, SceneMesh *emitter = NULL);
+		SceneParticleEmitter(const String& materialName, Scene *particleParentScene, int particleType, int emitterType, Number lifespan, unsigned int numParticles, Vector3 direction, Vector3 gravity, Vector3 deviation, Vector3 emitterRadius, Mesh *particleMesh = NULL, SceneMesh *emitter = NULL);
 		~SceneParticleEmitter();		
 		
 		/**
@@ -287,7 +287,7 @@ namespace Polycode {
 	*/
 	class _PolyExport ScreenParticleEmitter : public ScreenEntity, public ParticleEmitter {
 	public:
-		ScreenParticleEmitter(const String& imageFile, Screen *particleParentScreen, int particleType, int emitterType, Number lifespan, unsigned int numParticles, Vector3 direction, Vector3 gravity, Vector3 deviation, Mesh *particleMesh = NULL, ScreenMesh *emitter = NULL);
+		ScreenParticleEmitter(const String& imageFile, Screen *particleParentScreen, int particleType, int emitterType, Number lifespan, unsigned int numParticles, Vector3 direction, Vector3 gravity, Vector3 deviation, Vector3 emitterRadius, Mesh *particleMesh = NULL, ScreenMesh *emitter = NULL);
 		~ScreenParticleEmitter();		
 		
 		/**

+ 7 - 6
Core/Contents/Source/PolyParticleEmitter.cpp

@@ -33,8 +33,8 @@
 
 using namespace Polycode;
 
-SceneParticleEmitter::SceneParticleEmitter(const String& materialName, Scene *particleParentScene, int particleType, int emitterType, Number lifespan, unsigned int numParticles, Vector3 direction, Vector3 gravity, Vector3 deviation, Mesh *particleMesh, SceneMesh *emitter)
-: ParticleEmitter(materialName, particleMesh, particleType, emitterType, lifespan, numParticles,  direction, gravity, deviation),
+SceneParticleEmitter::SceneParticleEmitter(const String& materialName, Scene *particleParentScene, int particleType, int emitterType, Number lifespan, unsigned int numParticles, Vector3 direction, Vector3 gravity, Vector3 deviation, Vector3 emitterRadius, Mesh *particleMesh, SceneMesh *emitter)
+: ParticleEmitter(materialName, particleMesh, particleType, emitterType, lifespan, numParticles,  direction, gravity, deviation, emitterRadius),
 SceneEntity()
 {
 	isScreenEmitter = false;
@@ -76,8 +76,8 @@ void SceneParticleEmitter::Update() {
 }
 
 
-ScreenParticleEmitter::ScreenParticleEmitter(const String& imageFile, Screen *particleParentScreen, int particleType, int emitterType, Number lifespan, unsigned int numParticles, Vector3 direction, Vector3 gravity, Vector3 deviation, Mesh *particleMesh, ScreenMesh *emitter)
-		: ParticleEmitter(imageFile, particleMesh, particleType, emitterType, lifespan, numParticles,  direction, gravity, deviation),
+ScreenParticleEmitter::ScreenParticleEmitter(const String& imageFile, Screen *particleParentScreen, int particleType, int emitterType, Number lifespan, unsigned int numParticles, Vector3 direction, Vector3 gravity, Vector3 deviation, Vector3 emitterRadius, Mesh *particleMesh, ScreenMesh *emitter)
+		: ParticleEmitter(imageFile, particleMesh, particleType, emitterType, lifespan, numParticles,  direction, gravity, deviation, emitterRadius),
 ScreenEntity()
 {
 	isScreenEmitter = true;
@@ -111,8 +111,9 @@ Matrix4 ScreenParticleEmitter::getBaseMatrix() {
 	return getConcatenatedMatrix();
 }
 
-ParticleEmitter::ParticleEmitter(const String& imageFile, Mesh *particleMesh, int particleType, int emitterType, Number lifespan, unsigned int numParticles,  Vector3 direction, Vector3 gravity, Vector3 deviation)  {
+ParticleEmitter::ParticleEmitter(const String& imageFile, Mesh *particleMesh, int particleType, int emitterType, Number lifespan, unsigned int numParticles,  Vector3 direction, Vector3 gravity, Vector3 deviation, Vector3 emitterRadius)  {
 	
+	this->emitterRadius = emitterRadius;	
 	isScreenEmitter = false;
 	dirVector = direction;
 	gravVector = gravity;
@@ -393,7 +394,7 @@ void ParticleEmitter::updateEmitter() {
 			if(emitterType == CONTINUOUS_EMITTER) {
 				resetParticle(particle);
 			} else {
-				dispatchTriggerCompleteEvent();
+			//	dispatchTriggerCompleteEvent();
 //				particle->particleBody->visible = false;
 			}
 		}