View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003963||The Dark Mod||Graphics||public||08.12.2014 20:43||15.02.2017 04:37|
|Product Version||TDM 2.03|
|Summary||0003963: Make soft particles work with all particles not just entity-based particles.|
|Description||Soft particles 0003878 was set up for particles emitted by an entity using a "particle" render model. Turns out the particle system is more flexible than that and has world particles belonging to idGameLocal that can be emitted with no entity. Need to move a small bit of code from Model_prt to DeclParticle (the accessor fuction SofteningRadius), so that softening works with all particle types. This will also mean that we can remove the #include of Model_local.h from tr_light.cpp.|
|Tags||No tags attached.|
This is more complicated than it first appears. The code in tr_light doesn't know when it's drawing a particle of other types. Smoke particles (the world particles controlled by gameLocal code) don't use a particle-specific render model, they just make a generic render model with no particular type and manually update its verts each frame using methods in idDeclParticle to create them.
Weather particles don't use a particle render model either. They're implemented at a lower level in the renderer front end and they duplicate a load of code from idDeclParticle to do it manually too.
We can test for a weather particle at any stage of rendering using this method: surf->material->GetDeformDecl();
But we don't really need softening for weather particles. They're too small. We can leave its duplicated code in peace.
Is there any reason we can't change smoke particles to use an idRenderModelPrt instead of a generic idRenderModel? idRenderModelPrt is a subclass of idRenderModel and adds a single data member: a pointer to the particle decl.
No, that won't work. Smoke particles use a single render model to hold the quads of all the various smoke particles in the world, which means lots of different particle decl types, not just one.
I'll revert my local changes and suspend this issue I think. It's turning into a major code overhaul for the sake of improving a very rarely-used particle type.
|08.12.2014 20:43||SteveL||New Issue|
|08.12.2014 20:43||SteveL||Status||new => assigned|
|08.12.2014 20:43||SteveL||Assigned To||=> SteveL|
|08.12.2014 20:44||SteveL||Relationship added||related to 0003962|
|08.12.2014 20:45||SteveL||Description Updated||View Revisions|
|08.12.2014 20:46||SteveL||Description Updated||View Revisions|
|08.12.2014 20:47||SteveL||Description Updated||View Revisions|
|08.01.2016 19:20||SteveL||Note Added: 0008007|
|08.01.2016 19:21||SteveL||Status||assigned => suspended|
|08.01.2016 19:21||SteveL||Target Version||TDM 2.04 =>|
|15.02.2017 04:37||grayman||Assigned To||SteveL =>|
|15.02.2017 04:37||grayman||Status||suspended => new|