c6c3d3f4e0
Quick hack preliminary d3d11 renderer. I'm not likely to touch this again for quite some time. Sys_Error works properly on android, with an error message shown. Should be less of a stab in the dark if you get errors. Seg faults are still instantly fatal. Not much I can reliably do about those - most of the juicy ones will likely occur within the gl drivers (even if its my fault) and java will still call in to it. Stereoscopic (quad-buffered) rendering is in the gl renderer. You'll likely need a quatro to use it despite it being a gl 1.0 feature. No idea about ati. See r_stereo_method for non-quad-buffered alternatives. Tweaked networking to not overflow so much. Needs testing against other qw clients. Fixed an issue with surface numbers > 32k on limit-breaking maps. Fixed a preparse issue resulting in QW clients dying with the ne_ruins map's progs. Support for the DP-variant of BSP2. The depricated RMQ variant is still supported. QTV proxy now uses ipv6 hybrid sockets where possible. Preliminary pext support. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4105 fc73d0e0-1445-4013-8a0c-d673dee63da5
273 lines
10 KiB
Text
273 lines
10 KiB
Text
Example:
|
|
r_part blah
|
|
{
|
|
texture textures/particles/myimage.tga
|
|
tcoords 0 0 64 64 64
|
|
die 2
|
|
scalefactor 1
|
|
scale 20
|
|
alpha 0.5
|
|
rgb 255 0 0
|
|
rgbdelta 0 128 128
|
|
spawnmode ball
|
|
spawnorg 32
|
|
}
|
|
|
|
will give transparent (0.5) red particles that will fade to fully white when they go fully transparent 2 seconds later.
|
|
they will spawn within a ball of 32 units radius.
|
|
|
|
|
|
|
|
|
|
texture <TEXTURENAME>
|
|
specifies to use an image named TEXTURENAME for this effect.
|
|
|
|
tcoords <s1> <t1> <s2> <t2> [tscale] [rsmax] [rsstep]
|
|
specifies to use a subsection of the image.
|
|
if tscale is set, all units are divided by this. it is the virtual size of your texture. So a value of 1 means that your texture coords must be between 0 and 1. But if it properly matches your texture's size, the coords are in pixels.
|
|
if rsmax is present, each particle will use a random image. These images must be on a single row in your particle font.
|
|
rsstep specifies the stride (gap from one to the next) in your particle font, and is only needed if rsmax is present and greater than 1.
|
|
|
|
rotationstart <min> [max]
|
|
the particle will start with a rotation rotated between min and max.
|
|
if max is missing, the particle will always start with the min value.
|
|
|
|
beamtexstep <value>
|
|
only valid if the effect is a beam.
|
|
specifies the number of quake units per beam texture repitition.
|
|
|
|
beamtexspeed <value>
|
|
only valid if the effect is a beam.
|
|
controls how fast the texture scrolls on the beam.
|
|
|
|
scale <min> [max]
|
|
particles will start with a diameter of this many quake units.
|
|
actual scale will be randomly chosen between min and max (max defaults to equal min is missing)
|
|
|
|
scalerand <extra>
|
|
obsolete
|
|
overrides the scale max value
|
|
actual scale will be now be randomly chosen between min and min+extra
|
|
|
|
scalefactor <frac>
|
|
controls how the particle scales with distance.
|
|
1 makes the particle scale the same as anything else
|
|
0 makes the particle not change size no matter how far it is
|
|
|
|
scaledelta <value>
|
|
controls how the particle scales over time
|
|
specifies the change in the particle scale per second.
|
|
|
|
step <min> <max>
|
|
trails/beams only
|
|
specifies the distance between each particle in the trail (or beam).
|
|
|
|
count <min> <max>
|
|
point/box effects only (not trails or beams)
|
|
specifies how many particles are spawned per effect (some classic effects contain an extra scaler which is multiplied by the resulting value)
|
|
|
|
alpha <value>
|
|
specifies the initial alpha value of the effect
|
|
|
|
alphadelta <value>
|
|
specifies how much the alpha value of the effect changes per second (subtracted)
|
|
|
|
die <maximum age>
|
|
specifies the maximum age of the particle
|
|
|
|
diesubrand <value>
|
|
specifies the maximum starting age of the particle.
|
|
basically the particle will live up to this much less time. the alpha value will also be aged by the amount chosen by this value
|
|
|
|
randomvel <horiz> [vert]
|
|
controls how fast the particle moves when it spawns. This works regardless of any requested velocities.
|
|
if vert is not specified, horiz is used instead.
|
|
|
|
veladd <value>
|
|
controls how much of the effect's spawn velocity is used, can be greater than 1, or negative.
|
|
|
|
orgadd <value>
|
|
biases how much to add to the starting origin relative to the requested velocity.
|
|
|
|
friction <1> <2> <3>
|
|
FIXME
|
|
|
|
gravity <value>
|
|
amount that the particle's velocity changes per second, in quake units.
|
|
|
|
clipbounce <value>
|
|
how much of the particle's velocity to use if the particle is clipped. See cliptype.
|
|
Defaults to 0.8
|
|
|
|
cliptype <effectname>
|
|
Specifies which new effect to spawn when the particle hits something.
|
|
The origin and velocity of the particle are used to spawn the new effect.
|
|
The clipbounce value is used as a scaler for the reflected velocity.
|
|
If the effect named is the effect itself, the particle will merely bounce, instead of spawning a new effect.
|
|
FIXME: make default to bounce if clipbounce is set without cliptype.
|
|
|
|
clipcount <count>
|
|
The scaler to use for the number of particles to spawn upon a clip event.
|
|
Only valid in conjunction with cliptype.
|
|
|
|
assoc <effectname>
|
|
Specifies another effect to spawn at the same time that this effect is spawned.
|
|
Thus allowing two sets of particles from one effect.
|
|
|
|
inwater <effectname>
|
|
Specifies a replacement effect to use when this one is spawned underwater.
|
|
assoc used is the replacement effect. the assoc value from the replaced effect is ignored.
|
|
|
|
colorindex <index> [rand]
|
|
Specifies a palette index to spawn the particle with.
|
|
The index used is between index and index+rand.
|
|
overrides the normal starting colours.
|
|
|
|
colorrand <rand>
|
|
obsolete.
|
|
replaces the [rand] part of the colorindex setting.
|
|
|
|
citracer
|
|
only valid if colorindex is set.
|
|
adds a palette index between 0 and 3, based on the particle index in the effect or trail.
|
|
|
|
red <value>
|
|
green <value>
|
|
blue <value>
|
|
rgb <red> <green> <blue>
|
|
rgb <value>
|
|
Specifies the initial red, green, and/or blue values for each particle.
|
|
Fully opaque is 255 or above.
|
|
Values above 255 are valid, but will remain opaque until the value drops below 255 from the colour deltas.
|
|
|
|
redrand <value>
|
|
greenrand <value>
|
|
bluerand <value>
|
|
rgbrand <red> <green> <blue>
|
|
rgbrand <value>
|
|
Specifies how much extra red, green, and/or blue there may be for particles.
|
|
The initial colour will be multiplied by this amount before addition.
|
|
Each componant is separately randomized. EG, red might add nothing, while the full green is added, and only half the blue.
|
|
Fully opaque is 255 or above.
|
|
|
|
redrandsync <value>
|
|
greenrandsync <value>
|
|
bluerandsync <value>
|
|
rgbrandsync <red> <green> <blue>
|
|
rgbrandsync <value>
|
|
Specifies how much extra red, green, and/or blue there may be for particles.
|
|
The initial colour will be multiplied by this amount before addition.
|
|
Componants are syncronised. EG, if the full amount of red is added, the full amount of green and blue will also be added.
|
|
Fully opaque is 255 or above.
|
|
|
|
reddelta <value>
|
|
greendelta <value>
|
|
bluedelta <value>
|
|
rgbdelta <red> <green> <blue>
|
|
rgbdelta <value>
|
|
Specifies how much the red, green, and/or blue values of each particle change over time.
|
|
The value 255 is the value required to go from opaque to invisible in 1 second.
|
|
|
|
rgbdeltatime <value>
|
|
Specifies for how long the particle may change colours for. After this many seconds, the particle may no longer change colours (delta becomes 0).
|
|
|
|
rampmode <mode>
|
|
mode may be one of:
|
|
none: uses rgb+rand+sync+delta+scale+scaledelta values.
|
|
absolute: the ramp overrides all colour+scale values. The effect moves from one absolute ramp index to the next.
|
|
delta: uses rgb+rand+sync+scale, but not delta values. All delta values come from the colour ramp instead.
|
|
|
|
if not none, the ramp index used is based upon the particle's age, its lifetime, and how many ramp elements there are.
|
|
|
|
rampindexlist <idx1> [<idx2> [idx3 ...]]
|
|
Scale used is the currently set scale value.
|
|
Specifies a set of palette index values to use for the effect as part of the effect's colour ramp.
|
|
|
|
rampindex <idx> <scale>
|
|
Specifies an individual palette index value and particle scale to use for the effect as part of the effect's colour ramp
|
|
|
|
ramp <red> <green> <blue> [alpha] [scale]
|
|
Specifies a ramp index in rgb terms, regardless of palette.
|
|
|
|
stains <value>
|
|
How much the effect discolours the wall upon impact.
|
|
The stained colour is based upon the colour of the particle upon impact.
|
|
|
|
blend <mode>
|
|
mode may be one of: add, subtract, blendcolour/blendcolor, blend
|
|
if the texture used is actually a shader, this is ignored.
|
|
|
|
spawnmode <mode> [arg1] [arg2]
|
|
This affects how particles are positioned when they first spawn, and their initial velocities.
|
|
for point effects, mode may be one of:
|
|
circle: particles spawn within a ball with uniform distance from the center
|
|
ball: particles spawn randomly within a ball.
|
|
telebox: matches quake's telebox
|
|
lavasplash: like chthon's lava splash
|
|
uniformcircle: particles are spawned in a circle with uniform distance between and from the center. z=0.
|
|
syncfield: particles spawn at predictable locations based upon time within a rough sphere. Only useful for effects that are regenerated+replaced every frame.
|
|
distball:
|
|
*default*: regular box. particles are spawned inside an axially aligned box.
|
|
|
|
for trail effects, mode may be one of:
|
|
spiral: particles are given velocities perpendicular to the direction based on the distance moved.
|
|
tracer: particles spawn with alternating horizontal velocities (a wake effect).
|
|
*default*: particles spawn as a regular trail.
|
|
|
|
spawnparam1 <value>
|
|
obsolete. see spawnmode.
|
|
|
|
spawnparam2 <value>
|
|
obsolete. see spawnmode.
|
|
|
|
up <value>
|
|
the particle's origin is moved upwards by this amount
|
|
|
|
type <mode>
|
|
How the particles look.
|
|
mode may be:
|
|
beam: valid only for trails. Particles form a single textured beam acting as nodes along it.
|
|
spark: particles are lines, their length depending upon their speed.
|
|
sparkfan: particles are non-planar triangle fans, their length depending upon their speed.
|
|
texturedspark: textured particles are aligned along their direction of movement, their length depending upon their speed.
|
|
decal: particles are spawned only upon bsp geometry. They are clipped by it.
|
|
*default*: Particles are regular, rotating, 2d images.
|
|
|
|
isbeam
|
|
obsolete.
|
|
please use 'type beam' instead.
|
|
|
|
spawntime <value>
|
|
spawnchance <value>
|
|
|
|
|
|
emit <effectname>
|
|
Specifies the effect to periodically emit.
|
|
|
|
emitinterval <min>
|
|
Particles will not emit additional effects for this duration after emitting one.
|
|
|
|
emitintervalrand <extra>
|
|
FIXME: fold into emitinterval
|
|
|
|
|
|
emitstart <seconds>
|
|
Prevents the particle from emitting anything for this duration when it first spawns.
|
|
|
|
spawnorg <horiz> [vert]
|
|
spawnvel <horiz> [vert]
|
|
|
|
perframe
|
|
apply inverse frametime to count (causes emits to be per frame)
|
|
|
|
averageout
|
|
average trail points from start to end, useful with t_lightning, etc
|
|
|
|
nostate
|
|
Causes the particle system to ignore all state information.
|
|
|
|
nospreadfirst
|
|
don't randomize org/vel for first generated particle
|
|
|
|
nospreadlast
|
|
don't randomize org/vel for last generated particle
|